All of lore.kernel.org
 help / color / mirror / Atom feed
* pull request: iwlwifi 2013-03-12
@ 2015-03-12  7:48 Grumbach, Emmanuel
  2015-03-12  7:49 ` [PATCH 1/2] iwlwifi: dvm: drop VO packets when mac80211 tells us to Emmanuel Grumbach
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Grumbach, Emmanuel @ 2015-03-12  7:48 UTC (permalink / raw)
  To: kvalo; +Cc: linux-wireless

SGkgS2FsbGUsDQoNCjIgbW9yZSBmaXhlcyBmb3IgNC4wLiBEZXRhaWxzIGluIHRoZSB0YWcuDQpQ
bGVhc2UgcHVsbCAtIHRoYW5rcyENCg0KVGhlIGZvbGxvd2luZyBjaGFuZ2VzIHNpbmNlIGNvbW1p
dCA0Y2Q0YjUwY2MyNDI5Mjk0YzIzYTE5OThjMzNmZGZkODA0ZGIwZjM3Og0KDQogIGl3bHdpZmk6
IG12bTogQlQgQ29leCAtIGZpeCBhIE5VTEwgcG9pbnRlciBleGNlcHRpb24gKDIwMTUtMDMtMDUg
MTQ6MTM6MjAgKzAyMDApDQoNCmFyZSBhdmFpbGFibGUgaW4gdGhlIGdpdCByZXBvc2l0b3J5IGF0
Og0KDQogIGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2l3
bHdpZmkvaXdsd2lmaS1maXhlcy5naXQgdGFncy9pd2x3aWZpLWZvci1rYWxsZS0yMDEzLTAzLTEy
DQoNCmZvciB5b3UgdG8gZmV0Y2ggY2hhbmdlcyB1cCB0byAwNjBiNDQ2MGM0NzE0MzQ0MGU3N2U2
NzIxZjY4ZWY3NTY2NzRkMjA3Og0KDQogIGl3bHdpZmk6IG12bTogZGlzY29ubmVjdCBpZiBDU0Eg
dGltZSBldmVudCBmYWlscyBzY2hlZHVsaW5nICgyMDE1LTAzLTEyIDA5OjA1OjQ5ICswMjAwKQ0K
DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tDQoqIGRyb3AgcGVuZGluZyBWTyBwYWNrZXRzIGJlZm9yZSBkaXNjb25uZWN0aW9u
DQoqIGRpc2Nvbm5lY3Qgd2hlbiBjaGFubmVsIHN3aXRjaCBmYWlscyBiZWZvcmUgb2YgdGltZSBl
dmVudHMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KRW1tYW51ZWwgR3J1bWJhY2ggKDEpOg0KICAgICAgaXdsd2lmaTog
ZHZtOiBkcm9wIFZPIHBhY2tldHMgd2hlbiBtYWM4MDIxMSB0ZWxscyB1cyB0bw0KDQpKb2hhbm5l
cyBCZXJnICgxKToNCiAgICAgIGl3bHdpZmk6IG12bTogZGlzY29ubmVjdCBpZiBDU0EgdGltZSBl
dmVudCBmYWlscyBzY2hlZHVsaW5nDQoNCiBkcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2R2
bS9tYWM4MDIxMS5jICAgfCAxNyArKysrKysrKystLS0tLS0tLQ0KIGRyaXZlcnMvbmV0L3dpcmVs
ZXNzL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuYyB8ICAyICsrDQogMiBmaWxlcyBjaGFuZ2VkLCAx
MSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQ0KDQo=

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] iwlwifi: dvm: drop VO packets when mac80211 tells us to
  2015-03-12  7:48 pull request: iwlwifi 2013-03-12 Grumbach, Emmanuel
@ 2015-03-12  7:49 ` Emmanuel Grumbach
  2015-03-12  7:49 ` [PATCH 2/2] iwlwifi: mvm: disconnect if CSA time event fails scheduling Emmanuel Grumbach
  2015-03-12 12:10 ` pull request: iwlwifi 2013-03-12 Kalle Valo
  2 siblings, 0 replies; 4+ messages in thread
From: Emmanuel Grumbach @ 2015-03-12  7:49 UTC (permalink / raw)
  To: linux-wireless; +Cc: Emmanuel Grumbach

mac80211 now informs the driver when to drop the packets
upon flush(). This will happen before disconnecting, or
before we shut down the interface. We can now rely on this
to drop all the packets including the VO queues.
When mac80211 sets drop to false, wait for all the queues
to be empty.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
---
 drivers/net/wireless/iwlwifi/dvm/mac80211.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/dvm/mac80211.c b/drivers/net/wireless/iwlwifi/dvm/mac80211.c
index 47e64e8..cceb026 100644
--- a/drivers/net/wireless/iwlwifi/dvm/mac80211.c
+++ b/drivers/net/wireless/iwlwifi/dvm/mac80211.c
@@ -1114,16 +1114,17 @@ static void iwlagn_mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 	scd_queues &= ~(BIT(IWL_IPAN_CMD_QUEUE_NUM) |
 			BIT(IWL_DEFAULT_CMD_QUEUE_NUM));
 
