l2tp: Fix locking in l2tp_core.c
authorDavid S. Miller <davem@davemloft.net>
Sun, 8 May 2011 20:45:20 +0000 (13:45 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 8 May 2011 20:45:20 +0000 (13:45 -0700)
commit6af88da14ee284aaad6e4326da09a89191ab6165
treebde47277368279454abff9a860be9292556c7089
parent2f16270f41e1499e23e6be25c51be87d950ffc91
l2tp: Fix locking in l2tp_core.c

l2tp_xmit_skb() must take the socket lock.  It makes use of ip_queue_xmit()
which expects to execute in a socket atomic context.

Since we execute this function in software interrupts, we cannot use the
usual lock_sock()/release_sock() sequence, instead we have to use
bh_lock_sock() and see if a user has the socket locked, and if so drop
the packet.

Signed-off-by: David S. Miller <davem@davemloft.net>
net/l2tp/l2tp_core.c