Skip to contentSkip to conversation

pull request: iwlwifi 2014-07-05

PATCH New Emmanuel Grumbach 2 participants 5 messages Jul 5, 2014 – Jul 7, 2014 Networking drivers (wireless)

lore
Share & tools
lore
#0 lore raw

Hi John,

This pull request is intended for 3.a16.

I have here 2 patches that disable the usage of CTS to self. This keeps making trouble to the firmware and is not a really reliable protection anyway. We may re-enable it in the future, but in rarer cases. Along with this, I have a fix from Ilan that prevents a firmware assertion.

Please pull.

The following changes since commit a42c9fcc4a88cdd246fab3bcf06c4487afee3d88:

Revert "iwlwifi: remove IWL_UCODE_TLV_FLAGS_UAPSD_SUPPORT flag" (2014-06-24 22:01:46 +0300)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes.git for-john

for you to fetch changes up to dc271ee0d04d12d6bfabacbec803289a7072fbd9:

iwlwifi: mvm: disable CTS to Self (2014-07-03 20:55:18 +0300)

----------------------------------------------------------------
Emmanuel Grumbach (2):
iwlwifi: dvm: don't enable CTS to self
iwlwifi: mvm: disable CTS to Self

Ilan Peer (1):
iwlwifi: mvm: Fix broadcast filtering

 drivers/net/wireless/iwlwifi/dvm/rxon.c     | 12 ------------
 drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c |  5 ++---
 drivers/net/wireless/iwlwifi/mvm/mac80211.c | 12 ++++++------
 3 files changed, 8 insertions(+), 21 deletions(-)
#1 lore raw

PATCH 1/3 iwlwifi: mvm: Fix broadcast filtering

From: Ilan Peer <[email protected]>

Current code did not allow sending the broadcast filtering command for P2P Client interfaces. However, this was not enough, since once broadcast filtering command was issued over the station interface after the P2P Client connected, the command also attached the filters to the P2P Client MAC which is not allowed (FW ASSERT 1063).

Fix this skipping P2P Client interfaces when constructing the broadcast filtering command

---
 drivers/net/wireless/iwlwifi/mvm/mac80211.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
