]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/connector/cn_queue.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
[mirror_ubuntu-bionic-kernel.git] / drivers / connector / cn_queue.c
index 05f8ce2cfb4ab77a950a54371c8559b7fa17ef49..296f51002b555a4398d0450f92d1c1392d61d70a 100644 (file)
 #include <linux/connector.h>
 #include <linux/delay.h>
 
-void cn_queue_wrapper(void *data)
+void cn_queue_wrapper(struct work_struct *work)
 {
-       struct cn_callback_data *d = data;
+       struct cn_callback_entry *cbq =
+               container_of(work, struct cn_callback_entry, work);
+       struct cn_callback_data *d = &cbq->data;
 
        d->callback(d->callback_priv);
 
@@ -57,13 +59,12 @@ static struct cn_callback_entry *cn_queue_alloc_callback_entry(char *name, struc
        memcpy(&cbq->id.id, id, sizeof(struct cb_id));
        cbq->data.callback = callback;
        
-       INIT_WORK(&cbq->work, &cn_queue_wrapper, &cbq->data);
+       INIT_WORK(&cbq->work, &cn_queue_wrapper);
        return cbq;
 }
 
 static void cn_queue_free_callback(struct cn_callback_entry *cbq)
 {
-       cancel_delayed_work(&cbq->work);
        flush_workqueue(cbq->pdev->cn_queue);
 
        kfree(cbq);