]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
staging: rtl8723bs: use standard skb allocation APIs
authorMinu Jin <s9430939@naver.com>
Wed, 4 Feb 2026 13:13:46 +0000 (22:13 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Feb 2026 13:35:32 +0000 (14:35 +0100)
Replace custom wrappers rtw_skb_alloc() and rtw_skb_copy() with
standard kernel APIs __dev_alloc_skb() and skb_copy().

About GFP Flags:
- GFP_ATOMIC is used for allocations in atomic contexts such as
  spinlock-protected sections, tasklets, and timer handlers.
- GFP_KERNEL is used for process contexts where sleeping is allowed.

Signed-off-by: Minu Jin <s9430939@naver.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Link: https://patch.msgid.link/20260204131347.3515949-5-s9430939@naver.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8723bs/core/rtw_recv.c
drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c
drivers/staging/rtl8723bs/hal/sdio_ops.c
drivers/staging/rtl8723bs/os_dep/xmit_linux.c

index fff4aeb16ab83cd3466b6825423a1ad8dc466330..337671b1211f0d18540051f130b9aa3fbe481da6 100644 (file)
@@ -1630,7 +1630,7 @@ static struct sk_buff *rtw_alloc_msdu_pkt(union recv_frame *prframe, u16 nSubfra
 
        pattrib = &prframe->u.hdr.attrib;
 
-       sub_skb = rtw_skb_alloc(nSubframe_Length + 12);
+       sub_skb = __dev_alloc_skb(nSubframe_Length + 12, GFP_ATOMIC);
        if (!sub_skb)
                return NULL;
 
index 4cff14fe5d7a50c6c4775a8fac84f88ff6061448..5faac9f28b024403ecef99d13afeb7062ac11b21 100644 (file)
@@ -290,7 +290,7 @@ static void rtl8723bs_recv_tasklet(struct tasklet_struct *t)
                                        alloc_sz += 14;
                                }
 
-                               pkt_copy = rtw_skb_alloc(alloc_sz);
+                               pkt_copy = __dev_alloc_skb(alloc_sz, GFP_ATOMIC);
                                if (!pkt_copy) {
                                        rtw_free_recvframe(precvframe, &precvpriv->free_recv_queue);
                                        break;
@@ -397,8 +397,7 @@ s32 rtl8723bs_init_recv_priv(struct adapter *padapter)
                        SIZE_PTR tmpaddr = 0;
                        SIZE_PTR alignment = 0;
 
-                       precvbuf->pskb = rtw_skb_alloc(MAX_RECVBUF_SZ + RECVBUFF_ALIGN_SZ);
-
+                       precvbuf->pskb = __dev_alloc_skb(MAX_RECVBUF_SZ + RECVBUFF_ALIGN_SZ, GFP_ATOMIC);
                        if (precvbuf->pskb) {
                                precvbuf->pskb->dev = padapter->pnetdev;
 
index e0a676bc4e8861014af87b9f4bc72f21e222ff6e..c9cb20c61a2b237ec2321bd44345fa430c67584c 100644 (file)
@@ -810,7 +810,7 @@ static struct recv_buf *sd_recv_rxfifo(struct adapter *adapter, u32 size)
                SIZE_PTR tmpaddr = 0;
                SIZE_PTR alignment = 0;
 
-               recvbuf->pskb = rtw_skb_alloc(MAX_RECVBUF_SZ + RECVBUFF_ALIGN_SZ);
+               recvbuf->pskb = __dev_alloc_skb(MAX_RECVBUF_SZ + RECVBUFF_ALIGN_SZ, GFP_ATOMIC);
                if (!recvbuf->pskb)
                        return NULL;
 
index e060a84e0d518e4360cdd8990bf6fb142192be22..0be3143fffe5a06cab679bb6f3db6d77008956b5 100644 (file)
@@ -162,8 +162,7 @@ static int rtw_mlcst2unicst(struct adapter *padapter, struct sk_buff *skb)
                    !memcmp(psta->hwaddr, bc_addr, 6))
                        continue;
 
-               newskb = rtw_skb_copy(skb);
-
+               newskb = skb_copy(skb, GFP_ATOMIC);
                if (newskb) {
                        memcpy(newskb->data, psta->hwaddr, 6);
                        res = rtw_xmit(padapter, &newskb);