drivers/net/wireless/iwlwifi/mvm/mac80211.c +6 -6
index 1cef708..9bfb906 100644
@@ -1166,8 +1166,12 @@ static void iwl_mvm_bcast_filter_iterator(void *_data, u8 *mac,
 
 	bcast_mac = &cmd->macs[mvmvif->id];
 
-	/* enable filtering only for associated stations */
-	if (vif->type != NL80211_IFTYPE_STATION || !vif->bss_conf.assoc)
+	/*
+	 * enable filtering only for associated stations, but not for P2P
+	 * Clients
+	 */
+	if (vif->type != NL80211_IFTYPE_STATION || vif->p2p ||
+	    !vif->bss_conf.assoc)
 		return;
 
 	bcast_mac->default_discard = 1;
@@ -1244,10 +1248,6 @@ static int iwl_mvm_configure_bcast_filter(struct iwl_mvm *mvm,
 	if (!(mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_BCAST_FILTERING))
 		return 0;
 
-	/* bcast filtering isn't supported for P2P client */
-	if (vif->p2p)
-		return 0;
-
 	if (!iwl_mvm_bcast_filter_build_cmd(mvm, &cmd))
 		return 0;
 
Signature · 1 line
1.8.3.2
#2 lore raw

PATCH 2/3 iwlwifi: dvm: don't enable CTS to self

In reply to Emmanuel Grumbach

From: Emmanuel Grumbach <[email protected]>

We should always prefer to use full RTS protection. Using CTS to self gives a meaningless improvement, but this flow is much harder for the firmware which is likely to have issues with it.

---
 drivers/net/wireless/iwlwifi/dvm/rxon.c | 12 ------------
 1 file changed, 12 deletions(-)
drivers/net/wireless/iwlwifi/dvm/rxon.c +0 -12
index ed50de6..6dc5dd3 100644
@@ -1068,13 +1068,6 @@ int iwlagn_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
 	/* recalculate basic rates */
 	iwl_calc_basic_rates(priv, ctx);
 
-	/*
-	 * force CTS-to-self frames protection if RTS-CTS is not preferred
-	 * one aggregation protection method
-	 */
-	if (!priv->hw_params.use_rts_for_aggregation)
-		ctx->staging.flags |= RXON_FLG_SELF_CTS_EN;
-
 	if ((ctx->vif && ctx->vif->bss_conf.use_short_slot) ||
 	    !(ctx->staging.flags & RXON_FLG_BAND_24G_MSK))
 		ctx->staging.flags |= RXON_FLG_SHORT_SLOT_MSK;
@@ -1480,11 +1473,6 @@ void iwlagn_bss_info_changed(struct ieee80211_hw *hw,
 	else
 		ctx->staging.flags &= ~RXON_FLG_TGG_PROTECT_MSK;
 
-	if (bss_conf->use_cts_prot)
-		ctx->staging.flags |= RXON_FLG_SELF_CTS_EN;
-	else
-		ctx->staging.flags &= ~RXON_FLG_SELF_CTS_EN;
-
 	memcpy(ctx->staging.bssid_addr, bss_conf->bssid, ETH_ALEN);
 
 	if (vif->type == NL80211_IFTYPE_AP ||
Signature · 1 line
1.8.3.2
#3 lore raw

PATCH 3/3 iwlwifi: mvm: disable CTS to Self

In reply to Emmanuel Grumbach

From: Emmanuel Grumbach <[email protected]>

Firmware folks seem say that this flag can make trouble. Drop it. The advantage of CTS to self is that it slightly reduces the cost of the protection, but make the protection less reliable.

---
 drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c +2 -3
index 8b53027..725ba49 100644
@@ -667,10 +667,9 @@ static void iwl_mvm_mac_ctxt_cmd_common(struct iwl_mvm *mvm,
 	if (vif->bss_conf.qos)
 		cmd->qos_flags |= cpu_to_le32(MAC_QOS_FLG_UPDATE_EDCA);
 
-	if (vif->bss_conf.use_cts_prot) {
+	if (vif->bss_conf.use_cts_prot)
 		cmd->protection_flags |= cpu_to_le32(MAC_PROT_FLG_TGG_PROTECT);
-		cmd->protection_flags |= cpu_to_le32(MAC_PROT_FLG_SELF_CTS_EN);
-	}
+
 	IWL_DEBUG_RATE(mvm, "use_cts_prot %d, ht_operation_mode %d\n",
 		       vif->bss_conf.use_cts_prot,
 		       vif->bss_conf.ht_operation_mode);
Signature · 1 line
1.8.3.2
#4 lore raw
In reply to Emmanuel Grumbach
Quoted 12 lines · Emmanuel Grumbach

Hi John,

This pull request is intended for 3.a16.

I have here 2 patches that disable the usage of CTS to self. This keeps making trouble to the firmware and is not a really reliable protection anyway. We may re-enable it in the future, but in rarer cases. Along with this, I have a fix from Ilan that prevents a firmware assertion.

Please pull.

The following changes since commit a42c9fcc4a88cdd246fab3bcf06c4487afee3d88:

Revert "iwlwifi: remove IWL_UCODE_TLV_FLAGS_UAPSD_SUPPORT flag" (2014-06-24 22:01:46 +0300)

Quoted 7 lines

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes.git for-john

for you to fetch changes up to dc271ee0d04d12d6bfabacbec803289a7072fbd9:

iwlwifi: mvm: disable CTS to Self (2014-07-03 20:55:18 +0300)

Pulling now...

Signature · 2 lines
John W. Linville		Someday the world will need a hero, and you
[email protected]			might be all we have.  Be ready.