diff options
-rw-r--r-- | drivers/net/wireless/wl12xx/tx.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/wl12xx/tx.c b/drivers/net/wireless/wl12xx/tx.c index 5351f015feef..27a45e1459c4 100644 --- a/drivers/net/wireless/wl12xx/tx.c +++ b/drivers/net/wireless/wl12xx/tx.c | |||
@@ -428,7 +428,15 @@ static int wl1271_prepare_tx_frame(struct wl1271 *wl, struct wl12xx_vif *wlvif, | |||
428 | } | 428 | } |
429 | hlid = wl12xx_tx_get_hlid(wl, wlvif, skb); | 429 | hlid = wl12xx_tx_get_hlid(wl, wlvif, skb); |
430 | if (hlid == WL12XX_INVALID_LINK_ID) { | 430 | if (hlid == WL12XX_INVALID_LINK_ID) { |
431 | wl1271_error("invalid hlid. dropping skb 0x%p", skb); | 431 | if (wlvif->bss_type == BSS_TYPE_IBSS && |
432 | !test_bit(WLVIF_FLAG_IBSS_JOINED, &wlvif->flags)) { | ||
433 | /* It's ok to drop packets when not joined to IBSS */ | ||
434 | wl1271_debug(DEBUG_TX, "dropping skb while IBSS not " | ||
435 | " joined"); | ||
436 | } else { | ||
437 | wl1271_error("invalid hlid. dropping skb 0x%p", skb); | ||
438 | } | ||
439 | |||
432 | return -EINVAL; | 440 | return -EINVAL; |
433 | } | 441 | } |
434 | 442 | ||