staging: rtl8712: convert tasklets to use new tasklet_setup() API
authorAllen Pais <apais@linux.microsoft.com>
Wed, 16 Sep 2020 06:18:31 +0000 (11:48 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 16 Sep 2020 11:13:00 +0000 (13:13 +0200)
In preparation for unconditionally passing the
struct tasklet_struct pointer to all tasklet
callbacks, switch to using the new tasklet_setup()
and from_tasklet() to pass the tasklet pointer explicitly.

Signed-off-by: Romain Perier <romain.perier@gmail.com>
Signed-off-by: Allen Pais <apais@linux.microsoft.com>
Link: https://lore.kernel.org/r/20200916061831.57848-1-allen.lkml@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8712/rtl8712_recv.c
drivers/staging/rtl8712/rtl871x_xmit.c
drivers/staging/rtl8712/rtl871x_xmit.h
drivers/staging/rtl8712/usb_ops_linux.c

index d83f421acfc1ea0409cbbaf02ebd5ba462494c41..978594c676eb2789783b0bec46dfebaac47c5aad 100644 (file)
@@ -28,7 +28,7 @@
 #include "usb_ops.h"
 #include "wifi.h"
 
-static void recv_tasklet(unsigned long priv);
+static void recv_tasklet(struct tasklet_struct *t);
 
 void r8712_init_recv_priv(struct recv_priv *precvpriv,
                          struct _adapter *padapter)
@@ -60,8 +60,7 @@ void r8712_init_recv_priv(struct recv_priv *precvpriv,
                precvbuf++;
        }
        precvpriv->free_recv_buf_queue_cnt = NR_RECVBUFF;
-       tasklet_init(&precvpriv->recv_tasklet, recv_tasklet,
-                    (unsigned long)padapter);
+       tasklet_setup(&precvpriv->recv_tasklet, recv_tasklet);
        skb_queue_head_init(&precvpriv->rx_skb_queue);
 
        skb_queue_head_init(&precvpriv->free_recv_skb_queue);
@@ -1057,10 +1056,11 @@ static void recvbuf2recvframe(struct _adapter *padapter, struct sk_buff *pskb)
        } while ((transfer_len > 0) && pkt_cnt > 0);
 }
 
-static void recv_tasklet(unsigned long priv)
+static void recv_tasklet(struct tasklet_struct *t)
 {
        struct sk_buff *pskb;
-       struct _adapter *padapter = (struct _adapter *)priv;
+       struct _adapter *padapter = from_tasklet(padapter, t,
+                                                recvpriv.recv_tasklet);
        struct recv_priv *precvpriv = &padapter->recvpriv;
 
        while (NULL != (pskb = skb_dequeue(&precvpriv->rx_skb_queue))) {
index 8b88fd5dc9a1d53a2f78fce0ebd9d55a7cb4d277..cae552276ab85883ef2ca9042a141f09a153beca 100644 (file)
@@ -144,8 +144,7 @@ int _r8712_init_xmit_priv(struct xmit_priv *pxmitpriv,
        INIT_WORK(&padapter->wk_filter_rx_ff0, r8712_SetFilter);
        alloc_hwxmits(padapter);
        init_hwxmits(pxmitpriv->hwxmits, pxmitpriv->hwxmit_entry);
-       tasklet_init(&pxmitpriv->xmit_tasklet, r8712_xmit_bh,
-                    (unsigned long)padapter);
+       tasklet_setup(&pxmitpriv->xmit_tasklet, r8712_xmit_bh);
        return 0;
 }
 
index c0c0c781fe17ddc01d24938a6f72944b4ffeef4a..cc58c72169355ded185a5accc9a38b82acb5e936 100644 (file)
@@ -277,7 +277,7 @@ int r8712_pre_xmit(struct _adapter *padapter, struct xmit_frame *pxmitframe);
 int r8712_xmit_enqueue(struct _adapter *padapter,
                       struct xmit_frame *pxmitframe);
 void r8712_xmit_direct(struct _adapter *padapter, struct xmit_frame *pxmitframe);
-void r8712_xmit_bh(unsigned long priv);
+void r8712_xmit_bh(struct tasklet_struct *t);
 
 void xmitframe_xmitbuf_attach(struct xmit_frame *pxmitframe,
                        struct xmit_buf *pxmitbuf);
index 9a04a752af13e01ce5a12ee313a9c9e7d3341ba7..655497cead12231ebe81636e0bd6baab5b297a41 100644 (file)
@@ -308,10 +308,11 @@ void r8712_usb_read_port_cancel(struct _adapter *padapter)
        }
 }
 
-void r8712_xmit_bh(unsigned long priv)
+void r8712_xmit_bh(struct tasklet_struct *t)
 {
        int ret = false;
-       struct _adapter *padapter = (struct _adapter *)priv;
+       struct _adapter *padapter = from_tasklet(padapter, t,
+                                                xmitpriv.xmit_tasklet);
        struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
 
        if (padapter->driver_stopped ||