summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-07-19 13:06:06 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-07-19 13:06:06 -0400
commit5f4fc6d440d77a2cf74fe4ea56955674ac7e35e7 (patch)
tree87dedefb73acda80d945a84603c687002c0ce1d5 /drivers/net/wireless
parent249be8511b269495bc95cb8bdfdd5840b2ba73c0 (diff)
parent8d650cdedaabb33e85e9b7c517c0c71fcecc1de9 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: 1) Fix AF_XDP cq entry leak, from Ilya Maximets. 2) Fix handling of PHY power-down on RTL8411B, from Heiner Kallweit. 3) Add some new PCI IDs to iwlwifi, from Ihab Zhaika. 4) Fix handling of neigh timers wrt. entries added by userspace, from Lorenzo Bianconi. 5) Various cases of missing of_node_put(), from Nishka Dasgupta. 6) The new NET_ACT_CT needs to depend upon NF_NAT, from Yue Haibing. 7) Various RDS layer fixes, from Gerd Rausch. 8) Fix some more fallout from TCQ_F_CAN_BYPASS generalization, from Cong Wang. 9) Fix FIB source validation checks over loopback, also from Cong Wang. 10) Use promisc for unsupported number of filters, from Justin Chen. 11) Missing sibling route unlink on failure in ipv6, from Ido Schimmel. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (90 commits) tcp: fix tcp_set_congestion_control() use from bpf hook ag71xx: fix return value check in ag71xx_probe() ag71xx: fix error return code in ag71xx_probe() usb: qmi_wwan: add D-Link DWM-222 A2 device ID bnxt_en: Fix VNIC accounting when enabling aRFS on 57500 chips. net: dsa: sja1105: Fix missing unlock on error in sk_buff() gve: replace kfree with kvfree selftests/bpf: fix test_xdp_noinline on s390 selftests/bpf: fix "valid read map access into a read-only array 1" on s390 net/mlx5: Replace kfree with kvfree MAINTAINERS: update netsec driver ipv6: Unlink sibling route in case of failure liquidio: Replace vmalloc + memset with vzalloc udp: Fix typo in net/ipv4/udp.c net: bcmgenet: use promisc for unsupported filters ipv6: rt6_check should return NULL if 'from' is NULL tipc: initialize 'validated' field of received packets selftests: add a test case for rp_filter fib: relax source validation check for loopback packets mlxsw: spectrum: Do not process learned records with a dummy FID ...
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/ath/ath10k/mac.c2
-rw-r--r--drivers/net/wireless/intel/iwlwifi/cfg/22000.c53
-rw-r--r--drivers/net/wireless/intel/iwlwifi/iwl-config.h7
-rw-r--r--drivers/net/wireless/intel/iwlwifi/iwl-csr.h2
-rw-r--r--drivers/net/wireless/intel/iwlwifi/pcie/drv.c23
-rw-r--r--drivers/net/wireless/ralink/rt2x00/rt2x00usb.c12
6 files changed, 93 insertions, 6 deletions
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index e43a566eef77..0606416dc971 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -7541,6 +7541,8 @@ static int ath10k_mac_op_set_bitrate_mask(struct ieee80211_hw *hw,
7541 &vht_nss, 7541 &vht_nss,
7542 true); 7542 true);
7543 update_bitrate_mask = false; 7543 update_bitrate_mask = false;
7544 } else {
7545 vht_pfr = 0;
7544 } 7546 }
7545 7547
7546 mutex_lock(&ar->conf_mutex); 7548 mutex_lock(&ar->conf_mutex);
diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c
index 93526dfaf791..1f500cddb3a7 100644
--- a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c
+++ b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c
@@ -80,7 +80,9 @@
80#define IWL_22000_QU_B_HR_B_FW_PRE "iwlwifi-Qu-b0-hr-b0-" 80#define IWL_22000_QU_B_HR_B_FW_PRE "iwlwifi-Qu-b0-hr-b0-"
81#define IWL_22000_HR_B_FW_PRE "iwlwifi-QuQnj-b0-hr-b0-" 81#define IWL_22000_HR_B_FW_PRE "iwlwifi-QuQnj-b0-hr-b0-"
82#define IWL_22000_HR_A0_FW_PRE "iwlwifi-QuQnj-a0-hr-a0-" 82#define IWL_22000_HR_A0_FW_PRE "iwlwifi-QuQnj-a0-hr-a0-"
83#define IWL_QU_C_HR_B_FW_PRE "iwlwifi-Qu-c0-hr-b0-"
83#define IWL_QU_B_JF_B_FW_PRE "iwlwifi-Qu-b0-jf-b0-" 84#define IWL_QU_B_JF_B_FW_PRE "iwlwifi-Qu-b0-jf-b0-"
85#define IWL_QU_C_JF_B_FW_PRE "iwlwifi-Qu-c0-jf-b0-"
84#define IWL_QUZ_A_HR_B_FW_PRE "iwlwifi-QuZ-a0-hr-b0-" 86#define IWL_QUZ_A_HR_B_FW_PRE "iwlwifi-QuZ-a0-hr-b0-"
85#define IWL_QUZ_A_JF_B_FW_PRE "iwlwifi-QuZ-a0-jf-b0-" 87#define IWL_QUZ_A_JF_B_FW_PRE "iwlwifi-QuZ-a0-jf-b0-"
86#define IWL_QNJ_B_JF_B_FW_PRE "iwlwifi-QuQnj-b0-jf-b0-" 88#define IWL_QNJ_B_JF_B_FW_PRE "iwlwifi-QuQnj-b0-jf-b0-"
@@ -109,6 +111,8 @@
109 IWL_QUZ_A_HR_B_FW_PRE __stringify(api) ".ucode" 111 IWL_QUZ_A_HR_B_FW_PRE __stringify(api) ".ucode"
110#define IWL_QUZ_A_JF_B_MODULE_FIRMWARE(api) \ 112#define IWL_QUZ_A_JF_B_MODULE_FIRMWARE(api) \
111 IWL_QUZ_A_JF_B_FW_PRE __stringify(api) ".ucode" 113 IWL_QUZ_A_JF_B_FW_PRE __stringify(api) ".ucode"
114#define IWL_QU_C_HR_B_MODULE_FIRMWARE(api) \
115 IWL_QU_C_HR_B_FW_PRE __stringify(api) ".ucode"
112#define IWL_QU_B_JF_B_MODULE_FIRMWARE(api) \ 116#define IWL_QU_B_JF_B_MODULE_FIRMWARE(api) \
113 IWL_QU_B_JF_B_FW_PRE __stringify(api) ".ucode" 117 IWL_QU_B_JF_B_FW_PRE __stringify(api) ".ucode"
114#define IWL_QNJ_B_JF_B_MODULE_FIRMWARE(api) \ 118#define IWL_QNJ_B_JF_B_MODULE_FIRMWARE(api) \
@@ -256,6 +260,30 @@ const struct iwl_cfg iwl_ax201_cfg_qu_hr = {
256 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT, 260 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
257}; 261};
258 262
263const struct iwl_cfg iwl_ax101_cfg_qu_c0_hr_b0 = {
264 .name = "Intel(R) Wi-Fi 6 AX101",
265 .fw_name_pre = IWL_QU_C_HR_B_FW_PRE,
266 IWL_DEVICE_22500,
267 /*
268 * This device doesn't support receiving BlockAck with a large bitmap
269 * so we need to restrict the size of transmitted aggregation to the
270 * HT size; mac80211 would otherwise pick the HE max (256) by default.
271 */
272 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
273};
274
275const struct iwl_cfg iwl_ax201_cfg_qu_c0_hr_b0 = {
276 .name = "Intel(R) Wi-Fi 6 AX201 160MHz",
277 .fw_name_pre = IWL_QU_C_HR_B_FW_PRE,
278 IWL_DEVICE_22500,
279 /*
280 * This device doesn't support receiving BlockAck with a large bitmap
281 * so we need to restrict the size of transmitted aggregation to the
282 * HT size; mac80211 would otherwise pick the HE max (256) by default.
283 */
284 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
285};
286
259const struct iwl_cfg iwl_ax101_cfg_quz_hr = { 287const struct iwl_cfg iwl_ax101_cfg_quz_hr = {
260 .name = "Intel(R) Wi-Fi 6 AX101", 288 .name = "Intel(R) Wi-Fi 6 AX101",
261 .fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE, 289 .fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
@@ -372,6 +400,30 @@ const struct iwl_cfg iwl9560_2ac_160_cfg_qu_b0_jf_b0 = {
372 IWL_DEVICE_22500, 400 IWL_DEVICE_22500,
373}; 401};
374 402
403const struct iwl_cfg iwl9461_2ac_cfg_qu_c0_jf_b0 = {
404 .name = "Intel(R) Wireless-AC 9461",
405 .fw_name_pre = IWL_QU_C_JF_B_FW_PRE,
406 IWL_DEVICE_22500,
407};
408
409const struct iwl_cfg iwl9462_2ac_cfg_qu_c0_jf_b0 = {
410 .name = "Intel(R) Wireless-AC 9462",
411 .fw_name_pre = IWL_QU_C_JF_B_FW_PRE,
412 IWL_DEVICE_22500,
413};
414
415const struct iwl_cfg iwl9560_2ac_cfg_qu_c0_jf_b0 = {
416 .name = "Intel(R) Wireless-AC 9560",
417 .fw_name_pre = IWL_QU_C_JF_B_FW_PRE,
418 IWL_DEVICE_22500,
419};
420
421const struct iwl_cfg iwl9560_2ac_160_cfg_qu_c0_jf_b0 = {
422 .name = "Intel(R) Wireless-AC 9560 160MHz",
423 .fw_name_pre = IWL_QU_C_JF_B_FW_PRE,
424 IWL_DEVICE_22500,
425};
426
375const struct iwl_cfg iwl9560_2ac_cfg_qnj_jf_b0 = { 427const struct iwl_cfg iwl9560_2ac_cfg_qnj_jf_b0 = {
376 .name = "Intel(R) Wireless-AC 9560 160MHz", 428 .name = "Intel(R) Wireless-AC 9560 160MHz",
377 .fw_name_pre = IWL_QNJ_B_JF_B_FW_PRE, 429 .fw_name_pre = IWL_QNJ_B_JF_B_FW_PRE,
@@ -590,6 +642,7 @@ MODULE_FIRMWARE(IWL_22000_HR_A_F0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
590MODULE_FIRMWARE(IWL_22000_HR_B_F0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 642MODULE_FIRMWARE(IWL_22000_HR_B_F0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
591MODULE_FIRMWARE(IWL_22000_HR_B_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 643MODULE_FIRMWARE(IWL_22000_HR_B_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
592MODULE_FIRMWARE(IWL_22000_HR_A0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 644MODULE_FIRMWARE(IWL_22000_HR_A0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
645MODULE_FIRMWARE(IWL_QU_C_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
593MODULE_FIRMWARE(IWL_QU_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 646MODULE_FIRMWARE(IWL_QU_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
594MODULE_FIRMWARE(IWL_QUZ_A_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 647MODULE_FIRMWARE(IWL_QUZ_A_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
595MODULE_FIRMWARE(IWL_QUZ_A_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 648MODULE_FIRMWARE(IWL_QUZ_A_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h
index bc267bd2c3b0..1c1bf1b281cd 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h
@@ -565,10 +565,13 @@ extern const struct iwl_cfg iwl22000_2ac_cfg_hr;
565extern const struct iwl_cfg iwl22000_2ac_cfg_hr_cdb; 565extern const struct iwl_cfg iwl22000_2ac_cfg_hr_cdb;
566extern const struct iwl_cfg iwl22000_2ac_cfg_jf; 566extern const struct iwl_cfg iwl22000_2ac_cfg_jf;
567extern const struct iwl_cfg iwl_ax101_cfg_qu_hr; 567extern const struct iwl_cfg iwl_ax101_cfg_qu_hr;
568extern const struct iwl_cfg iwl_ax101_cfg_qu_c0_hr_b0;
568extern const struct iwl_cfg iwl_ax101_cfg_quz_hr; 569extern const struct iwl_cfg iwl_ax101_cfg_quz_hr;
569extern const struct iwl_cfg iwl22000_2ax_cfg_hr; 570extern const struct iwl_cfg iwl22000_2ax_cfg_hr;
570extern const struct iwl_cfg iwl_ax200_cfg_cc; 571extern const struct iwl_cfg iwl_ax200_cfg_cc;
571extern const struct iwl_cfg iwl_ax201_cfg_qu_hr; 572extern const struct iwl_cfg iwl_ax201_cfg_qu_hr;
573extern const struct iwl_cfg iwl_ax201_cfg_qu_hr;
574extern const struct iwl_cfg iwl_ax201_cfg_qu_c0_hr_b0;
572extern const struct iwl_cfg iwl_ax201_cfg_quz_hr; 575extern const struct iwl_cfg iwl_ax201_cfg_quz_hr;
573extern const struct iwl_cfg iwl_ax1650i_cfg_quz_hr; 576extern const struct iwl_cfg iwl_ax1650i_cfg_quz_hr;
574extern const struct iwl_cfg iwl_ax1650s_cfg_quz_hr; 577extern const struct iwl_cfg iwl_ax1650s_cfg_quz_hr;
@@ -580,6 +583,10 @@ extern const struct iwl_cfg iwl9461_2ac_cfg_qu_b0_jf_b0;
580extern const struct iwl_cfg iwl9462_2ac_cfg_qu_b0_jf_b0; 583extern const struct iwl_cfg iwl9462_2ac_cfg_qu_b0_jf_b0;
581extern const struct iwl_cfg iwl9560_2ac_cfg_qu_b0_jf_b0; 584extern const struct iwl_cfg iwl9560_2ac_cfg_qu_b0_jf_b0;
582extern const struct iwl_cfg iwl9560_2ac_160_cfg_qu_b0_jf_b0; 585extern const struct iwl_cfg iwl9560_2ac_160_cfg_qu_b0_jf_b0;
586extern const struct iwl_cfg iwl9461_2ac_cfg_qu_c0_jf_b0;
587extern const struct iwl_cfg iwl9462_2ac_cfg_qu_c0_jf_b0;
588extern const struct iwl_cfg iwl9560_2ac_cfg_qu_c0_jf_b0;
589extern const struct iwl_cfg iwl9560_2ac_160_cfg_qu_c0_jf_b0;
583extern const struct iwl_cfg killer1550i_2ac_cfg_qu_b0_jf_b0; 590extern const struct iwl_cfg killer1550i_2ac_cfg_qu_b0_jf_b0;
584extern const struct iwl_cfg killer1550s_2ac_cfg_qu_b0_jf_b0; 591extern const struct iwl_cfg killer1550s_2ac_cfg_qu_b0_jf_b0;
585extern const struct iwl_cfg iwl22000_2ax_cfg_jf; 592extern const struct iwl_cfg iwl22000_2ax_cfg_jf;
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h
index 93da96a7247c..cb4c5514a556 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h
@@ -328,6 +328,8 @@ enum {
328#define CSR_HW_REV_TYPE_NONE (0x00001F0) 328#define CSR_HW_REV_TYPE_NONE (0x00001F0)
329#define CSR_HW_REV_TYPE_QNJ (0x0000360) 329#define CSR_HW_REV_TYPE_QNJ (0x0000360)
330#define CSR_HW_REV_TYPE_QNJ_B0 (0x0000364) 330#define CSR_HW_REV_TYPE_QNJ_B0 (0x0000364)
331#define CSR_HW_REV_TYPE_QU_B0 (0x0000334)
332#define CSR_HW_REV_TYPE_QU_C0 (0x0000338)
331#define CSR_HW_REV_TYPE_QUZ (0x0000354) 333#define CSR_HW_REV_TYPE_QUZ (0x0000354)
332#define CSR_HW_REV_TYPE_HR_CDB (0x0000340) 334#define CSR_HW_REV_TYPE_HR_CDB (0x0000340)
333#define CSR_HW_REV_TYPE_SO (0x0000370) 335#define CSR_HW_REV_TYPE_SO (0x0000370)
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
index ccc83fd74649..ea2a03d4bf55 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
@@ -604,6 +604,7 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
604 {IWL_PCI_DEVICE(0x2526, 0x40A4, iwl9460_2ac_cfg)}, 604 {IWL_PCI_DEVICE(0x2526, 0x40A4, iwl9460_2ac_cfg)},
605 {IWL_PCI_DEVICE(0x2526, 0x4234, iwl9560_2ac_cfg_soc)}, 605 {IWL_PCI_DEVICE(0x2526, 0x4234, iwl9560_2ac_cfg_soc)},
606 {IWL_PCI_DEVICE(0x2526, 0x42A4, iwl9462_2ac_cfg_soc)}, 606 {IWL_PCI_DEVICE(0x2526, 0x42A4, iwl9462_2ac_cfg_soc)},
607 {IWL_PCI_DEVICE(0x2526, 0x6014, iwl9260_2ac_160_cfg)},
607 {IWL_PCI_DEVICE(0x2526, 0x8014, iwl9260_2ac_160_cfg)}, 608 {IWL_PCI_DEVICE(0x2526, 0x8014, iwl9260_2ac_160_cfg)},
608 {IWL_PCI_DEVICE(0x2526, 0x8010, iwl9260_2ac_160_cfg)}, 609 {IWL_PCI_DEVICE(0x2526, 0x8010, iwl9260_2ac_160_cfg)},
609 {IWL_PCI_DEVICE(0x2526, 0xA014, iwl9260_2ac_160_cfg)}, 610 {IWL_PCI_DEVICE(0x2526, 0xA014, iwl9260_2ac_160_cfg)},
@@ -971,6 +972,7 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
971 {IWL_PCI_DEVICE(0x7A70, 0x0310, iwlax211_2ax_cfg_so_gf_a0)}, 972 {IWL_PCI_DEVICE(0x7A70, 0x0310, iwlax211_2ax_cfg_so_gf_a0)},
972 {IWL_PCI_DEVICE(0x7A70, 0x0510, iwlax211_2ax_cfg_so_gf_a0)}, 973 {IWL_PCI_DEVICE(0x7A70, 0x0510, iwlax211_2ax_cfg_so_gf_a0)},
973 {IWL_PCI_DEVICE(0x7A70, 0x0A10, iwlax211_2ax_cfg_so_gf_a0)}, 974 {IWL_PCI_DEVICE(0x7A70, 0x0A10, iwlax211_2ax_cfg_so_gf_a0)},
975 {IWL_PCI_DEVICE(0x7AF0, 0x0090, iwlax211_2ax_cfg_so_gf_a0)},
974 {IWL_PCI_DEVICE(0x7AF0, 0x0310, iwlax211_2ax_cfg_so_gf_a0)}, 976 {IWL_PCI_DEVICE(0x7AF0, 0x0310, iwlax211_2ax_cfg_so_gf_a0)},
975 {IWL_PCI_DEVICE(0x7AF0, 0x0510, iwlax211_2ax_cfg_so_gf_a0)}, 977 {IWL_PCI_DEVICE(0x7AF0, 0x0510, iwlax211_2ax_cfg_so_gf_a0)},
976 {IWL_PCI_DEVICE(0x7AF0, 0x0A10, iwlax211_2ax_cfg_so_gf_a0)}, 978 {IWL_PCI_DEVICE(0x7AF0, 0x0A10, iwlax211_2ax_cfg_so_gf_a0)},
@@ -1037,6 +1039,27 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
1037 } 1039 }
1038 iwl_trans->cfg = cfg; 1040 iwl_trans->cfg = cfg;
1039 } 1041 }
1042
1043 /*
1044 * This is a hack to switch from Qu B0 to Qu C0. We need to
1045 * do this for all cfgs that use Qu B0. All this code is in
1046 * urgent need for a refactor, but for now this is the easiest
1047 * thing to do to support Qu C-step.
1048 */
1049 if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QU_C0) {
1050 if (iwl_trans->cfg == &iwl_ax101_cfg_qu_hr)
1051 iwl_trans->cfg = &iwl_ax101_cfg_qu_c0_hr_b0;
1052 else if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr)
1053 iwl_trans->cfg = &iwl_ax201_cfg_qu_c0_hr_b0;
1054 else if (iwl_trans->cfg == &iwl9461_2ac_cfg_qu_b0_jf_b0)
1055 iwl_trans->cfg = &iwl9461_2ac_cfg_qu_c0_jf_b0;
1056 else if (iwl_trans->cfg == &iwl9462_2ac_cfg_qu_b0_jf_b0)
1057 iwl_trans->cfg = &iwl9462_2ac_cfg_qu_c0_jf_b0;
1058 else if (iwl_trans->cfg == &iwl9560_2ac_cfg_qu_b0_jf_b0)
1059 iwl_trans->cfg = &iwl9560_2ac_cfg_qu_c0_jf_b0;
1060 else if (iwl_trans->cfg == &iwl9560_2ac_160_cfg_qu_b0_jf_b0)
1061 iwl_trans->cfg = &iwl9560_2ac_160_cfg_qu_c0_jf_b0;
1062 }
1040#endif 1063#endif
1041 1064
1042 pci_set_drvdata(pdev, iwl_trans); 1065 pci_set_drvdata(pdev, iwl_trans);
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c b/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
index 67b81c7221c4..7e3a621b9c0d 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
@@ -372,15 +372,10 @@ static void rt2x00usb_interrupt_rxdone(struct urb *urb)
372 struct queue_entry *entry = (struct queue_entry *)urb->context; 372 struct queue_entry *entry = (struct queue_entry *)urb->context;
373 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; 373 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
374 374
375 if (!test_and_clear_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags)) 375 if (!test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags))
376 return; 376 return;
377 377
378 /* 378 /*
379 * Report the frame as DMA done
380 */
381 rt2x00lib_dmadone(entry);
382
383 /*
384 * Check if the received data is simply too small 379 * Check if the received data is simply too small
385 * to be actually valid, or if the urb is signaling 380 * to be actually valid, or if the urb is signaling
386 * a problem. 381 * a problem.
@@ -389,6 +384,11 @@ static void rt2x00usb_interrupt_rxdone(struct urb *urb)
389 set_bit(ENTRY_DATA_IO_FAILED, &entry->flags); 384 set_bit(ENTRY_DATA_IO_FAILED, &entry->flags);
390 385
391 /* 386 /*
387 * Report the frame as DMA done
388 */
389 rt2x00lib_dmadone(entry);
390
391 /*
392 * Schedule the delayed work for reading the RX status 392 * Schedule the delayed work for reading the RX status
393 * from the device. 393 * from the device.
394 */ 394 */