sock: sock_dequeue_err_skb() needs hard irq safety
authorEric Dumazet <edumazet@google.com>
Wed, 18 Feb 2015 13:47:55 +0000 (05:47 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Mar 2015 13:10:50 +0000 (14:10 +0100)
commit9d0ba3cf285bc815de7d4cf3fc2bf9fe4d4e5c5c
tree93522bb73f53b8959a5a72a21e2c6987b3aee57b
parent488da593c9e4eafd5783a631e644af67fd6cf003
sock: sock_dequeue_err_skb() needs hard irq safety

[ Upstream commit 997d5c3f4427f38562cbe207ce05bb25fdcb993b ]

Non NAPI drivers can call skb_tstamp_tx() and then sock_queue_err_skb()
from hard IRQ context.

Therefore, sock_dequeue_err_skb() needs to block hard irq or
corruptions or hangs can happen.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Fixes: 364a9e93243d1 ("sock: deduplicate errqueue dequeue")
Fixes: cb820f8e4b7f7 ("net: Provide a generic socket error queue delivery method for Tx time stamps.")
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/core/skbuff.c