RDMA/i40iw: Convert tasklets to use new tasklet_setup() API
authorAllen Pais <allen.lkml@gmail.com>
Thu, 3 Sep 2020 06:06:35 +0000 (11:36 +0530)
committerJason Gunthorpe <jgg@nvidia.com>
Thu, 3 Sep 2020 15:01:52 +0000 (12:01 -0300)
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.

Link: https://lore.kernel.org/r/20200903060637.424458-4-allen.lkml@gmail.com
Signed-off-by: Romain Perier <romain.perier@gmail.com>
Signed-off-by: Allen Pais <allen.lkml@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/i40iw/i40iw_main.c

index 58a4331..c0cdb25 100644 (file)
@@ -192,9 +192,9 @@ static void i40iw_enable_intr(struct i40iw_sc_dev *dev, u32 msix_id)
  * i40iw_dpc - tasklet for aeq and ceq 0
  * @data: iwarp device
  */
-static void i40iw_dpc(unsigned long data)
+static void i40iw_dpc(struct tasklet_struct *t)
 {
-       struct i40iw_device *iwdev = (struct i40iw_device *)data;
+       struct i40iw_device *iwdev = from_tasklet(iwdev, t, dpc_tasklet);
 
        if (iwdev->msix_shared)
                i40iw_process_ceq(iwdev, iwdev->ceqlist);
@@ -206,9 +206,9 @@ static void i40iw_dpc(unsigned long data)
  * i40iw_ceq_dpc - dpc handler for CEQ
  * @data: data points to CEQ
  */
-static void i40iw_ceq_dpc(unsigned long data)
+static void i40iw_ceq_dpc(struct tasklet_struct *t)
 {
-       struct i40iw_ceq *iwceq = (struct i40iw_ceq *)data;
+       struct i40iw_ceq *iwceq = from_tasklet(iwceq, t, dpc_tasklet);
        struct i40iw_device *iwdev = iwceq->iwdev;
 
        i40iw_process_ceq(iwdev, iwceq);
@@ -689,10 +689,10 @@ static enum i40iw_status_code i40iw_configure_ceq_vector(struct i40iw_device *iw
        enum i40iw_status_code status;
 
        if (iwdev->msix_shared && !ceq_id) {
-               tasklet_init(&iwdev->dpc_tasklet, i40iw_dpc, (unsigned long)iwdev);
+               tasklet_setup(&iwdev->dpc_tasklet, i40iw_dpc);
                status = request_irq(msix_vec->irq, i40iw_irq_handler, 0, "AEQCEQ", iwdev);
        } else {
-               tasklet_init(&iwceq->dpc_tasklet, i40iw_ceq_dpc, (unsigned long)iwceq);
+               tasklet_setup(&iwceq->dpc_tasklet, i40iw_ceq_dpc);
                status = request_irq(msix_vec->irq, i40iw_ceq_handler, 0, "CEQ", iwceq);
        }
 
@@ -841,7 +841,7 @@ static enum i40iw_status_code i40iw_configure_aeq_vector(struct i40iw_device *iw
        u32 ret = 0;
 
        if (!iwdev->msix_shared) {
-               tasklet_init(&iwdev->dpc_tasklet, i40iw_dpc, (unsigned long)iwdev);
+               tasklet_setup(&iwdev->dpc_tasklet, i40iw_dpc);
                ret = request_irq(msix_vec->irq, i40iw_irq_handler, 0, "i40iw", iwdev);
        }
        if (ret) {