net/ipv4: Use non-atomic allocation of udp offloads structure instance
authorOr Gerlitz <ogerlitz@mellanox.com>
Wed, 29 Jan 2014 16:08:59 +0000 (18:08 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 31 Jan 2014 00:25:48 +0000 (16:25 -0800)
commitb5aaab12b2b4bc4acab7384c17a87f3406e5047d
treec07e22943f2c0a05c3cde04f162b9b32cf95200f
parentf8d56d8f892be43a2404356073e16401eb5a42e6
net/ipv4: Use non-atomic allocation of udp offloads structure instance

Since udp_add_offload() can be called from non-sleepable context e.g
under this call tree from the vxlan driver use case:

  vxlan_socket_create() <-- holds the spinlock
  -> vxlan_notify_add_rx_port()
     -> udp_add_offload()  <-- schedules

we should allocate the udp_offloads structure in atomic manner.

Fixes: b582ef0 ('net: Add GRO support for UDP encapsulating protocols')
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/udp_offload.c