aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/net
diff options
context:
space:
mode:
authorKlaus-Dieter Wacker <kdwacker@de.ibm.com>2012-03-06 21:06:29 -0500
committerDavid S. Miller <davem@davemloft.net>2012-03-08 01:52:25 -0500
commite427babeefe10023d348e2a3db272612d6e79dc3 (patch)
treec84dba999a2b80503c2416469e2b69c41ae1eb64 /drivers/s390/net
parente0a8114c034cf8012565c5d56dd90967023cc724 (diff)
lcs: Return zero from ccwgroup devs set_offline function
A return code of non-zero of the devs ccwgroup set_offline function leaves the dev in online state. Having done a partly offlining may leave the dev in unusable state. To make sure the dev is set to offline, zero is returned. A setup trace entry is written in case the offlining steps encountered some trouble. Signed-off-by: Klaus-Dieter Wacker <kdwacker@de.ibm.com> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/s390/net')
-rw-r--r--drivers/s390/net/lcs.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c
index 863fc2197155..687efe4d589a 100644
--- a/drivers/s390/net/lcs.c
+++ b/drivers/s390/net/lcs.c
@@ -2240,7 +2240,7 @@ __lcs_shutdown_device(struct ccwgroup_device *ccwgdev, int recovery_mode)
2240{ 2240{
2241 struct lcs_card *card; 2241 struct lcs_card *card;
2242 enum lcs_dev_states recover_state; 2242 enum lcs_dev_states recover_state;
2243 int ret; 2243 int ret = 0, ret2 = 0, ret3 = 0;
2244 2244
2245 LCS_DBF_TEXT(3, setup, "shtdndev"); 2245 LCS_DBF_TEXT(3, setup, "shtdndev");
2246 card = dev_get_drvdata(&ccwgdev->dev); 2246 card = dev_get_drvdata(&ccwgdev->dev);
@@ -2255,13 +2255,15 @@ __lcs_shutdown_device(struct ccwgroup_device *ccwgdev, int recovery_mode)
2255 recover_state = card->state; 2255 recover_state = card->state;
2256 2256
2257 ret = lcs_stop_device(card->dev); 2257 ret = lcs_stop_device(card->dev);
2258 ret = ccw_device_set_offline(card->read.ccwdev); 2258 ret2 = ccw_device_set_offline(card->read.ccwdev);
2259 ret = ccw_device_set_offline(card->write.ccwdev); 2259 ret3 = ccw_device_set_offline(card->write.ccwdev);
2260 if (!ret)
2261 ret = (ret2) ? ret2 : ret3;
2262 if (ret)
2263 LCS_DBF_TEXT_(3, setup, "1err:%d", ret);
2260 if (recover_state == DEV_STATE_UP) { 2264 if (recover_state == DEV_STATE_UP) {
2261 card->state = DEV_STATE_RECOVER; 2265 card->state = DEV_STATE_RECOVER;
2262 } 2266 }
2263 if (ret)
2264 return ret;
2265 return 0; 2267 return 0;
2266} 2268}
2267 2269