diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/dvm/mac80211.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/dvm/mac80211.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/dvm/mac80211.c b/drivers/net/wireless/iwlwifi/dvm/mac80211.c index a275eb902b7..c862c090634 100644 --- a/drivers/net/wireless/iwlwifi/dvm/mac80211.c +++ b/drivers/net/wireless/iwlwifi/dvm/mac80211.c | |||
@@ -524,7 +524,7 @@ static void iwlagn_mac_tx(struct ieee80211_hw *hw, | |||
524 | ieee80211_get_tx_rate(hw, IEEE80211_SKB_CB(skb))->bitrate); | 524 | ieee80211_get_tx_rate(hw, IEEE80211_SKB_CB(skb))->bitrate); |
525 | 525 | ||
526 | if (iwlagn_tx_skb(priv, control->sta, skb)) | 526 | if (iwlagn_tx_skb(priv, control->sta, skb)) |
527 | dev_kfree_skb_any(skb); | 527 | ieee80211_free_txskb(hw, skb); |
528 | } | 528 | } |
529 | 529 | ||
530 | static void iwlagn_mac_update_tkip_key(struct ieee80211_hw *hw, | 530 | static void iwlagn_mac_update_tkip_key(struct ieee80211_hw *hw, |
@@ -1357,6 +1357,20 @@ static int iwlagn_mac_add_interface(struct ieee80211_hw *hw, | |||
1357 | vif_priv->ctx = ctx; | 1357 | vif_priv->ctx = ctx; |
1358 | ctx->vif = vif; | 1358 | ctx->vif = vif; |
1359 | 1359 | ||
1360 | /* | ||
1361 | * In SNIFFER device type, the firmware reports the FCS to | ||
1362 | * the host, rather than snipping it off. Unfortunately, | ||
1363 | * mac80211 doesn't (yet) provide a per-packet flag for | ||
1364 | * this, so that we have to set the hardware flag based | ||
1365 | * on the interfaces added. As the monitor interface can | ||
1366 | * only be present by itself, and will be removed before | ||
1367 | * other interfaces are added, this is safe. | ||
1368 | */ | ||
1369 | if (vif->type == NL80211_IFTYPE_MONITOR) | ||
1370 | priv->hw->flags |= IEEE80211_HW_RX_INCLUDES_FCS; | ||
1371 | else | ||
1372 | priv->hw->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS; | ||
1373 | |||
1360 | err = iwl_setup_interface(priv, ctx); | 1374 | err = iwl_setup_interface(priv, ctx); |
1361 | if (!err || reset) | 1375 | if (!err || reset) |
1362 | goto out; | 1376 | goto out; |