net: alteon: convert tasklets to use new tasklet_setup() API
authorAllen Pais <apais@linux.microsoft.com>
Mon, 14 Sep 2020 07:29:20 +0000 (12:59 +0530)
committerDavid S. Miller <davem@davemloft.net>
Mon, 14 Sep 2020 20:02:37 +0000 (13:02 -0700)
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>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/alteon/acenic.c
drivers/net/ethernet/alteon/acenic.h

index 8470c836fa188a18446f0d00566cf93791f66394..1a7e4df9b3e9979d2a91d788cff3c4c2824e79e0 100644 (file)
@@ -465,6 +465,7 @@ static int acenic_probe_one(struct pci_dev *pdev,
        SET_NETDEV_DEV(dev, &pdev->dev);
 
        ap = netdev_priv(dev);
+       ap->ndev = dev;
        ap->pdev = pdev;
        ap->name = pci_name(pdev);
 
@@ -1562,10 +1563,10 @@ static void ace_watchdog(struct net_device *data, unsigned int txqueue)
 }
 
 
-static void ace_tasklet(unsigned long arg)
+static void ace_tasklet(struct tasklet_struct *t)
 {
-       struct net_device *dev = (struct net_device *) arg;
-       struct ace_private *ap = netdev_priv(dev);
+       struct ace_private *ap = from_tasklet(ap, t, ace_tasklet);
+       struct net_device *dev = ap->ndev;
        int cur_size;
 
        cur_size = atomic_read(&ap->cur_rx_bufs);
@@ -2269,7 +2270,7 @@ static int ace_open(struct net_device *dev)
        /*
         * Setup the bottom half rx ring refill handler
         */
-       tasklet_init(&ap->ace_tasklet, ace_tasklet, (unsigned long)dev);
+       tasklet_setup(&ap->ace_tasklet, ace_tasklet);
        return 0;
 }
 
index c670067b154128303281f211ee32940740420bdb..265fa601a2589b8f6bad1058d8c4a79ea93e34a9 100644 (file)
@@ -633,6 +633,7 @@ struct ace_skb
  */
 struct ace_private
 {
+       struct net_device       *ndev;          /* backpointer */
        struct ace_info         *info;
        struct ace_regs __iomem *regs;          /* register base */
        struct ace_skb          *skb;
@@ -776,7 +777,7 @@ static int ace_open(struct net_device *dev);
 static netdev_tx_t ace_start_xmit(struct sk_buff *skb,
                                  struct net_device *dev);
 static int ace_close(struct net_device *dev);
-static void ace_tasklet(unsigned long dev);
+static void ace_tasklet(struct tasklet_struct *t);
 static void ace_dump_trace(struct ace_private *ap);
 static void ace_set_multicast_list(struct net_device *dev);
 static int ace_change_mtu(struct net_device *dev, int new_mtu);