Commit e6125fba authored by Stefan Haberland's avatar Stefan Haberland Committed by Martin Schwidefsky

[S390] dasd_pm: fix stop flag handling

The stop flags are handled in the generic restore function so the
stop flag is removed also for FBA and DIAG devices.
Signed-off-by: default avatarStefan Haberland <stefan.haberland@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 772f5472
...@@ -2503,15 +2503,25 @@ int dasd_generic_restore_device(struct ccw_device *cdev) ...@@ -2503,15 +2503,25 @@ int dasd_generic_restore_device(struct ccw_device *cdev)
if (IS_ERR(device)) if (IS_ERR(device))
return PTR_ERR(device); return PTR_ERR(device);
/* allow new IO again */
device->stopped &= ~DASD_STOPPED_PM;
device->stopped &= ~DASD_UNRESUMED_PM;
dasd_schedule_device_bh(device); dasd_schedule_device_bh(device);
if (device->block) if (device->block)
dasd_schedule_block_bh(device->block); dasd_schedule_block_bh(device->block);
if (device->discipline->restore) if (device->discipline->restore)
rc = device->discipline->restore(device); rc = device->discipline->restore(device);
if (rc)
/*
* if the resume failed for the DASD we put it in
* an UNRESUMED stop state
*/
device->stopped |= DASD_UNRESUMED_PM;
dasd_put_device(device); dasd_put_device(device);
return rc; return 0;
} }
EXPORT_SYMBOL_GPL(dasd_generic_restore_device); EXPORT_SYMBOL_GPL(dasd_generic_restore_device);
......
...@@ -3243,9 +3243,6 @@ int dasd_eckd_restore_device(struct dasd_device *device) ...@@ -3243,9 +3243,6 @@ int dasd_eckd_restore_device(struct dasd_device *device)
int is_known, rc; int is_known, rc;
struct dasd_uid temp_uid; struct dasd_uid temp_uid;
/* allow new IO again */
device->stopped &= ~DASD_STOPPED_PM;
private = (struct dasd_eckd_private *) device->private; private = (struct dasd_eckd_private *) device->private;
/* Read Configuration Data */ /* Read Configuration Data */
...@@ -3295,12 +3292,7 @@ int dasd_eckd_restore_device(struct dasd_device *device) ...@@ -3295,12 +3292,7 @@ int dasd_eckd_restore_device(struct dasd_device *device)
return 0; return 0;
out_err: out_err:
/* return -1;
* if the resume failed for the DASD we put it in
* an UNRESUMED stop state
*/
device->stopped |= DASD_UNRESUMED_PM;
return 0;
} }
static struct ccw_driver dasd_eckd_driver = { static struct ccw_driver dasd_eckd_driver = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment