aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/net/qeth_l3_sys.c
diff options
context:
space:
mode:
authorKlaus-Dieter Wacker <kdwacker@de.ibmc.om>2010-07-22 19:15:03 -0400
committerDavid S. Miller <davem@davemloft.net>2010-07-23 15:36:22 -0400
commit6298263ac0a9aab94b399d30f67e355edc4c4f49 (patch)
treec256e72583ab1b84e9d53717cbd21f2b0dc21f4d /drivers/s390/net/qeth_l3_sys.c
parent1ff219068c0e032a6fd64c45bd69f3bc7374feb6 (diff)
qeth: IP address takeover flag setting
The qeth IP address flag setting is possible when device is offline. When setting device online afterwards the current set IP addresses have to be correctly registered with the device regarding the IP address takeover attribute. 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/qeth_l3_sys.c')
-rw-r--r--drivers/s390/net/qeth_l3_sys.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/s390/net/qeth_l3_sys.c b/drivers/s390/net/qeth_l3_sys.c
index fb5318b30e99..67cfa68dcf1b 100644
--- a/drivers/s390/net/qeth_l3_sys.c
+++ b/drivers/s390/net/qeth_l3_sys.c
@@ -479,6 +479,7 @@ static ssize_t qeth_l3_dev_ipato_enable_store(struct device *dev,
479 struct device_attribute *attr, const char *buf, size_t count) 479 struct device_attribute *attr, const char *buf, size_t count)
480{ 480{
481 struct qeth_card *card = dev_get_drvdata(dev); 481 struct qeth_card *card = dev_get_drvdata(dev);
482 struct qeth_ipaddr *tmpipa, *t;
482 char *tmp; 483 char *tmp;
483 int rc = 0; 484 int rc = 0;
484 485
@@ -497,8 +498,21 @@ static ssize_t qeth_l3_dev_ipato_enable_store(struct device *dev,
497 card->ipato.enabled = (card->ipato.enabled)? 0 : 1; 498 card->ipato.enabled = (card->ipato.enabled)? 0 : 1;
498 } else if (!strcmp(tmp, "1")) { 499 } else if (!strcmp(tmp, "1")) {
499 card->ipato.enabled = 1; 500 card->ipato.enabled = 1;
501 list_for_each_entry_safe(tmpipa, t, card->ip_tbd_list, entry) {
502 if ((tmpipa->type == QETH_IP_TYPE_NORMAL) &&
503 qeth_l3_is_addr_covered_by_ipato(card, tmpipa))
504 tmpipa->set_flags |=
505 QETH_IPA_SETIP_TAKEOVER_FLAG;
506 }
507
500 } else if (!strcmp(tmp, "0")) { 508 } else if (!strcmp(tmp, "0")) {
501 card->ipato.enabled = 0; 509 card->ipato.enabled = 0;
510 list_for_each_entry_safe(tmpipa, t, card->ip_tbd_list, entry) {
511 if (tmpipa->set_flags &
512 QETH_IPA_SETIP_TAKEOVER_FLAG)
513 tmpipa->set_flags &=
514 ~QETH_IPA_SETIP_TAKEOVER_FLAG;
515 }
502 } else 516 } else
503 rc = -EINVAL; 517 rc = -EINVAL;
504out: 518out: