@@ -90,13 +90,13 @@ static struct device *vme_root;
/*
* Calling VME bus interrupt callback if provided.
*/
-static void fake_VIRQ_tasklet(unsigned long data)
+static void fake_VIRQ_tasklet(struct tasklet_struct *t)
{
struct vme_bridge *fake_bridge;
struct fake_driver *bridge;
- fake_bridge = (struct vme_bridge *) data;
- bridge = fake_bridge->driver_priv;
+ bridge = from_tasklet(bridge, t, int_tasklet);
+ fake_bridge = bridge->parent;
vme_irq_handler(fake_bridge, bridge->int_level, bridge->int_statid);
}
@@ -1098,8 +1098,7 @@ static int __init fake_init(void)
/* Initialize wait queues & mutual exclusion flags */
mutex_init(&fake_device->vme_int);
mutex_init(&fake_bridge->irq_mtx);
- tasklet_init(&fake_device->int_tasklet, fake_VIRQ_tasklet,
- (unsigned long) fake_bridge);
+ tasklet_setup(&fake_device->int_tasklet, fake_VIRQ_tasklet);
strcpy(fake_bridge->name, driver_name);