|
@@ -789,11 +789,6 @@ int iwl_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
|
|
|
goto drop_unlock;
|
|
|
}
|
|
|
|
|
|
- if (!priv->vif) {
|
|
|
- IWL_DEBUG_DROP("Dropping - !priv->vif\n");
|
|
|
- goto drop_unlock;
|
|
|
- }
|
|
|
-
|
|
|
if ((ieee80211_get_tx_rate(priv->hw, info)->hw_value & 0xFF) ==
|
|
|
IWL_INVALID_RATE) {
|
|
|
IWL_ERROR("ERROR: No TX rate available.\n");
|
|
@@ -815,9 +810,11 @@ int iwl_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
|
|
|
|
|
|
/* drop all data frame if we are not associated */
|
|
|
if (ieee80211_is_data(fc) &&
|
|
|
- (!iwl_is_associated(priv) ||
|
|
|
- ((priv->iw_mode == IEEE80211_IF_TYPE_STA) && !priv->assoc_id) ||
|
|
|
- !priv->assoc_station_added)) {
|
|
|
+ (priv->iw_mode != IEEE80211_IF_TYPE_MNTR ||
|
|
|
+ !(info->flags & IEEE80211_TX_CTL_INJECTED)) && /* packet injection */
|
|
|
+ (!iwl_is_associated(priv) ||
|
|
|
+ ((priv->iw_mode == IEEE80211_IF_TYPE_STA) && !priv->assoc_id) ||
|
|
|
+ !priv->assoc_station_added)) {
|
|
|
IWL_DEBUG_DROP("Dropping - !iwl_is_associated\n");
|
|
|
goto drop_unlock;
|
|
|
}
|