um: Convert tasklets to use new tasklet_setup() API
authorAllen Pais <allen.lkml@gmail.com>
Mon, 17 Aug 2020 09:15:55 +0000 (14:45 +0530)
committerRichard Weinberger <richard@nod.at>
Sun, 13 Dec 2020 21:20:51 +0000 (22:20 +0100)
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 <allen.lkml@gmail.com>
Acked-By: Anton Ivanov <anton.ivanov@cambridgegreys.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/drivers/vector_kern.c

index 555203e3e7b45664bdd08e98fe55fdbb5402cdc7..aa6ba9d61e9b10cbbb3ae46a2093b1296baf8f4a 100644 (file)
@@ -1196,9 +1196,9 @@ static int vector_net_close(struct net_device *dev)
 
 /* TX tasklet */
 
-static void vector_tx_poll(unsigned long data)
+static void vector_tx_poll(struct tasklet_struct *t)
 {
-       struct vector_private *vp = (struct vector_private *)data;
+       struct vector_private *vp = from_tasklet(vp, t, tx_poll);
 
        vp->estats.tx_kicks++;
        vector_send(vp->tx_queue);
@@ -1629,7 +1629,7 @@ static void vector_eth_configure(
        });
 
        dev->features = dev->hw_features = (NETIF_F_SG | NETIF_F_FRAGLIST);
-       tasklet_init(&vp->tx_poll, vector_tx_poll, (unsigned long)vp);
+       tasklet_setup(&vp->tx_poll, vector_tx_poll);
        INIT_WORK(&vp->reset_tx, vector_reset_tx);
 
        timer_setup(&vp->tl, vector_timer_expire, 0);