return 0;
 }
 
-static void tahvo_usb_irq_work(void *data)
+static void tahvo_usb_irq_work(struct work_struct *work)
 {
-       struct tahvo_usb *tu = (struct tahvo_usb *)data;
+       struct tahvo_usb *tu = container_of(work, struct tahvo_usb, irq_work);
 
        mutex_lock(&tu->serialize);
        check_vbus_state(tu);
 #endif
 #endif
 
-       INIT_WORK(&tu->irq_work, tahvo_usb_irq_work, tu);
+       INIT_WORK(&tu->irq_work, tahvo_usb_irq_work);
        mutex_init(&tu->serialize);
 
        /* Set initial state, so that we generate kevents only on