From: Subash Abhinov Kasiviswanathan Date: Thu, 23 Jul 2020 17:31:48 +0000 (-0600) Subject: dev: Defer free of skbs in flush_backlog X-Git-Tag: v4.9.232~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b7441315b8d2b25a2bdcc71957148b8ad843955a;p=platform%2Fkernel%2Flinux-amlogic.git dev: Defer free of skbs in flush_backlog [ Upstream commit 7df5cb75cfb8acf96c7f2342530eb41e0c11f4c3 ] IRQs are disabled when freeing skbs in input queue. Use the IRQ safe variant to free skbs here. Fixes: 145dd5f9c88f ("net: flush the softnet backlog in process context") Signed-off-by: Subash Abhinov Kasiviswanathan Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/core/dev.c b/net/core/dev.c index 267b648a0645..dd8d36feb69f 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4392,7 +4392,7 @@ static void flush_backlog(struct work_struct *work) skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) { if (skb->dev->reg_state == NETREG_UNREGISTERING) { __skb_unlink(skb, &sd->input_pkt_queue); - kfree_skb(skb); + dev_kfree_skb_irq(skb); input_queue_head_incr(sd); } }