[S390] cio: allow setting not-operational devices offline
Accept a request for setting a not-operational device offline. This way, users can remove devices from Linux which would otherwise remain unusable until reboot. Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
9679baaf85
commit
350e91207b
|
@ -529,11 +529,10 @@ static ssize_t online_store (struct device *dev, struct device_attribute *attr,
|
||||||
int force, ret;
|
int force, ret;
|
||||||
unsigned long i;
|
unsigned long i;
|
||||||
|
|
||||||
if ((cdev->private->state != DEV_STATE_OFFLINE &&
|
if (!dev_fsm_final_state(cdev) &&
|
||||||
cdev->private->state != DEV_STATE_ONLINE &&
|
cdev->private->state != DEV_STATE_DISCONNECTED)
|
||||||
cdev->private->state != DEV_STATE_BOXED &&
|
return -EAGAIN;
|
||||||
cdev->private->state != DEV_STATE_DISCONNECTED) ||
|
if (atomic_cmpxchg(&cdev->private->onoff, 0, 1) != 0)
|
||||||
atomic_cmpxchg(&cdev->private->onoff, 0, 1) != 0)
|
|
||||||
return -EAGAIN;
|
return -EAGAIN;
|
||||||
|
|
||||||
if (cdev->drv && !try_module_get(cdev->drv->owner)) {
|
if (cdev->drv && !try_module_get(cdev->drv->owner)) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user