diff options
author | Julian Wiedmann | 2018-09-26 18:29:16 +0200 |
---|---|---|
committer | David S. Miller | 2018-09-26 18:56:08 +0200 |
commit | 91cc98f51e3d3b1bd2b9cd10fcc8ebfc08cd4c45 (patch) | |
tree | 95c62ebe9aa1712eefc5aa329b6f896aa28d891b /drivers/s390/net/qeth_core_main.c | |
parent | s390/qeth: clean up drop conditions for received cmds (diff) | |
download | kernel-qcow2-linux-91cc98f51e3d3b1bd2b9cd10fcc8ebfc08cd4c45.tar.gz kernel-qcow2-linux-91cc98f51e3d3b1bd2b9cd10fcc8ebfc08cd4c45.tar.xz kernel-qcow2-linux-91cc98f51e3d3b1bd2b9cd10fcc8ebfc08cd4c45.zip |
s390/qeth: remove duplicated carrier state tracking
The netdevice is always available, apply any carrier state changes to it
without caching them.
On a STARTLAN event (ie. carrier-up), defer updating the state to
qeth_core_hardsetup_card() in the subsequent recovery action.
Also remove the carrier-state checks from the xmit routines. Stopping
transmission on carrier-down is the responsibility of upper-level code
(eg see dev_direct_xmit()).
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/s390/net/qeth_core_main.c')
-rw-r--r-- | drivers/s390/net/qeth_core_main.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c index 9cbdc6760aba..0078b5d217cc 100644 --- a/drivers/s390/net/qeth_core_main.c +++ b/drivers/s390/net/qeth_core_main.c @@ -652,16 +652,13 @@ static struct qeth_ipa_cmd *qeth_check_ipa_data(struct qeth_card *card, "The link for interface %s on CHPID 0x%X failed\n", QETH_CARD_IFNAME(card), card->info.chpid); qeth_issue_ipa_msg(cmd, cmd->hdr.return_code, card); + netif_carrier_off(card->dev); } - card->lan_online = 0; - netif_carrier_off(card->dev); return NULL; case IPA_CMD_STARTLAN: dev_info(&card->gdev->dev, "The link for %s on CHPID 0x%X has been restored\n", QETH_CARD_IFNAME(card), card->info.chpid); - netif_carrier_on(card->dev); - card->lan_online = 1; if (card->info.hwtrap) card->info.hwtrap = 2; qeth_schedule_recovery(card); @@ -5133,13 +5130,14 @@ retriable: if (rc == IPA_RC_LAN_OFFLINE) { dev_warn(&card->gdev->dev, "The LAN is offline\n"); - card->lan_online = 0; + netif_carrier_off(card->dev); } else { rc = -ENODEV; goto out; } - } else - card->lan_online = 1; + } else { + netif_carrier_on(card->dev); + } card->options.ipa4.supported_funcs = 0; card->options.ipa6.supported_funcs = 0; |