aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/wl12xx/tx.c10
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