aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/net/qeth_l3_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/net/qeth_l3_main.c')
-rw-r--r--drivers/s390/net/qeth_l3_main.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c
index e227e465bfc..988255b443e 100644
--- a/drivers/s390/net/qeth_l3_main.c
+++ b/drivers/s390/net/qeth_l3_main.c
@@ -3240,12 +3240,14 @@ tx_drop:
3240 return NETDEV_TX_OK; 3240 return NETDEV_TX_OK;
3241} 3241}
3242 3242
3243static int qeth_l3_open(struct net_device *dev) 3243static int __qeth_l3_open(struct net_device *dev)
3244{ 3244{
3245 struct qeth_card *card = dev->ml_priv; 3245 struct qeth_card *card = dev->ml_priv;
3246 int rc = 0; 3246 int rc = 0;
3247 3247
3248 QETH_CARD_TEXT(card, 4, "qethopen"); 3248 QETH_CARD_TEXT(card, 4, "qethopen");
3249 if (card->state == CARD_STATE_UP)
3250 return rc;
3249 if (card->state != CARD_STATE_SOFTSETUP) 3251 if (card->state != CARD_STATE_SOFTSETUP)
3250 return -ENODEV; 3252 return -ENODEV;
3251 card->data.state = CH_STATE_UP; 3253 card->data.state = CH_STATE_UP;
@@ -3260,6 +3262,18 @@ static int qeth_l3_open(struct net_device *dev)
3260 return rc; 3262 return rc;
3261} 3263}
3262 3264
3265static int qeth_l3_open(struct net_device *dev)
3266{
3267 struct qeth_card *card = dev->ml_priv;
3268
3269 QETH_CARD_TEXT(card, 5, "qethope_");
3270 if (qeth_wait_for_threads(card, QETH_RECOVER_THREAD)) {
3271 QETH_CARD_TEXT(card, 3, "openREC");
3272 return -ERESTARTSYS;
3273 }
3274 return __qeth_l3_open(dev);
3275}
3276
3263static int qeth_l3_stop(struct net_device *dev) 3277static int qeth_l3_stop(struct net_device *dev)
3264{ 3278{
3265 struct qeth_card *card = dev->ml_priv; 3279 struct qeth_card *card = dev->ml_priv;
@@ -3564,7 +3578,7 @@ contin:
3564 netif_carrier_off(card->dev); 3578 netif_carrier_off(card->dev);
3565 if (recover_flag == CARD_STATE_RECOVER) { 3579 if (recover_flag == CARD_STATE_RECOVER) {
3566 if (recovery_mode) 3580 if (recovery_mode)
3567 qeth_l3_open(card->dev); 3581 __qeth_l3_open(card->dev);
3568 else { 3582 else {
3569 rtnl_lock(); 3583 rtnl_lock();
3570 dev_open(card->dev); 3584 dev_open(card->dev);