On 5/31/20 7:15 PM, Joe Perches wrote:
On Sun, 2020-05-31 at 19:08 +0300, Ivan Safonov wrote:
Wrappers around skb_clone() do not simplify the driver code.
[]
-inline struct sk_buff *_rtw_skb_clone(struct sk_buff *skb)
-{
-       return skb_clone(skb, in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
-}
-
[]
diff --git a/drivers/staging/rtl8723bs/os_dep/recv_linux.c 
b/drivers/staging/rtl8723bs/os_dep/recv_linux.c
[]
@@ -110,7 +110,7 @@ void rtw_os_recv_indicate_pkt(struct adapter *padapter, 
_pkt *pkt, struct rx_pkt
                        if (memcmp(pattrib->dst, myid(&padapter->eeprompriv), 
ETH_ALEN)) {
                                if (bmcast) {
                                        psta = rtw_get_bcmc_stainfo(padapter);
-                                       pskb2 = rtw_skb_clone(pkt);
+                                       pskb2 = skb_clone(pkt, GFP_ATOMIC);

Why make every clone allocation GFP_ATOMIC ?

The rtw_os_recv_indicate_pkt() is always called from an interrupt handler.
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to