From: Jinjie Ruan Date: Thu, 24 Aug 2023 06:43:36 +0000 (+0800) Subject: net: arcnet: Do not call kfree_skb() under local_irq_disable() X-Git-Tag: v6.6.17~4098^2^2~11 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=786c96e92fb9e854cb8b0cb7399bb2fb28e15c4b;p=platform%2Fkernel%2Flinux-rpi.git net: arcnet: Do not call kfree_skb() under local_irq_disable() It is not allowed to call kfree_skb() from hardware interrupt context or with hardware interrupts being disabled. So replace kfree_skb() with dev_kfree_skb_irq() under local_irq_disable(). Compile tested only. Fixes: 05fcd31cc472 ("arcnet: add err_skb package for package status feedback") Signed-off-by: Jinjie Ruan Signed-off-by: David S. Miller --- diff --git a/drivers/net/arcnet/arcnet.c b/drivers/net/arcnet/arcnet.c index 9926566..d9e052c 100644 --- a/drivers/net/arcnet/arcnet.c +++ b/drivers/net/arcnet/arcnet.c @@ -464,7 +464,7 @@ static void arcnet_reply_tasklet(struct tasklet_struct *t) ret = sock_queue_err_skb(sk, ackskb); if (ret) - kfree_skb(ackskb); + dev_kfree_skb_irq(ackskb); local_irq_enable(); };