* 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 <linux/config.h>
{
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;
}
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))