X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fs390%2Fblock%2Fdasd_devmap.c;h=812bb006625a9d0089529b7c089361ece6efd9a3;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=5ea567ee240e463b9df807086d5045ed230ceaab;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/drivers/s390/block/dasd_devmap.c b/drivers/s390/block/dasd_devmap.c index 5ea567ee2..812bb0066 100644 --- a/drivers/s390/block/dasd_devmap.c +++ b/drivers/s390/block/dasd_devmap.c @@ -11,7 +11,7 @@ * functions may not be called from interrupt context. In particular * dasd_get_device is a no-no from interrupt context. * - * $Revision: 1.28 $ + * $Revision: 1.30 $ */ #include @@ -430,16 +430,9 @@ dasd_devmap_from_cdev(struct ccw_device *cdev) { struct dasd_devmap *devmap; - if (cdev->dev.driver_data) - return (struct dasd_devmap *) cdev->dev.driver_data; devmap = dasd_find_busid(cdev->dev.bus_id); - if (!IS_ERR(devmap)) { - cdev->dev.driver_data = devmap; - return devmap; - } - devmap = dasd_add_busid(cdev->dev.bus_id, DASD_FEATURE_DEFAULT); - if (!IS_ERR(devmap)) - cdev->dev.driver_data = devmap; + if (IS_ERR(devmap)) + devmap = dasd_add_busid(cdev->dev.bus_id, DASD_FEATURE_DEFAULT); return devmap; } @@ -456,6 +449,7 @@ dasd_create_device(struct ccw_device *cdev) devmap = dasd_devmap_from_cdev(cdev); if (IS_ERR(devmap)) return (void *) devmap; + cdev->dev.driver_data = devmap; device = dasd_alloc_device(); if (IS_ERR(device))