This is a note to let you know that I've just added the patch titled sock: sock_dequeue_err_skb() needs hard irq safety to the 3.19-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: sock-sock_dequeue_err_skb-needs-hard-irq-safety.patch and it can be found in the queue-3.19 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From foo@baz Wed Mar 11 11:44:33 CET 2015 From: Eric Dumazet <edumazet@xxxxxxxxxx> Date: Wed, 18 Feb 2015 05:47:55 -0800 Subject: sock: sock_dequeue_err_skb() needs hard irq safety From: Eric Dumazet <edumazet@xxxxxxxxxx> [ 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@xxxxxxxxxx> 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@xxxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- net/core/skbuff.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -3623,13 +3623,14 @@ struct sk_buff *sock_dequeue_err_skb(str { struct sk_buff_head *q = &sk->sk_error_queue; struct sk_buff *skb, *skb_next; + unsigned long flags; int err = 0; - spin_lock_bh(&q->lock); + spin_lock_irqsave(&q->lock, flags); skb = __skb_dequeue(q); if (skb && (skb_next = skb_peek(q))) err = SKB_EXT_ERR(skb_next)->ee.ee_errno; - spin_unlock_bh(&q->lock); + spin_unlock_irqrestore(&q->lock, flags); sk->sk_err = err; if (err) Patches currently in stable-queue which might be from edumazet@xxxxxxxxxx are queue-3.19/net-pktgen-disable-xmit_clone-on-virtual-devices.patch queue-3.19/net-do-not-use-rcu-in-rtnl_dump_ifinfo.patch queue-3.19/flowcache-fix-kernel-panic-in-flow_cache_flush_task.patch queue-3.19/tcp-make-sure-skb-is-not-shared-before-using-skb_get.patch queue-3.19/sock-sock_dequeue_err_skb-needs-hard-irq-safety.patch queue-3.19/macvtap-make-sure-neighbour-code-can-push-ethernet-header.patch queue-3.19/ipv4-ip_check_defrag-should-correctly-check-return-value-of-skb_copy_bits.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html