b43legacy: convert tasklets to use new tasklet_setup() API
authorAllen Pais <allen.lkml@gmail.com>
Mon, 17 Aug 2020 09:06:27 +0000 (14:36 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 27 Aug 2020 13:22:04 +0000 (16:22 +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.

Signed-off-by: Romain Perier <romain.perier@gmail.com>
Signed-off-by: Allen Pais <allen.lkml@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20200817090637.26887-7-allen.cryptic@gmail.com
drivers/net/wireless/broadcom/b43legacy/main.c
drivers/net/wireless/broadcom/b43legacy/pio.c

index c503992..a27125b 100644 (file)
@@ -1275,9 +1275,9 @@ static void handle_irq_ucode_debug(struct b43legacy_wldev *dev)
 }
 
 /* Interrupt handler bottom-half */
-static void b43legacy_interrupt_tasklet(unsigned long data)
+static void b43legacy_interrupt_tasklet(struct tasklet_struct *t)
 {
-       struct b43legacy_wldev *dev = (struct b43legacy_wldev *)data;
+       struct b43legacy_wldev *dev = from_tasklet(dev, t, isr_tasklet);
        u32 reason;
        u32 dma_reason[ARRAY_SIZE(dev->dma_reason)];
        u32 merged_dma_reason = 0;
@@ -3742,9 +3742,7 @@ static int b43legacy_one_core_attach(struct ssb_device *dev,
        wldev->wl = wl;
        b43legacy_set_status(wldev, B43legacy_STAT_UNINIT);
        wldev->bad_frames_preempt = modparam_bad_frames_preempt;
-       tasklet_init(&wldev->isr_tasklet,
-                    b43legacy_interrupt_tasklet,
-                    (unsigned long)wldev);
+       tasklet_setup(&wldev->isr_tasklet, b43legacy_interrupt_tasklet);
        if (modparam_pio)
                wldev->__using_pio = true;
        INIT_LIST_HEAD(&wldev->list);
index cbb7613..aac413d 100644 (file)
@@ -264,9 +264,9 @@ static int pio_tx_packet(struct b43legacy_pio_txpacket *packet)
        return 0;
 }
 
-static void tx_tasklet(unsigned long d)
+static void tx_tasklet(struct tasklet_struct *t)
 {
-       struct b43legacy_pioqueue *queue = (struct b43legacy_pioqueue *)d;
+       struct b43legacy_pioqueue *queue = from_tasklet(queue, t, txtask);
        struct b43legacy_wldev *dev = queue->dev;
        unsigned long flags;
        struct b43legacy_pio_txpacket *packet, *tmp_packet;
@@ -331,8 +331,7 @@ struct b43legacy_pioqueue *b43legacy_setup_pioqueue(struct b43legacy_wldev *dev,
        INIT_LIST_HEAD(&queue->txfree);
        INIT_LIST_HEAD(&queue->txqueue);
        INIT_LIST_HEAD(&queue->txrunning);
-       tasklet_init(&queue->txtask, tx_tasklet,
-                    (unsigned long)queue);
+       tasklet_setup(&queue->txtask, tx_tasklet);
 
        value = b43legacy_read32(dev, B43legacy_MMIO_MACCTL);
        value &= ~B43legacy_MACCTL_BE;