|
@@ -173,12 +173,8 @@ int qeth_l3_delete_ip(struct qeth_card *card, struct qeth_ipaddr *tmp_addr)
|
|
|
if (addr->in_progress)
|
|
|
return -EINPROGRESS;
|
|
|
|
|
|
- if (!qeth_card_hw_is_reachable(card)) {
|
|
|
- addr->disp_flag = QETH_DISP_ADDR_DELETE;
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
- rc = qeth_l3_deregister_addr_entry(card, addr);
|
|
|
+ if (qeth_card_hw_is_reachable(card))
|
|
|
+ rc = qeth_l3_deregister_addr_entry(card, addr);
|
|
|
|
|
|
hash_del(&addr->hnode);
|
|
|
kfree(addr);
|
|
@@ -321,11 +317,7 @@ static void qeth_l3_recover_ip(struct qeth_card *card)
|
|
|
spin_lock_bh(&card->ip_lock);
|
|
|
|
|
|
hash_for_each_safe(card->ip_htable, i, tmp, addr, hnode) {
|
|
|
- if (addr->disp_flag == QETH_DISP_ADDR_DELETE) {
|
|
|
- qeth_l3_deregister_addr_entry(card, addr);
|
|
|
- hash_del(&addr->hnode);
|
|
|
- kfree(addr);
|
|
|
- } else if (addr->disp_flag == QETH_DISP_ADDR_ADD) {
|
|
|
+ if (addr->disp_flag == QETH_DISP_ADDR_ADD) {
|
|
|
if (addr->proto == QETH_PROT_IPV4) {
|
|
|
addr->in_progress = 1;
|
|
|
spin_unlock_bh(&card->ip_lock);
|