|
@@ -456,8 +456,11 @@ static void qeth_l3_set_ip_addr_list(struct qeth_card *card)
|
|
QETH_CARD_TEXT(card, 2, "sdiplist");
|
|
QETH_CARD_TEXT(card, 2, "sdiplist");
|
|
QETH_CARD_HEX(card, 2, &card, sizeof(void *));
|
|
QETH_CARD_HEX(card, 2, &card, sizeof(void *));
|
|
|
|
|
|
- if (card->options.sniffer)
|
|
|
|
|
|
+ if ((card->state != CARD_STATE_UP &&
|
|
|
|
+ card->state != CARD_STATE_SOFTSETUP) || card->options.sniffer) {
|
|
return;
|
|
return;
|
|
|
|
+ }
|
|
|
|
+
|
|
spin_lock_irqsave(&card->ip_lock, flags);
|
|
spin_lock_irqsave(&card->ip_lock, flags);
|
|
tbd_list = card->ip_tbd_list;
|
|
tbd_list = card->ip_tbd_list;
|
|
card->ip_tbd_list = kmalloc(sizeof(struct list_head), GFP_ATOMIC);
|
|
card->ip_tbd_list = kmalloc(sizeof(struct list_head), GFP_ATOMIC);
|