diff options
author | Julian Wiedmann <jwi@linux.vnet.ibm.com> | 2017-12-13 18:56:30 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-12-15 11:29:43 -0500 |
commit | b22d73d6689fd902a66c08ebe71ab2f3b351e22f (patch) | |
tree | 75d8eb5b090ec93229ccfe143eeecdf9701b4a79 /drivers/s390/net/qeth_l3_main.c | |
parent | 7fbd9493f0eeae8cef58300505a9ef5c8fce6313 (diff) | |
download | op-kernel-dev-b22d73d6689fd902a66c08ebe71ab2f3b351e22f.zip op-kernel-dev-b22d73d6689fd902a66c08ebe71ab2f3b351e22f.tar.gz |
s390/qeth: don't apply takeover changes to RXIP
When takeover is switched off, current code clears the 'TAKEOVER' flag on
all IPs. But the flag is also used for RXIP addresses, and those should
not be affected by the takeover mode.
Fix the behaviour by consistenly applying takover logic to NORMAL
addresses only.
Signed-off-by: Julian Wiedmann <jwi@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/s390/net/qeth_l3_main.c')
-rw-r--r-- | drivers/s390/net/qeth_l3_main.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c index 6a73894..4a4be81 100644 --- a/drivers/s390/net/qeth_l3_main.c +++ b/drivers/s390/net/qeth_l3_main.c @@ -174,6 +174,8 @@ int qeth_l3_is_addr_covered_by_ipato(struct qeth_card *card, if (!card->ipato.enabled) return 0; + if (addr->type != QETH_IP_TYPE_NORMAL) + return 0; qeth_l3_convert_addr_to_bits((u8 *) &addr->u, addr_bits, (addr->proto == QETH_PROT_IPV4)? 4:16); @@ -290,8 +292,7 @@ int qeth_l3_add_ip(struct qeth_card *card, struct qeth_ipaddr *tmp_addr) memcpy(addr, tmp_addr, sizeof(struct qeth_ipaddr)); addr->ref_counter = 1; - if (addr->type == QETH_IP_TYPE_NORMAL && - qeth_l3_is_addr_covered_by_ipato(card, addr)) { + if (qeth_l3_is_addr_covered_by_ipato(card, addr)) { QETH_CARD_TEXT(card, 2, "tkovaddr"); addr->set_flags |= QETH_IPA_SETIP_TAKEOVER_FLAG; } |