OSDN Git Service

usb: mos7720: convert tasklets to use new tasklet_setup() API
authorAllen Pais <allen.lkml@gmail.com>
Mon, 17 Aug 2020 09:02:09 +0000 (14:32 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 18 Aug 2020 11:00:01 +0000 (13:00 +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 <allen.lkml@gmail.com>
Link: https://lore.kernel.org/r/20200817090209.26351-8-allen.cryptic@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/serial/mos7720.c

index 2ec4eea..5eed107 100644 (file)
@@ -282,11 +282,12 @@ static void destroy_urbtracker(struct kref *kref)
  * port callback had to be deferred because the disconnect mutex could not be
  * obtained at the time.
  */
-static void send_deferred_urbs(unsigned long _mos_parport)
+static void send_deferred_urbs(struct tasklet_struct *t)
 {
        int ret_val;
        unsigned long flags;
-       struct mos7715_parport *mos_parport = (void *)_mos_parport;
+       struct mos7715_parport *mos_parport = from_tasklet(mos_parport, t,
+                                                          urb_tasklet);
        struct urbtracker *urbtrack, *tmp;
        struct list_head *cursor, *next;
        struct device *dev;
@@ -716,8 +717,7 @@ static int mos7715_parport_init(struct usb_serial *serial)
        INIT_LIST_HEAD(&mos_parport->deferred_urbs);
        usb_set_serial_data(serial, mos_parport); /* hijack private pointer */
        mos_parport->serial = serial;
-       tasklet_init(&mos_parport->urb_tasklet, send_deferred_urbs,
-                    (unsigned long) mos_parport);
+       tasklet_setup(&mos_parport->urb_tasklet, send_deferred_urbs);
        init_completion(&mos_parport->syncmsg_compl);
 
        /* cycle parallel port reset bit */