lkml.org 
[lkml]   [2005]   [May]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[patch] s390: dasd set online failure.
Hi Andrew,
the following dasd patch should go into 2.6.12 if possible.
Without it only dasd devices specified with dasd= are usable,
setting device online later returns with an error.
The rest of my patches aren't important enough given the
late stage of 2.6.12-rc4.

blue skies,
Martin.

---
[patch] s390: dasd set online failure.

From: Horst Hummel <horst.hummel@de.ibm.com>

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>

diffstat:
drivers/s390/block/dasd.c | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)

diff -urpN linux-2.6/drivers/s390/block/dasd.c linux-2.6-patched/drivers/s390/block/dasd.c
--- linux-2.6/drivers/s390/block/dasd.c 2005-05-13 11:16:14.000000000 +0200
+++ linux-2.6-patched/drivers/s390/block/dasd.c 2005-05-13 11:16:28.000000000 +0200
@@ -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>
@@ -1766,10 +1766,10 @@ dasd_generic_probe (struct ccw_device *c
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;
}

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

+ cdev->handler = NULL;
+
dasd_remove_sysfs_files(cdev);
device = dasd_device_from_cdev(cdev);
if (IS_ERR(device))
@@ -1810,14 +1812,14 @@ dasd_generic_set_online (struct ccw_devi
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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-05-13 16:18    [W:0.155 / U:24.712 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site