aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ipw2200.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index 081957ab1194..c1ae6d4065e0 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -7456,7 +7456,8 @@ static void ipw_handle_data_packet(struct ipw_priv *priv,
7456 /* HW decrypt will not clear the WEP bit, MIC, PN, etc. */ 7456 /* HW decrypt will not clear the WEP bit, MIC, PN, etc. */
7457 hdr = (struct ieee80211_hdr_4addr *)rxb->skb->data; 7457 hdr = (struct ieee80211_hdr_4addr *)rxb->skb->data;
7458 if (priv->ieee->iw_mode != IW_MODE_MONITOR && 7458 if (priv->ieee->iw_mode != IW_MODE_MONITOR &&
7459 (is_multicast_ether_addr(hdr->addr1) ? 7459 ((is_multicast_ether_addr(hdr->addr1) ||
7460 is_broadcast_ether_addr(hdr->addr1)) ?
7460 !priv->ieee->host_mc_decrypt : !priv->ieee->host_decrypt)) 7461 !priv->ieee->host_mc_decrypt : !priv->ieee->host_decrypt))
7461 ipw_rebuild_decrypted_skb(priv, rxb->skb); 7462 ipw_rebuild_decrypted_skb(priv, rxb->skb);
7462 7463
@@ -9652,7 +9653,8 @@ static inline int ipw_tx_skb(struct ipw_priv *priv, struct ieee80211_txb *txb,
9652 switch (priv->ieee->iw_mode) { 9653 switch (priv->ieee->iw_mode) {
9653 case IW_MODE_ADHOC: 9654 case IW_MODE_ADHOC:
9654 hdr_len = IEEE80211_3ADDR_LEN; 9655 hdr_len = IEEE80211_3ADDR_LEN;
9655 unicast = !is_multicast_ether_addr(hdr->addr1); 9656 unicast = !(is_multicast_ether_addr(hdr->addr1) ||
9657 is_broadcast_ether_addr(hdr->addr1));
9656 id = ipw_find_station(priv, hdr->addr1); 9658 id = ipw_find_station(priv, hdr->addr1);
9657 if (id == IPW_INVALID_STATION) { 9659 if (id == IPW_INVALID_STATION) {
9658 id = ipw_add_station(priv, hdr->addr1); 9660 id = ipw_add_station(priv, hdr->addr1);
@@ -9667,7 +9669,8 @@ static inline int ipw_tx_skb(struct ipw_priv *priv, struct ieee80211_txb *txb,
9667 9669
9668 case IW_MODE_INFRA: 9670 case IW_MODE_INFRA:
9669 default: 9671 default:
9670 unicast = !is_multicast_ether_addr(hdr->addr3); 9672 unicast = !(is_multicast_ether_addr(hdr->addr3) ||
9673 is_broadcast_ether_addr(hdr->addr3));
9671 hdr_len = IEEE80211_3ADDR_LEN; 9674 hdr_len = IEEE80211_3ADDR_LEN;
9672 id = 0; 9675 id = 0;
9673 break; 9676 break;