diff options
author | Subash Abhinov Kasiviswanathan <subashab@codeaurora.org> | 2020-07-23 11:31:48 -0600 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-07-31 16:44:44 +0200 |
commit | fbcdf3849aa1b8c5fd1009abf1b2e7b96e6a954d (patch) | |
tree | e3f58310ca6c93299a26ced46cf3ecfc09028a21 | |
parent | 1411bf6e5910fdb9d03ac4d4f9bfd0363bd003a5 (diff) | |
download | linux-stable-fbcdf3849aa1b8c5fd1009abf1b2e7b96e6a954d.tar.gz linux-stable-fbcdf3849aa1b8c5fd1009abf1b2e7b96e6a954d.tar.bz2 linux-stable-fbcdf3849aa1b8c5fd1009abf1b2e7b96e6a954d.zip |
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 <subashab@codeaurora.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | net/core/dev.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 1ee177485fd0..7ec549e481e3 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4626,7 +4626,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); } } |