* pull request: iwlwifi 2015-01-13
@ 2015-01-13 12:17 Grumbach, Emmanuel
2015-01-13 12:19 ` [PATCH 1/3] iwlwifi: mvm: fix EBS on single scan Emmanuel Grumbach
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Grumbach, Emmanuel @ 2015-01-13 12:17 UTC (permalink / raw)
To: kvalo@adurom.com; +Cc: linux-wireless@vger.kernel.org
SGkgS2FsbGUsDQoNClRoaXMgaXMgYSBwdWxsIHJlcXVlc3QgZm9yIDMuMTkuIEFzIHVzdWFsLCB0
aGUgZGVzY3JpcHRpb24gaXMgaW4gdGhlIHRhZw0KaXRzZWxmLiBUaGlzIHRpbWUsIHdlIGFyZSBh
bHJlYWR5IGluIC1yYzQsIG5vIGdyYXkgYXJlYSBwYXRjaGVzLiBUaGVzZQ0KYXJlIGFsbCByZWFs
IGJ1ZyBmaXhlcy4NCkxldCBtZSBrbm93IGlmIHlvdSBoYXZlIGlzc3VlcyB3aXRoIHRoaXMuDQoN
CkJUVyAtIGlmIHlvdSB3aXNoLCBJIGNhbiBhZGQgdGhlIGRpZmYgaW4gdGhlIHB1bGwgcmVxdWVz
dCBmb3IgLXJjIGN5Y2xlLg0KSm9obiB1c2VkIHRvIGRvIHRoYXQuIExldCBtZSBrbm93IGlmIHlv
dSB3aXNoIG1lIHRvIGRvIHNvLg0KDQpUaGFua3MhDQoNClRoZSBmb2xsb3dpbmcgY2hhbmdlcyBz
aW5jZSBjb21taXQgOTFmNDkxZmQ3ZGZiYWU2ZTVjZTU4ODcyOTM3MjNkODE4YWRmN2Q1ZDoNCg0K
ICBpd2x3aWZpOiBidW1wIGZpcm13YXJlIEFQSSBmb3IgbXZtIGRldmljZXMgdG8gMTIgKDIwMTUt
MDEtMDUgMTE6MDI6MzcgKzAyMDApDQoNCmFyZSBhdmFpbGFibGUgaW4gdGhlIGdpdCByZXBvc2l0
b3J5IGF0Og0KDQogIGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwv
Z2l0L2l3bHdpZmkvaXdsd2lmaS1maXhlcy5naXQgdGFncy9pd2x3aWZpLWZvci1rYWxsZS0yMDE1
LTAxLTEzDQoNCmZvciB5b3UgdG8gZmV0Y2ggY2hhbmdlcyB1cCB0byA5YjNiNDNkOGQxMzAwYzM2
YmE1OTQ1YzEyZmQ1MDU0MDllYWY0ODA3Og0KDQogIGl3bHdpZmk6IG12bTogc2V0IHRoZSB0eCBj
bWQgdGlkIGZvciBCQVIgZnJhbWUgY29ycmVjdGx5ICgyMDE1LTAxLTEzIDA4OjUzOjIzICswMjAw
KQ0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQoqIEEgZml4IGZvciBzY2FuIHRoYXQgZml4ZXMgYSBmaXJtd2FyZSBhc3Nl
cnRpb24NCiogQSBmaXggdGhhdCBpbXByb3ZlcyByb2FtaW5nIGJlaGF2aW9yLiBTYW1lIGZpeCBo
YXMgYmVlbiB0ZXN0ZWQgZm9yDQogIGEgd2hpbGUgaW4gaXdsZHZtLiBUaGlzIGlzIGEgYml0IG9m
IGEgd29yayBhcm91bmQsIGJ1dCB0aGUgcmVhbCBmaXgNCiAgc2hvdWxkIGJlIGluIG1hYzgwMjEx
IGFuZCB3aWxsIGNvbWUgbGF0ZXIuDQoqIEEgZml4IGZvciBCQVJzIHRoYXQgYXZvaWRzIGEgV0FS
TklORy4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KRGF2aWQgU3BpbmFkZWwgKDEpOg0KICAgICAgaXdsd2lmaTogbXZt
OiBmaXggRUJTIG9uIHNpbmdsZSBzY2FuDQoNCkVtbWFudWVsIEdydW1iYWNoICgxKToNCiAgICAg
IGl3bHdpZmk6IG12bTogZHJvcCBub24gVk8gZnJhbWVzIHdoZW4gZmx1c2hpbmcNCg0KRXlhbCBT
aGFwaXJhICgxKToNCiAgICAgIGl3bHdpZmk6IG12bTogc2V0IHRoZSB0eCBjbWQgdGlkIGZvciBC
QVIgZnJhbWUgY29ycmVjdGx5DQoNCiBkcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC1m
dy1maWxlLmggICAgIHwgIDIgKysNCiBkcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL212bS9m
dy1hcGktc2Nhbi5oIHwgIDcgKysrKystLQ0KIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkv
bXZtL21hYzgwMjExLmMgICAgfCAyMCArKysrKysrKystLS0tLS0tLS0tLQ0KIGRyaXZlcnMvbmV0
L3dpcmVsZXNzL2l3bHdpZmkvbXZtL3NjYW4uYyAgICAgICAgfCA0NiArKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tDQogZHJpdmVycy9uZXQvd2lyZWxlc3MvaXds
d2lmaS9tdm0vdHguYyAgICAgICAgICB8IDExICsrKysrKysrKy0tDQogNSBmaWxlcyBjaGFuZ2Vk
LCA1OSBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkNCg0K
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/3] iwlwifi: mvm: fix EBS on single scan
2015-01-13 12:17 pull request: iwlwifi 2015-01-13 Grumbach, Emmanuel
@ 2015-01-13 12:19 ` Emmanuel Grumbach
2015-01-13 12:19 ` [PATCH 2/3] iwlwifi: mvm: drop non VO frames when flushing Emmanuel Grumbach
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Emmanuel Grumbach @ 2015-01-13 12:19 UTC (permalink / raw)
To: linux-wireless; +Cc: David Spinadel, Emmanuel Grumbach
From: David Spinadel <david.spinadel@intel.com>
EBS error detection isn't supported by all FWs, so turn it on
only if the FW advertises such support.
Signed-off-by: David Spinadel <david.spinadel@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-fw-file.h | 2 ++
drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h | 7 ++--
drivers/net/wireless/iwlwifi/mvm/scan.c | 46 +++++++++++++++++++-------
3 files changed, 41 insertions(+), 14 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-fw-file.h b/drivers/net/wireless/iwlwifi/iwl-fw-file.h
index 1bbe4fc..660ddb1 100644
--- a/drivers/net/wireless/iwlwifi/iwl-fw-file.h
+++ b/drivers/net/wireless/iwlwifi/iwl-fw-file.h
@@ -246,6 +246,7 @@ enum iwl_ucode_tlv_flag {
* @IWL_UCODE_TLV_API_BASIC_DWELL: use only basic dwell time in scan command,
* regardless of the band or the number of the probes. FW will calculate
* the actual dwell time.
+ * @IWL_UCODE_TLV_API_SINGLE_SCAN_EBS: EBS is supported for single scans too.
*/
enum iwl_ucode_tlv_api {
IWL_UCODE_TLV_API_WOWLAN_CONFIG_TID = BIT(0),
@@ -257,6 +258,7 @@ enum iwl_ucode_tlv_api {
IWL_UCODE_TLV_API_SF_NO_DUMMY_NOTIF = BIT(7),
IWL_UCODE_TLV_API_FRAGMENTED_SCAN = BIT(8),
IWL_UCODE_TLV_API_BASIC_DWELL = BIT(13),
+ IWL_UCODE_TLV_API_SINGLE_SCAN_EBS = BIT(16),
};
/**
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h b/drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h
index 201846d..cfc0e65 100644
--- a/drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h
+++ b/drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h
@@ -653,8 +653,11 @@ enum iwl_scan_channel_flags {
};
/* iwl_scan_channel_opt - CHANNEL_OPTIMIZATION_API_S
- * @flags: enum iwl_scan_channel_flgs
- * @non_ebs_ratio: how many regular scan iteration before EBS
+ * @flags: enum iwl_scan_channel_flags
+ * @non_ebs_ratio: defines the ratio of number of scan iterations where EBS is
+ * involved.
+ * 1 - EBS is disabled.
+ * 2 - every second scan will be full scan(and so on).
*/
struct iwl_scan_channel_opt {
__le16 flags;
diff --git a/drivers/net/wireless/iwlwifi/mvm/scan.c b/drivers/net/wireless/iwlwifi/mvm/scan.c
index ec9a8e7..3fbba4b 100644
--- a/drivers/net/wireless/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/iwlwifi/mvm/scan.c
@@ -72,6 +72,8 @@
#define IWL_PLCP_QUIET_THRESH 1
#define IWL_ACTIVE_QUIET_TIME 10
+#define IWL_DENSE_EBS_SCAN_RATIO 5
+#define IWL_SPARSE_EBS_SCAN_RATIO 1
struct iwl_mvm_scan_params {
u32 max_out_time;
@@ -1297,18 +1299,6 @@ iwl_mvm_build_generic_unified_scan_cmd(struct iwl_mvm *mvm,
cmd->scan_prio = cpu_to_le32(IWL_SCAN_PRIORITY_HIGH);
cmd->iter_num = cpu_to_le32(1);
- if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_EBS_SUPPORT &&
- mvm->last_ebs_successful) {
- cmd->channel_opt[0].flags =
- cpu_to_le16(IWL_SCAN_CHANNEL_FLAG_EBS |
- IWL_SCAN_CHANNEL_FLAG_EBS_ACCURATE |
- IWL_SCAN_CHANNEL_FLAG_CACHE_ADD);
- cmd->channel_opt[1].flags =
- cpu_to_le16(IWL_SCAN_CHANNEL_FLAG_EBS |
- IWL_SCAN_CHANNEL_FLAG_EBS_ACCURATE |
- IWL_SCAN_CHANNEL_FLAG_CACHE_ADD);
- }
-
if (iwl_mvm_rrm_scan_needed(mvm))
cmd->scan_flags |=
cpu_to_le32(IWL_MVM_LMAC_SCAN_FLAGS_RRM_ENABLED);
@@ -1383,6 +1373,22 @@ int iwl_mvm_unified_scan_lmac(struct iwl_mvm *mvm,
cmd->schedule[1].iterations = 0;
cmd->schedule[1].full_scan_mul = 0;
+ if (mvm->fw->ucode_capa.api[0] & IWL_UCODE_TLV_API_SINGLE_SCAN_EBS &&
+ mvm->last_ebs_successful) {
+ cmd->channel_opt[0].flags =
+ cpu_to_le16(IWL_SCAN_CHANNEL_FLAG_EBS |
+ IWL_SCAN_CHANNEL_FLAG_EBS_ACCURATE |
+ IWL_SCAN_CHANNEL_FLAG_CACHE_ADD);
+ cmd->channel_opt[0].non_ebs_ratio =
+ cpu_to_le16(IWL_DENSE_EBS_SCAN_RATIO);
+ cmd->channel_opt[1].flags =
+ cpu_to_le16(IWL_SCAN_CHANNEL_FLAG_EBS |
+ IWL_SCAN_CHANNEL_FLAG_EBS_ACCURATE |
+ IWL_SCAN_CHANNEL_FLAG_CACHE_ADD);
+ cmd->channel_opt[1].non_ebs_ratio =
+ cpu_to_le16(IWL_SPARSE_EBS_SCAN_RATIO);
+ }
+
for (i = 1; i <= req->req.n_ssids; i++)
ssid_bitmap |= BIT(i);
@@ -1483,6 +1489,22 @@ int iwl_mvm_unified_sched_scan_lmac(struct iwl_mvm *mvm,
cmd->schedule[1].iterations = 0xff;
cmd->schedule[1].full_scan_mul = IWL_FULL_SCAN_MULTIPLIER;
+ if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_EBS_SUPPORT &&
+ mvm->last_ebs_successful) {
+ cmd->channel_opt[0].flags =
+ cpu_to_le16(IWL_SCAN_CHANNEL_FLAG_EBS |
+ IWL_SCAN_CHANNEL_FLAG_EBS_ACCURATE |
+ IWL_SCAN_CHANNEL_FLAG_CACHE_ADD);
+ cmd->channel_opt[0].non_ebs_ratio =
+ cpu_to_le16(IWL_DENSE_EBS_SCAN_RATIO);
+ cmd->channel_opt[1].flags =
+ cpu_to_le16(IWL_SCAN_CHANNEL_FLAG_EBS |
+ IWL_SCAN_CHANNEL_FLAG_EBS_ACCURATE |
+ IWL_SCAN_CHANNEL_FLAG_CACHE_ADD);
+ cmd->channel_opt[1].non_ebs_ratio =
+ cpu_to_le16(IWL_SPARSE_EBS_SCAN_RATIO);
+ }
+
iwl_mvm_lmac_scan_cfg_channels(mvm, req->channels, req->n_channels,
ssid_bitmap, cmd);
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/3] iwlwifi: mvm: drop non VO frames when flushing
2015-01-13 12:17 pull request: iwlwifi 2015-01-13 Grumbach, Emmanuel
2015-01-13 12:19 ` [PATCH 1/3] iwlwifi: mvm: fix EBS on single scan Emmanuel Grumbach
@ 2015-01-13 12:19 ` Emmanuel Grumbach
2015-01-13 12:19 ` [PATCH 3/3] iwlwifi: mvm: set the tx cmd tid for BAR frame correctly Emmanuel Grumbach
2015-01-15 12:09 ` pull request: iwlwifi 2015-01-13 Kalle Valo
3 siblings, 0 replies; 5+ messages in thread
From: Emmanuel Grumbach @ 2015-01-13 12:19 UTC (permalink / raw)
To: linux-wireless; +Cc: Emmanuel Grumbach, stable
This change has already been implemented in iwldvm:
commit a260e7b3f0307878b99d57ed1406cf2d497923b8
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date: Sun Oct 5 09:11:14 2014 +0300
iwlwifi: dvm: drop non VO frames when flushing
Since I added the flush() callback implementation in mvm,
we got reports that the queues are stuck while roaming
or suspending.
This commit above helped much for iwldvm, implement the
same behavior for iwlmvm.
CC: <stable@vger.kernel.org> [3.16+]
Fixes: c5b0e7c0565a ("iwlwifi: mvm: implement mac80211's flush callback")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
---
drivers/net/wireless/iwlwifi/mvm/mac80211.c | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
index e880f9d..2091558 100644
--- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
@@ -3343,18 +3343,16 @@ static void iwl_mvm_mac_flush(struct ieee80211_hw *hw,
msk |= mvmsta->tfd_queue_msk;
}
- if (drop) {
- if (iwl_mvm_flush_tx_path(mvm, msk, true))
- IWL_ERR(mvm, "flush request fail\n");
- mutex_unlock(&mvm->mutex);
- } else {
- mutex_unlock(&mvm->mutex);
+ msk &= ~BIT(vif->hw_queue[IEEE80211_AC_VO]);
- /* this can take a while, and we may need/want other operations
- * to succeed while doing this, so do it without the mutex held
- */
- iwl_trans_wait_tx_queue_empty(mvm->trans, msk);
- }
+ if (iwl_mvm_flush_tx_path(mvm, msk, true))
+ IWL_ERR(mvm, "flush request fail\n");
+ mutex_unlock(&mvm->mutex);
+
+ /* this can take a while, and we may need/want other operations
+ * to succeed while doing this, so do it without the mutex held
+ */
+ iwl_trans_wait_tx_queue_empty(mvm->trans, msk);
}
const struct ieee80211_ops iwl_mvm_hw_ops = {
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] iwlwifi: mvm: set the tx cmd tid for BAR frame correctly
2015-01-13 12:17 pull request: iwlwifi 2015-01-13 Grumbach, Emmanuel
2015-01-13 12:19 ` [PATCH 1/3] iwlwifi: mvm: fix EBS on single scan Emmanuel Grumbach
2015-01-13 12:19 ` [PATCH 2/3] iwlwifi: mvm: drop non VO frames when flushing Emmanuel Grumbach
@ 2015-01-13 12:19 ` Emmanuel Grumbach
2015-01-15 12:09 ` pull request: iwlwifi 2015-01-13 Kalle Valo
3 siblings, 0 replies; 5+ messages in thread
From: Emmanuel Grumbach @ 2015-01-13 12:19 UTC (permalink / raw)
To: linux-wireless; +Cc: Eyal Shapira, Eyal Shapira, Emmanuel Grumbach
From: Eyal Shapira <eyal@wizery.com>
BAR tx cmd tid was set to non qos (8). This is wrong as BAR
should be sent with the tid of the BA session.
This led to a corruption in the firmware. The visible
effect of this from the driver side is the BA notification
that comes back after the BAR. It was botched and led to the
WARNING below.
------------[ cut here ]------------
WARNING: CPU: 2 PID: 17707 at /home/tester/workspace_hostap/iwlwifi/drivers/net/wireless/iwlwifi/mvm/tx.c:976 iwl_mvm_rx_ba_notif+0x4ba/0x4d0 [iwlmvm]()
Q 4500, tid 8, flow 65535
Modules linked in: iwlmvm(O) mac80211(O) iwlwifi(O) cfg80211(O) compat(O) netconsole configfs ctr ccm arc4 autofs4 microcode bnep rfcomm snd_hda_codec_hdmi snd_hda_codec_idt snd_hda_codec_generic snd_hda_intel joydev snd_hda_codec uvcvideo videobuf2_core snd_hwdep videodev snd_pcm videobuf2_vmalloc videobuf2_memops i915 snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer snd_seq_device drm_kms_helper dell_wmi dell_laptop drm btusb bluetooth snd psmouse i2c_algo_bit sparse_keymap wmi soundcore 6lowpan_iphc dcdbas serio_raw video lpc_ich ppdev mac_hid parport_pc nfsd nfs_acl auth_rpcgss nfs fscache binfmt_misc lockd sunrpc lp parport msdos sdhci_pci sdhci mmc_core ahci libahci e1000e ptp pps_core [last unloaded: compat]
CPU: 2 PID: 17707 Comm: irq/46-iwlwifi Tainted: G W O 3.14.17-patched #4
Hardware name: Dell Inc. Latitude E6430/0CPWYR, BIOS A09 12/13/2012
00000000 00000000 ebd49d6c c1616221 f985dbdc ebd49d9c c1044e44 f9861df4
ebd49dc8 0000452b f985dbdc 000003d0 f98395da f98395da ebd49f10 eaf3d8a4
0000ffff ebd49db4 c1044f03 00000009 ebd49dac f9861df4 ebd49dc8 ebd49e64
Call Trace:
[<c1616221>] dump_stack+0x41/0x52
[<c1044e44>] warn_slowpath_common+0x84/0xa0
[<f98395da>] ? iwl_mvm_rx_ba_notif+0x4ba/0x4d0 [iwlmvm]
[<f98395da>] ? iwl_mvm_rx_ba_notif+0x4ba/0x4d0 [iwlmvm]
[<c1044f03>] warn_slowpath_fmt+0x33/0x40
[<f98395da>] iwl_mvm_rx_ba_notif+0x4ba/0x4d0 [iwlmvm]
[<c10e3952>] ? ring_buffer_unlock_commit+0xa2/0xd0
[<c10e9767>] ? trace_buffer_unlock_commit+0x37/0x50
[<f98568a3>] ? iwl_tm_mvm_send_rx+0x53/0x90 [iwlmvm]
[<f98327a8>] iwl_mvm_rx_dispatch+0x108/0x130 [iwlmvm]
[<f9eac7e7>] iwl_pcie_irq_handler+0xf17/0x15b0 [iwlwifi]
[<c10994c1>] irq_thread_fn+0x21/0x50
[<c109926c>] irq_thread+0xec/0x110
[<c10994a0>] ? irq_thread_dtor+0xb0/0xb0
[<c10993f0>] ? irq_finalize_oneshot.part.34+0xc0/0xc0
[<c1099180>] ? wake_threads_waitq+0x40/0x40
[<c1062fdb>] kthread+0x9b/0xb0
[<c1627137>] ret_from_kernel_thread+0x1b/0x28
[<c1062f40>] ? flush_kthread_worker+0x90/0x90
---[ end trace 5e0f67374816db17 ]---
Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
---
drivers/net/wireless/iwlwifi/mvm/tx.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/mvm/tx.c b/drivers/net/wireless/iwlwifi/mvm/tx.c
index 4333306..c59d075 100644
--- a/drivers/net/wireless/iwlwifi/mvm/tx.c
+++ b/drivers/net/wireless/iwlwifi/mvm/tx.c
@@ -90,8 +90,6 @@ void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm, struct sk_buff *skb,
if (ieee80211_is_probe_resp(fc))
tx_flags |= TX_CMD_FLG_TSF;
- else if (ieee80211_is_back_req(fc))
- tx_flags |= TX_CMD_FLG_ACK | TX_CMD_FLG_BAR;
if (ieee80211_has_morefrags(fc))
tx_flags |= TX_CMD_FLG_MORE_FRAG;
@@ -100,6 +98,15 @@ void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm, struct sk_buff *skb,
u8 *qc = ieee80211_get_qos_ctl(hdr);
tx_cmd->tid_tspec = qc[0] & 0xf;
tx_flags &= ~TX_CMD_FLG_SEQ_CTL;
+ } else if (ieee80211_is_back_req(fc)) {
+ struct ieee80211_bar *bar = (void *)skb->data;
+ u16 control = le16_to_cpu(bar->control);
+
+ tx_flags |= TX_CMD_FLG_ACK | TX_CMD_FLG_BAR;
+ tx_cmd->tid_tspec = (control &
+ IEEE80211_BAR_CTRL_TID_INFO_MASK) >>
+ IEEE80211_BAR_CTRL_TID_INFO_SHIFT;
+ WARN_ON_ONCE(tx_cmd->tid_tspec >= IWL_MAX_TID_COUNT);
} else {
tx_cmd->tid_tspec = IWL_TID_NON_QOS;
if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ)
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: pull request: iwlwifi 2015-01-13
2015-01-13 12:17 pull request: iwlwifi 2015-01-13 Grumbach, Emmanuel
` (2 preceding siblings ...)
2015-01-13 12:19 ` [PATCH 3/3] iwlwifi: mvm: set the tx cmd tid for BAR frame correctly Emmanuel Grumbach
@ 2015-01-15 12:09 ` Kalle Valo
3 siblings, 0 replies; 5+ messages in thread
From: Kalle Valo @ 2015-01-15 12:09 UTC (permalink / raw)
To: Grumbach, Emmanuel; +Cc: linux-wireless@vger.kernel.org
"Grumbach, Emmanuel" <emmanuel.grumbach@intel.com> writes:
> This is a pull request for 3.19. As usual, the description is in the
> tag itself. This time, we are already in -rc4, no gray area patches.
> These are all real bug fixes. Let me know if you have issues with
> this.
Thanks, pulled.
> BTW - if you wish, I can add the diff in the pull request for -rc cycle.
> John used to do that. Let me know if you wish me to do so.
There's no need, at least for now.
--
Kalle Valo
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-01-15 12:09 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-13 12:17 pull request: iwlwifi 2015-01-13 Grumbach, Emmanuel
2015-01-13 12:19 ` [PATCH 1/3] iwlwifi: mvm: fix EBS on single scan Emmanuel Grumbach
2015-01-13 12:19 ` [PATCH 2/3] iwlwifi: mvm: drop non VO frames when flushing Emmanuel Grumbach
2015-01-13 12:19 ` [PATCH 3/3] iwlwifi: mvm: set the tx cmd tid for BAR frame correctly Emmanuel Grumbach
2015-01-15 12:09 ` pull request: iwlwifi 2015-01-13 Kalle Valo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox