2016-11-01 14:48:53

by Wei Yongjun

[permalink] [raw]
Subject: [PATCH net-next] rtlwifi: Use dev_kfree_skb_irq instead of kfree_skb

From: Wei Yongjun <[email protected]>

It is not allowed to call kfree_skb() from hardware interrupt
context or with interrupts being disabled, spin_lock_irqsave()
make sure always in irq disable context. So the kfree_skb()
should be replaced with dev_kfree_skb_irq().

This is detected by Coccinelle semantic patch.

Signed-off-by: Wei Yongjun <[email protected]>
---
drivers/net/wireless/realtek/rtlwifi/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/core.c b/drivers/net/wireless/realtek/rtlwifi/core.c
index 8e7f23c..e89681d 100644
--- a/drivers/net/wireless/realtek/rtlwifi/core.c
+++ b/drivers/net/wireless/realtek/rtlwifi/core.c
@@ -1832,7 +1832,7 @@ bool rtl_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb)

spin_lock_irqsave(&rtlpriv->locks.irq_th_lock, flags);
pskb = __skb_dequeue(&ring->queue);
- kfree_skb(pskb);
+ dev_kfree_skb_irq(pskb);

/*this is wrong, fill_tx_cmddesc needs update*/
pdesc = &ring->desc[0];


2016-11-17 06:48:52

by Kalle Valo

[permalink] [raw]
Subject: Re: [net-next] rtlwifi: Use dev_kfree_skb_irq instead of kfree_skb

Wei Yongjun <[email protected]> wrote:
> From: Wei Yongjun <[email protected]>
>
> It is not allowed to call kfree_skb() from hardware interrupt
> context or with interrupts being disabled, spin_lock_irqsave()
> make sure always in irq disable context. So the kfree_skb()
> should be replaced with dev_kfree_skb_irq().
>
> This is detected by Coccinelle semantic patch.
>
> Signed-off-by: Wei Yongjun <[email protected]>

Patch applied to wireless-drivers-next.git, thanks.

e49656147359 rtlwifi: Use dev_kfree_skb_irq instead of kfree_skb

--
https://patchwork.kernel.org/patch/9407493/

Documentation about submitting wireless patches and checking status
from patchwork:

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches