From 0f0f8c278aa12edf7c2d0ed45c6e9bda0369a169 Mon Sep 17 00:00:00 2001 From: Peter Oberparleiter Date: Mon, 7 Dec 2009 12:51:20 +0100 Subject: [PATCH] --- yaml --- r: 173231 b: refs/heads/master c: a7ae2c02f5ab7080646a4cc6c01065ae9decad54 h: refs/heads/master i: 173229: ad4e6576fe6a5f3f8e2e8b3fde59dd6e302e325f 173227: d12d9a2aa4fa17f18f73f31570facb37e5371185 173223: 9324dda5ab23ca572b493f5fab4d792c63a00470 173215: a85ee31a85c7c474a5c91d62f825a8f20f056c62 v: v3 --- [refs] | 2 +- trunk/drivers/s390/cio/device.c | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index e488dd9960dd..3ebd2fb9b7bc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 37de53bb52908726c18fc84515792a5b2f454532 +refs/heads/master: a7ae2c02f5ab7080646a4cc6c01065ae9decad54 diff --git a/trunk/drivers/s390/cio/device.c b/trunk/drivers/s390/cio/device.c index 167446785d19..ee3450667687 100644 --- a/trunk/drivers/s390/cio/device.c +++ b/trunk/drivers/s390/cio/device.c @@ -7,6 +7,10 @@ * Cornelia Huck (cornelia.huck@de.ibm.com) * Martin Schwidefsky (schwidefsky@de.ibm.com) */ + +#define KMSG_COMPONENT "cio" +#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt + #include #include #include @@ -347,6 +351,14 @@ int ccw_device_set_offline(struct ccw_device *cdev) spin_unlock_irq(cdev->ccwlock); wait_event(cdev->private->wait_q, (dev_fsm_final_state(cdev) || cdev->private->state == DEV_STATE_DISCONNECTED)); + /* Inform the user if set offline failed. */ + if (cdev->private->state == DEV_STATE_BOXED) { + pr_warning("%s: The device entered boxed state while " + "being set offline\n", dev_name(&cdev->dev)); + } else if (cdev->private->state == DEV_STATE_NOT_OPER) { + pr_warning("%s: The device stopped operating while " + "being set offline\n", dev_name(&cdev->dev)); + } /* Give up reference from ccw_device_set_online(). */ put_device(&cdev->dev); return 0; @@ -407,6 +419,16 @@ int ccw_device_set_online(struct ccw_device *cdev) if ((cdev->private->state != DEV_STATE_ONLINE) && (cdev->private->state != DEV_STATE_W4SENSE)) { spin_unlock_irq(cdev->ccwlock); + /* Inform the user that set online failed. */ + if (cdev->private->state == DEV_STATE_BOXED) { + pr_warning("%s: Setting the device online failed " + "because it is boxed\n", + dev_name(&cdev->dev)); + } else if (cdev->private->state == DEV_STATE_NOT_OPER) { + pr_warning("%s: Setting the device online failed " + "because it is not operational\n", + dev_name(&cdev->dev)); + } /* Give up online reference since onlining failed. */ put_device(&cdev->dev); return -ENODEV;