Skip to content

Commit

Permalink
[PATCH] s390: dasd set online failure
Browse files Browse the repository at this point in the history
dasd driver changes:
 - The feature check in dasd_generic_online returns an error if
   the devmap entry for the device is not yet available. Check
   for the feature after the device has been created.
 - Do symmetric registration/deregistration of cdev->handler.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Horst Hummel authored and Linus Torvalds committed May 17, 2005
1 parent 53b2168 commit 59afda7
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions drivers/s390/block/dasd.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
* Bugreports.to..: <Linux390@de.ibm.com>
* (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999-2001
*
* $Revision: 1.161 $
* $Revision: 1.164 $
*/

#include <linux/config.h>
Expand Down Expand Up @@ -1766,10 +1766,10 @@ dasd_generic_probe (struct ccw_device *cdev,
printk(KERN_WARNING
"dasd_generic_probe: could not add sysfs entries "
"for %s\n", cdev->dev.bus_id);
} else {
cdev->handler = &dasd_int_handler;
}

cdev->handler = &dasd_int_handler;

return ret;
}

Expand All @@ -1780,6 +1780,8 @@ dasd_generic_remove (struct ccw_device *cdev)
{
struct dasd_device *device;

cdev->handler = NULL;

dasd_remove_sysfs_files(cdev);
device = dasd_device_from_cdev(cdev);
if (IS_ERR(device))
Expand Down Expand Up @@ -1810,14 +1812,14 @@ dasd_generic_set_online (struct ccw_device *cdev,
struct dasd_device *device;
int feature_diag, rc;

feature_diag = dasd_get_feature(cdev, DASD_FEATURE_USEDIAG);
if (feature_diag < 0)
return feature_diag;

device = dasd_create_device(cdev);
if (IS_ERR(device))
return PTR_ERR(device);

feature_diag = dasd_get_feature(cdev, DASD_FEATURE_USEDIAG);
if (feature_diag < 0)
return feature_diag;

if (feature_diag) {
if (!dasd_diag_discipline_pointer) {
printk (KERN_WARNING
Expand Down

0 comments on commit 59afda7

Please sign in to comment.