diff options
author | Klaus-Dieter Wacker <kdwacker@de.ibm.com> | 2009-10-14 18:54:58 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-10-18 02:57:22 -0400 |
commit | d816d4238245b019d6f86f58163c78f015bd94ed (patch) | |
tree | 49ca1fdc96ce1b65ed91a9d288b4efce70565128 /drivers/s390 | |
parent | d62e09e34eba15be382a7aed27b0fa67112e29e0 (diff) |
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 <kdwacker@de.ibm.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/net/lcs.c | 12 |
1 files changed, 9 insertions, 3 deletions
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) | |||
2130 | card->write.ccwdev = ccwgdev->cdev[1]; | 2130 | card->write.ccwdev = ccwgdev->cdev[1]; |
2131 | 2131 | ||
2132 | recover_state = card->state; | 2132 | recover_state = card->state; |
2133 | ccw_device_set_online(card->read.ccwdev); | 2133 | rc = ccw_device_set_online(card->read.ccwdev); |
2134 | ccw_device_set_online(card->write.ccwdev); | 2134 | if (rc) |
2135 | goto out_err; | ||
2136 | rc = ccw_device_set_online(card->write.ccwdev); | ||
2137 | if (rc) | ||
2138 | goto out_werr; | ||
2135 | 2139 | ||
2136 | LCS_DBF_TEXT(3, setup, "lcsnewdv"); | 2140 | LCS_DBF_TEXT(3, setup, "lcsnewdv"); |
2137 | 2141 | ||
@@ -2210,8 +2214,10 @@ netdev_out: | |||
2210 | return 0; | 2214 | return 0; |
2211 | out: | 2215 | out: |
2212 | 2216 | ||
2213 | ccw_device_set_offline(card->read.ccwdev); | ||
2214 | ccw_device_set_offline(card->write.ccwdev); | 2217 | ccw_device_set_offline(card->write.ccwdev); |
2218 | out_werr: | ||
2219 | ccw_device_set_offline(card->read.ccwdev); | ||
2220 | out_err: | ||
2215 | return -ENODEV; | 2221 | return -ENODEV; |
2216 | } | 2222 | } |
2217 | 2223 | ||