[S390] cio: ccw_device_online_store return -EINVAL in case of missing driver
If no driver is attached to a device or the driver provides no set_online/set_offline function, setting this device online/offline via its sysfs online attribute will silently fail but return success. This patch changes the behavior to return -EINVAL in those cases. Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
dbedd0ee47
commit
7cd403142d
1 changed files with 6 additions and 4 deletions
|
@ -487,9 +487,11 @@ static int online_store_handle_offline(struct ccw_device *cdev)
|
|||
spin_lock_irq(cdev->ccwlock);
|
||||
ccw_device_sched_todo(cdev, CDEV_TODO_UNREG_EVAL);
|
||||
spin_unlock_irq(cdev->ccwlock);
|
||||
} else if (cdev->online && cdev->drv && cdev->drv->set_offline)
|
||||
return 0;
|
||||
}
|
||||
if (cdev->drv && cdev->drv->set_offline)
|
||||
return ccw_device_set_offline(cdev);
|
||||
return 0;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static int online_store_recog_and_online(struct ccw_device *cdev)
|
||||
|
@ -506,8 +508,8 @@ static int online_store_recog_and_online(struct ccw_device *cdev)
|
|||
return -EAGAIN;
|
||||
}
|
||||
if (cdev->drv && cdev->drv->set_online)
|
||||
ccw_device_set_online(cdev);
|
||||
return 0;
|
||||
return ccw_device_set_online(cdev);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static int online_store_handle_online(struct ccw_device *cdev, int force)
|
||||
|
|
Loading…
Reference in a new issue