|
@@ -823,14 +823,15 @@ __qeth_delete_all_mc(struct qeth_card *card, unsigned long *flags)
|
|
|
again:
|
|
|
list_for_each_entry_safe(addr, tmp, &card->ip_list, entry) {
|
|
|
if (addr->is_multicast) {
|
|
|
+ list_del(&addr->entry);
|
|
|
spin_unlock_irqrestore(&card->ip_lock, *flags);
|
|
|
rc = qeth_deregister_addr_entry(card, addr);
|
|
|
spin_lock_irqsave(&card->ip_lock, *flags);
|
|
|
if (!rc) {
|
|
|
- list_del(&addr->entry);
|
|
|
kfree(addr);
|
|
|
goto again;
|
|
|
- }
|
|
|
+ } else
|
|
|
+ list_add(&addr->entry, &card->ip_list);
|
|
|
}
|
|
|
}
|
|
|
}
|