From: Klaus-Dieter Wacker Date: Wed, 14 Oct 2009 22:54:58 +0000 (+0000) Subject: lcs: Recognize return codes of ccw_device_set_online(). X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=d816d4238245b019d6f86f58163c78f015bd94ed;p=deliverable%2Flinux.git lcs: Recognize return codes of ccw_device_set_online(). The creation of a new lcs device requires a call to the function ccw_device_set_online() for the read and the write channel. Failure of either call should terminate the lcs device creation immediately with return code -ENODEV. Signed-off-by: Klaus-Dieter Wacker Signed-off-by: Ursula Braun Signed-off-by: David S. Miller --- diff --git a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c index f8dfd70a89d9..5e46415d3e13 100644 --- a/drivers/s390/net/lcs.c +++ b/drivers/s390/net/lcs.c @@ -2130,8 +2130,12 @@ lcs_new_device(struct ccwgroup_device *ccwgdev) card->write.ccwdev = ccwgdev->cdev[1]; recover_state = card->state; - ccw_device_set_online(card->read.ccwdev); - ccw_device_set_online(card->write.ccwdev); + rc = ccw_device_set_online(card->read.ccwdev); + if (rc) + goto out_err; + rc = ccw_device_set_online(card->write.ccwdev); + if (rc) + goto out_werr; LCS_DBF_TEXT(3, setup, "lcsnewdv"); @@ -2210,8 +2214,10 @@ netdev_out: return 0; out: - ccw_device_set_offline(card->read.ccwdev); ccw_device_set_offline(card->write.ccwdev); +out_werr: + ccw_device_set_offline(card->read.ccwdev); +out_err: return -ENODEV; }