Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cb816192 authored by Kittipon Meesompop's avatar Kittipon Meesompop Committed by David S. Miller
Browse files

s390/qeth: fix using of ref counter for rxip addresses



IP-address setting and removal are delayed when the device is not yet in
state SOFTSETUP or UP. ref_counter has been implemented only for
ip-address with type normal. In this patch ref_counter logic is also used
for ip-address with type rxip to allow appropriate handling of multiple
postponed rxip add and del calls.

Signed-off-by: default avatarKittipon Meesompop <kmeesomp@linux.vnet.ibm.com>
Signed-off-by: default avatarJulian Wiedmann <jwi@linux.vnet.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ea4ae35a
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -247,7 +247,8 @@ int qeth_l3_delete_ip(struct qeth_card *card, struct qeth_ipaddr *tmp_addr)
		return -ENOENT;

	addr->ref_counter--;
	if (addr->type == QETH_IP_TYPE_NORMAL && addr->ref_counter > 0)
	if (addr->ref_counter > 0 && (addr->type == QETH_IP_TYPE_NORMAL ||
				      addr->type == QETH_IP_TYPE_RXIP))
		return rc;
	if (addr->in_progress)
		return -EINPROGRESS;
@@ -329,7 +330,8 @@ int qeth_l3_add_ip(struct qeth_card *card, struct qeth_ipaddr *tmp_addr)
			kfree(addr);
		}
	} else {
			if (addr->type == QETH_IP_TYPE_NORMAL)
		if (addr->type == QETH_IP_TYPE_NORMAL ||
		    addr->type == QETH_IP_TYPE_RXIP)
			addr->ref_counter++;
	}