aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/net/qeth_l2_main.c11
-rw-r--r--drivers/s390/net/qeth_l3_main.c11
2 files changed, 12 insertions, 10 deletions
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c
index 847e8797073c..7a7a1b664781 100644
--- a/drivers/s390/net/qeth_l2_main.c
+++ b/drivers/s390/net/qeth_l2_main.c
@@ -849,8 +849,6 @@ static int qeth_l2_open(struct net_device *dev)
849 card->state = CARD_STATE_UP; 849 card->state = CARD_STATE_UP;
850 netif_start_queue(dev); 850 netif_start_queue(dev);
851 851
852 if (!card->lan_online && netif_carrier_ok(dev))
853 netif_carrier_off(dev);
854 if (qdio_stop_irq(card->data.ccwdev, 0) >= 0) { 852 if (qdio_stop_irq(card->data.ccwdev, 0) >= 0) {
855 napi_enable(&card->napi); 853 napi_enable(&card->napi);
856 napi_schedule(&card->napi); 854 napi_schedule(&card->napi);
@@ -1013,13 +1011,14 @@ static int __qeth_l2_set_online(struct ccwgroup_device *gdev, int recovery_mode)
1013 dev_warn(&card->gdev->dev, 1011 dev_warn(&card->gdev->dev,
1014 "The LAN is offline\n"); 1012 "The LAN is offline\n");
1015 card->lan_online = 0; 1013 card->lan_online = 0;
1016 goto out; 1014 goto contin;
1017 } 1015 }
1018 rc = -ENODEV; 1016 rc = -ENODEV;
1019 goto out_remove; 1017 goto out_remove;
1020 } else 1018 } else
1021 card->lan_online = 1; 1019 card->lan_online = 1;
1022 1020
1021contin:
1023 if ((card->info.type == QETH_CARD_TYPE_OSD) || 1022 if ((card->info.type == QETH_CARD_TYPE_OSD) ||
1024 (card->info.type == QETH_CARD_TYPE_OSX)) 1023 (card->info.type == QETH_CARD_TYPE_OSX))
1025 /* configure isolation level */ 1024 /* configure isolation level */
@@ -1038,7 +1037,10 @@ static int __qeth_l2_set_online(struct ccwgroup_device *gdev, int recovery_mode)
1038 goto out_remove; 1037 goto out_remove;
1039 } 1038 }
1040 card->state = CARD_STATE_SOFTSETUP; 1039 card->state = CARD_STATE_SOFTSETUP;
1041 netif_carrier_on(card->dev); 1040 if (card->lan_online)
1041 netif_carrier_on(card->dev);
1042 else
1043 netif_carrier_off(card->dev);
1042 1044
1043 qeth_set_allowed_threads(card, 0xffffffff, 0); 1045 qeth_set_allowed_threads(card, 0xffffffff, 0);
1044 if (recover_flag == CARD_STATE_RECOVER) { 1046 if (recover_flag == CARD_STATE_RECOVER) {
@@ -1055,7 +1057,6 @@ static int __qeth_l2_set_online(struct ccwgroup_device *gdev, int recovery_mode)
1055 } 1057 }
1056 /* let user_space know that device is online */ 1058 /* let user_space know that device is online */
1057 kobject_uevent(&gdev->dev.kobj, KOBJ_CHANGE); 1059 kobject_uevent(&gdev->dev.kobj, KOBJ_CHANGE);
1058out:
1059 mutex_unlock(&card->conf_mutex); 1060 mutex_unlock(&card->conf_mutex);
1060 mutex_unlock(&card->discipline_mutex); 1061 mutex_unlock(&card->discipline_mutex);
1061 return 0; 1062 return 0;
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c
index 65291db324f5..3ddd5add7984 100644
--- a/drivers/s390/net/qeth_l3_main.c
+++ b/drivers/s390/net/qeth_l3_main.c
@@ -3177,8 +3177,6 @@ static int qeth_l3_open(struct net_device *dev)
3177 card->state = CARD_STATE_UP; 3177 card->state = CARD_STATE_UP;
3178 netif_start_queue(dev); 3178 netif_start_queue(dev);
3179 3179
3180 if (!card->lan_online && netif_carrier_ok(dev))
3181 netif_carrier_off(dev);
3182 if (qdio_stop_irq(card->data.ccwdev, 0) >= 0) { 3180 if (qdio_stop_irq(card->data.ccwdev, 0) >= 0) {
3183 napi_enable(&card->napi); 3181 napi_enable(&card->napi);
3184 napi_schedule(&card->napi); 3182 napi_schedule(&card->napi);
@@ -3450,13 +3448,14 @@ static int __qeth_l3_set_online(struct ccwgroup_device *gdev, int recovery_mode)
3450 dev_warn(&card->gdev->dev, 3448 dev_warn(&card->gdev->dev,
3451 "The LAN is offline\n"); 3449 "The LAN is offline\n");
3452 card->lan_online = 0; 3450 card->lan_online = 0;
3453 goto out; 3451 goto contin;
3454 } 3452 }
3455 rc = -ENODEV; 3453 rc = -ENODEV;
3456 goto out_remove; 3454 goto out_remove;
3457 } else 3455 } else
3458 card->lan_online = 1; 3456 card->lan_online = 1;
3459 3457
3458contin:
3460 rc = qeth_l3_setadapter_parms(card); 3459 rc = qeth_l3_setadapter_parms(card);
3461 if (rc) 3460 if (rc)
3462 QETH_DBF_TEXT_(SETUP, 2, "2err%d", rc); 3461 QETH_DBF_TEXT_(SETUP, 2, "2err%d", rc);
@@ -3481,10 +3480,13 @@ static int __qeth_l3_set_online(struct ccwgroup_device *gdev, int recovery_mode)
3481 goto out_remove; 3480 goto out_remove;
3482 } 3481 }
3483 card->state = CARD_STATE_SOFTSETUP; 3482 card->state = CARD_STATE_SOFTSETUP;
3484 netif_carrier_on(card->dev);
3485 3483
3486 qeth_set_allowed_threads(card, 0xffffffff, 0); 3484 qeth_set_allowed_threads(card, 0xffffffff, 0);
3487 qeth_l3_set_ip_addr_list(card); 3485 qeth_l3_set_ip_addr_list(card);
3486 if (card->lan_online)
3487 netif_carrier_on(card->dev);
3488 else
3489 netif_carrier_off(card->dev);
3488 if (recover_flag == CARD_STATE_RECOVER) { 3490 if (recover_flag == CARD_STATE_RECOVER) {
3489 if (recovery_mode) 3491 if (recovery_mode)
3490 qeth_l3_open(card->dev); 3492 qeth_l3_open(card->dev);
@@ -3497,7 +3499,6 @@ static int __qeth_l3_set_online(struct ccwgroup_device *gdev, int recovery_mode)
3497 } 3499 }
3498 /* let user_space know that device is online */ 3500 /* let user_space know that device is online */
3499 kobject_uevent(&gdev->dev.kobj, KOBJ_CHANGE); 3501 kobject_uevent(&gdev->dev.kobj, KOBJ_CHANGE);
3500out:
3501 mutex_unlock(&card->conf_mutex); 3502 mutex_unlock(&card->conf_mutex);
3502 mutex_unlock(&card->discipline_mutex); 3503 mutex_unlock(&card->discipline_mutex);
3503 return 0; 3504 return 0;