-	if (vif)
-		scd_queues &= ~BIT(vif->hw_queue[IEEE80211_AC_VO]);
-
-	IWL_DEBUG_TX_QUEUES(priv, "Flushing SCD queues: 0x%x\n", scd_queues);
-	if (iwlagn_txfifo_flush(priv, scd_queues)) {
-		IWL_ERR(priv, "flush request fail\n");
-		goto done;
+	if (drop) {
+		IWL_DEBUG_TX_QUEUES(priv, "Flushing SCD queues: 0x%x\n",
+				    scd_queues);
+		if (iwlagn_txfifo_flush(priv, scd_queues)) {
+			IWL_ERR(priv, "flush request fail\n");
+			goto done;
+		}
 	}
+
 	IWL_DEBUG_TX_QUEUES(priv, "wait transmit/flush all frames\n");
-	iwl_trans_wait_tx_queue_empty(priv->trans, 0xffffffff);
+	iwl_trans_wait_tx_queue_empty(priv->trans, scd_queues);
 done:
 	mutex_unlock(&priv->mutex);
 	IWL_DEBUG_MAC80211(priv, "leave\n");
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] iwlwifi: mvm: disconnect if CSA time event fails scheduling
  2015-03-12  7:48 pull request: iwlwifi 2013-03-12 Grumbach, Emmanuel
  2015-03-12  7:49 ` [PATCH 1/2] iwlwifi: dvm: drop VO packets when mac80211 tells us to Emmanuel Grumbach
@ 2015-03-12  7:49 ` Emmanuel Grumbach
  2015-03-12 12:10 ` pull request: iwlwifi 2013-03-12 Kalle Valo
  2 siblings, 0 replies; 4+ messages in thread
From: Emmanuel Grumbach @ 2015-03-12  7:49 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg, Emmanuel Grumbach

From: Johannes Berg <johannes.berg@intel.com>

If this situation ever happens, the mac80211 state machine gets
confused because it never clears csa_active. There was a separate
bug that lead to this happening with a working connection, but it
isn't very robust to try to keep the connection up in this case.

When removing the time event the CSA essentially procedure stops,
so the safest thing to do is to disconnect in this case.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
---
 drivers/net/wireless/iwlwifi/mvm/time-event.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/wireless/iwlwifi/mvm/time-event.c b/drivers/net/wireless/iwlwifi/mvm/time-event.c
index f8d6f30..4b81c0b 100644
--- a/drivers/net/wireless/iwlwifi/mvm/time-event.c
+++ b/drivers/net/wireless/iwlwifi/mvm/time-event.c
@@ -197,6 +197,8 @@ iwl_mvm_te_handle_notify_csa(struct iwl_mvm *mvm,
 			     struct iwl_time_event_notif *notif)
 {
 	if (!le32_to_cpu(notif->status)) {
+		if (te_data->vif->type == NL80211_IFTYPE_STATION)
+			ieee80211_connection_loss(te_data->vif);
 		IWL_DEBUG_TE(mvm, "CSA time event failed to start\n");
 		iwl_mvm_te_clear_data(mvm, te_data);
 		return;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: pull request: iwlwifi 2013-03-12
  2015-03-12  7:48 pull request: iwlwifi 2013-03-12 Grumbach, Emmanuel
  2015-03-12  7:49 ` [PATCH 1/2] iwlwifi: dvm: drop VO packets when mac80211 tells us to Emmanuel Grumbach
  2015-03-12  7:49 ` [PATCH 2/2] iwlwifi: mvm: disconnect if CSA time event fails scheduling Emmanuel Grumbach
@ 2015-03-12 12:10 ` Kalle Valo
  2 siblings, 0 replies; 4+ messages in thread
From: Kalle Valo @ 2015-03-12 12:10 UTC (permalink / raw)
  To: Grumbach, Emmanuel; +Cc: linux-wireless

"Grumbach, Emmanuel" <emmanuel.grumbach@intel.com> writes:

> Hi Kalle,
>
> 2 more fixes for 4.0. Details in the tag.
> Please pull - thanks!
>
> The following changes since commit 4cd4b50cc2429294c23a1998c33fdfd804db0f37:
>
>   iwlwifi: mvm: BT Coex - fix a NULL pointer exception (2015-03-05 14:13:20 +0200)
>
> are available in the git repository at:
>
>   https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes.git tags/iwlwifi-for-kalle-2013-03-12

Thanks, pulled.

-- 
Kalle Valo

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-03-12 12:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-12  7:48 pull request: iwlwifi 2013-03-12 Grumbach, Emmanuel
2015-03-12  7:49 ` [PATCH 1/2] iwlwifi: dvm: drop VO packets when mac80211 tells us to Emmanuel Grumbach
2015-03-12  7:49 ` [PATCH 2/2] iwlwifi: mvm: disconnect if CSA time event fails scheduling Emmanuel Grumbach
2015-03-12 12:10 ` pull request: iwlwifi 2013-03-12 Kalle Valo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.