extern void tape_state_set(struct tape_device *, enum tape_state);
 
 extern int tape_generic_online(struct tape_device *, struct tape_discipline *);
-extern int tape_generic_offline(struct tape_device *device);
+extern int tape_generic_offline(struct ccw_device *);
 
 /* Externals from tape_devmap.c */
 extern int tape_generic_probe(struct ccw_device *);
 
        );
 }
 
-static int
-tape_34xx_offline(struct ccw_device *cdev)
-{
-       return tape_generic_offline(cdev->dev.driver_data);
-}
-
 static struct ccw_driver tape_34xx_driver = {
        .name = "tape_34xx",
        .owner = THIS_MODULE,
        .probe = tape_generic_probe,
        .remove = tape_generic_remove,
        .set_online = tape_34xx_online,
-       .set_offline = tape_34xx_offline,
+       .set_offline = tape_generic_offline,
 };
 
 static int
 
                                   &tape_discipline_3590);
 }
 
-static int
-tape_3590_offline(struct ccw_device *cdev)
-{
-       return tape_generic_offline(cdev->dev.driver_data);
-}
-
 static struct ccw_driver tape_3590_driver = {
        .name = "tape_3590",
        .owner = THIS_MODULE,
        .ids = tape_3590_ids,
        .probe = tape_generic_probe,
        .remove = tape_generic_remove,
-       .set_offline = tape_3590_offline,
+       .set_offline = tape_generic_offline,
        .set_online = tape_3590_online,
 };
 
 
  * Manual offline is only allowed while the drive is not in use.
  */
 int
-tape_generic_offline(struct tape_device *device)
+tape_generic_offline(struct ccw_device *cdev)
 {
+       struct tape_device *device;
+
+       device = cdev->dev.driver_data;
        if (!device) {
                return -ENODEV;
        }