|
@@ -247,7 +247,8 @@ int qeth_l3_delete_ip(struct qeth_card *card, struct qeth_ipaddr *tmp_addr)
|
|
return -ENOENT;
|
|
return -ENOENT;
|
|
|
|
|
|
addr->ref_counter--;
|
|
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;
|
|
return rc;
|
|
if (addr->in_progress)
|
|
if (addr->in_progress)
|
|
return -EINPROGRESS;
|
|
return -EINPROGRESS;
|
|
@@ -329,8 +330,9 @@ int qeth_l3_add_ip(struct qeth_card *card, struct qeth_ipaddr *tmp_addr)
|
|
kfree(addr);
|
|
kfree(addr);
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- if (addr->type == QETH_IP_TYPE_NORMAL)
|
|
|
|
- addr->ref_counter++;
|
|
|
|
|
|
+ if (addr->type == QETH_IP_TYPE_NORMAL ||
|
|
|
|
+ addr->type == QETH_IP_TYPE_RXIP)
|
|
|
|
+ addr->ref_counter++;
|
|
}
|
|
}
|
|
|
|
|
|
return rc;
|
|
return rc;
|