mirror of https://gitee.com/openkylin/linux.git
s390/tape: remove unsupported PM functions
The power-management related functions are unused since
'commit 394216275c
("s390: remove broken hibernate / power
management support")'. Remove them from tape drivers.
Signed-off-by: Vineeth Vijayan <vneethv@linux.ibm.com>
Reviewed-by: Jan Höppner <hoeppner@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
parent
6b532eec75
commit
2f6ea6fb88
|
@ -264,7 +264,6 @@ 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 ccw_device *);
|
||||
extern int tape_generic_pm_suspend(struct ccw_device *);
|
||||
|
||||
/* Externals from tape_devmap.c */
|
||||
extern int tape_generic_probe(struct ccw_device *);
|
||||
|
|
|
@ -1191,7 +1191,6 @@ static struct ccw_driver tape_34xx_driver = {
|
|||
.remove = tape_generic_remove,
|
||||
.set_online = tape_34xx_online,
|
||||
.set_offline = tape_generic_offline,
|
||||
.freeze = tape_generic_pm_suspend,
|
||||
.int_class = IRQIO_TAP,
|
||||
};
|
||||
|
||||
|
|
|
@ -1651,7 +1651,6 @@ static struct ccw_driver tape_3590_driver = {
|
|||
.remove = tape_generic_remove,
|
||||
.set_offline = tape_generic_offline,
|
||||
.set_online = tape_3590_online,
|
||||
.freeze = tape_generic_pm_suspend,
|
||||
.int_class = IRQIO_TAP,
|
||||
};
|
||||
|
||||
|
|
|
@ -427,55 +427,6 @@ tape_cleanup_device(struct tape_device *device)
|
|||
tape_med_state_set(device, MS_UNKNOWN);
|
||||
}
|
||||
|
||||
/*
|
||||
* Suspend device.
|
||||
*
|
||||
* Called by the common I/O layer if the drive should be suspended on user
|
||||
* request. We refuse to suspend if the device is loaded or in use for the
|
||||
* following reason:
|
||||
* While the Linux guest is suspended, it might be logged off which causes
|
||||
* devices to be detached. Tape devices are automatically rewound and unloaded
|
||||
* during DETACH processing (unless the tape device was attached with the
|
||||
* NOASSIGN or MULTIUSER option). After rewind/unload, there is no way to
|
||||
* resume the original state of the tape device, since we would need to
|
||||
* manually re-load the cartridge which was active at suspend time.
|
||||
*/
|
||||
int tape_generic_pm_suspend(struct ccw_device *cdev)
|
||||
{
|
||||
struct tape_device *device;
|
||||
|
||||
device = dev_get_drvdata(&cdev->dev);
|
||||
if (!device) {
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
DBF_LH(3, "(%08x): tape_generic_pm_suspend(%p)\n",
|
||||
device->cdev_id, device);
|
||||
|
||||
if (device->medium_state != MS_UNLOADED) {
|
||||
pr_err("A cartridge is loaded in tape device %s, "
|
||||
"refusing to suspend\n", dev_name(&cdev->dev));
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
spin_lock_irq(get_ccwdev_lock(device->cdev));
|
||||
switch (device->tape_state) {
|
||||
case TS_INIT:
|
||||
case TS_NOT_OPER:
|
||||
case TS_UNUSED:
|
||||
spin_unlock_irq(get_ccwdev_lock(device->cdev));
|
||||
break;
|
||||
default:
|
||||
pr_err("Tape device %s is busy, refusing to "
|
||||
"suspend\n", dev_name(&cdev->dev));
|
||||
spin_unlock_irq(get_ccwdev_lock(device->cdev));
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
DBF_LH(3, "(%08x): Drive suspended.\n", device->cdev_id);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set device offline.
|
||||
*
|
||||
|
@ -1360,7 +1311,6 @@ EXPORT_SYMBOL(tape_generic_remove);
|
|||
EXPORT_SYMBOL(tape_generic_probe);
|
||||
EXPORT_SYMBOL(tape_generic_online);
|
||||
EXPORT_SYMBOL(tape_generic_offline);
|
||||
EXPORT_SYMBOL(tape_generic_pm_suspend);
|
||||
EXPORT_SYMBOL(tape_put_device);
|
||||
EXPORT_SYMBOL(tape_get_device);
|
||||
EXPORT_SYMBOL(tape_state_verbose);
|
||||
|
|
Loading…
Reference in New Issue