From 991987b30763184d46ed1546f0712f2f6111995a Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 13 Nov 2013 09:00:49 -0500 Subject: [PATCH] Linux v3.12-7033-g42a2d92 Enable support for the new nf_tables stuff --- ...ifi-don-t-WARN-on-bad-firmware-state.patch | 98 ------------------- Makefile.release | 1 + PatchList.txt | 9 -- config-debug | 1 + config-generic | 37 +++++++ config-nodebug | 1 + kernel.spec | 23 +---- rt2800-add-support-for-rf3070.patch | 84 ---------------- rt2800usb-slow-down-TX-status-polling.patch | 53 ---------- sources | 3 +- 10 files changed, 45 insertions(+), 265 deletions(-) delete mode 100644 0002-iwlwifi-don-t-WARN-on-bad-firmware-state.patch delete mode 100644 rt2800-add-support-for-rf3070.patch delete mode 100644 rt2800usb-slow-down-TX-status-polling.patch diff --git a/0002-iwlwifi-don-t-WARN-on-bad-firmware-state.patch b/0002-iwlwifi-don-t-WARN-on-bad-firmware-state.patch deleted file mode 100644 index 499c34a63..000000000 --- a/0002-iwlwifi-don-t-WARN-on-bad-firmware-state.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 3efd689c41080b0d4a9cc263a51f2868e3d5a37b Mon Sep 17 00:00:00 2001 -From: Stanislaw Gruszka -Date: Wed, 9 Oct 2013 15:03:57 +0200 -Subject: [PATCH] iwlwifi: don't WARN on bad firmware state - -When we restart firmware is possible and hance firmware is marked as not -alive, we can still get calls from mac80211. Don't WARN on in this -situation as this triggers automatic bug reports with no valuable -information. - -This extend change from: - -commit 8ca95995e64f5d270889badb3e449dca91106a2b -Author: Emmanuel Grumbach -Date: Sun Sep 15 11:37:17 2013 +0300 - - iwlwifi: don't WARN on host commands sent when firmware is dead - -which remove WARN_ONCE from one place, but those warnings are also -triggered from other functions. - -Patch adds also unlikely() statement. - -Signed-off-by: Stanislaw Gruszka ---- - drivers/net/wireless/iwlwifi/iwl-trans.h | 22 +++++++++++----------- - 1 files changed, 11 insertions(+), 11 deletions(-) - -diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.h b/drivers/net/wireless/iwlwifi/iwl-trans.h -index 80b4750..c6bac7c 100644 ---- a/drivers/net/wireless/iwlwifi/iwl-trans.h -+++ b/drivers/net/wireless/iwlwifi/iwl-trans.h -@@ -601,7 +601,7 @@ static inline int iwl_trans_send_cmd(struct iwl_trans *trans, - { - int ret; - -- if (trans->state != IWL_TRANS_FW_ALIVE) { -+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE)) { - IWL_ERR(trans, "%s bad state = %d", __func__, trans->state); - return -EIO; - } -@@ -640,8 +640,8 @@ static inline void iwl_trans_free_tx_cmd(struct iwl_trans *trans, - static inline int iwl_trans_tx(struct iwl_trans *trans, struct sk_buff *skb, - struct iwl_device_cmd *dev_cmd, int queue) - { -- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE, -- "%s bad state = %d", __func__, trans->state); -+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE)) -+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state); - - return trans->ops->tx(trans, skb, dev_cmd, queue); - } -@@ -649,16 +649,16 @@ static inline int iwl_trans_tx(struct iwl_trans *trans, struct sk_buff *skb, - static inline void iwl_trans_reclaim(struct iwl_trans *trans, int queue, - int ssn, struct sk_buff_head *skbs) - { -- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE, -- "%s bad state = %d", __func__, trans->state); -+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE)) -+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state); - - trans->ops->reclaim(trans, queue, ssn, skbs); - } - - static inline void iwl_trans_txq_disable(struct iwl_trans *trans, int queue) - { -- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE, -- "%s bad state = %d", __func__, trans->state); -+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE)) -+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state); - - trans->ops->txq_disable(trans, queue); - } -@@ -669,8 +669,8 @@ static inline void iwl_trans_txq_enable(struct iwl_trans *trans, int queue, - { - might_sleep(); - -- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE, -- "%s bad state = %d", __func__, trans->state); -+ if (unlikely((trans->state != IWL_TRANS_FW_ALIVE))) -+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state); - - trans->ops->txq_enable(trans, queue, fifo, sta_id, tid, - frame_limit, ssn); -@@ -685,8 +685,8 @@ static inline void iwl_trans_ac_txq_enable(struct iwl_trans *trans, int queue, - - static inline int iwl_trans_wait_tx_queue_empty(struct iwl_trans *trans) - { -- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE, -- "%s bad state = %d", __func__, trans->state); -+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE)) -+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state); - - return trans->ops->wait_tx_queue_empty(trans); - } --- -1.7.1 - diff --git a/Makefile.release b/Makefile.release index ef0d66b62..4cd25f2d0 100644 --- a/Makefile.release +++ b/Makefile.release @@ -64,6 +64,7 @@ config-release: @perl -pi -e 's/CONFIG_QUOTA_DEBUG=y/# CONFIG_QUOTA_DEBUG is not set/' config-nodebug @perl -pi -e 's/CONFIG_CPU_NOTIFIER_ERROR_INJECT=m/# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set/' config-nodebug @perl -pi -e 's/CONFIG_DEBUG_PER_CPU_MAPS=y/# CONFIG_DEBUG_PER_CPU_MAPS is not set/' config-nodebug + @perl -pi -e 's/CONFIG_PERCPU_TEST=m/# CONFIG_PERCPU_TEST is not set/' config-nodebug @perl -pi -e 's/CONFIG_TEST_LIST_SORT=y/# CONFIG_TEST_LIST_SORT is not set/' config-nodebug @perl -pi -e 's/CONFIG_TEST_STRING_HELPERS=m/# CONFIG_TEST_STRING_HELPERS is not set/' config-nodebug @perl -pi -e 's/CONFIG_DEBUG_ATOMIC_SLEEP=y/# CONFIG_DEBUG_ATOMIC_SLEEP is not set/' config-nodebug diff --git a/PatchList.txt b/PatchList.txt index 46fa21cea..9d1460cf4 100644 --- a/PatchList.txt +++ b/PatchList.txt @@ -1,8 +1,5 @@ **** Backports and patches headed/already upsteram ***************************** -* rt2800usb-slow-down-TX-status-polling.patch (rhbz 984696) - - Still pending upstream. Fixes https://bugzilla.kernel.org/show_bug.cgi?id=62781 - * btrfs-relocate-csums-properly-with-prealloc-ext.patch (rhbz 1011714) - Still pending upstream @@ -12,18 +9,12 @@ * dm-cache-policy-mq_fix-large-scale-table-allocation-bug.patch (rhbz 993744) - Still pending upstream -* 0002-iwlwifi-don-t-WARN-on-bad-firmware-state.patch (rhbz 896695) - - Still pending upstream - * vfio-iommu-Fixed-interaction-of-VFIO_IOMMU_MAP_DMA.patch (rhbz 998732) - Still pending upstream * iommu-Remove-stack-trace-from-broken-irq-remapping-warning.patch (rhbz 982153) - Still pending upstream -* rt2800-add-support-for-rf3070.patch (rhbz 974072) - - Actually I'm unsure of what the upstream status on this one is. - * elevator-Fix-a-race-in-elevator-switching-and-md.patch * elevator-acquire-q-sysfs_lock-in-elevator_change.patch (rhbz 902012) - I believe these are both queued for the next upstream release diff --git a/config-debug b/config-debug index fb7df3e38..8000b4e86 100644 --- a/config-debug +++ b/config-debug @@ -104,6 +104,7 @@ CONFIG_KDB_KEYBOARD=y CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y +CONFIG_PERCPU_TEST=m CONFIG_TEST_LIST_SORT=y CONFIG_TEST_STRING_HELPERS=m diff --git a/config-generic b/config-generic index 0c2eb994a..490c77fa7 100644 --- a/config-generic +++ b/config-generic @@ -786,6 +786,7 @@ CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=y +CONFIG_IPV6_VTI=m CONFIG_IPV6_SIT=m CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_TUNNEL=m @@ -982,6 +983,30 @@ CONFIG_NF_NAT_IPV6=m CONFIG_IP6_NF_TARGET_MASQUERADE=m # CONFIG_IP6_NF_TARGET_NPT is not set +# nf_tables support +CONFIG_NF_TABLES=m +CONFIG_NFT_EXTHDR=m +CONFIG_NFT_META=m +CONFIG_NFT_CT=m +CONFIG_NFT_RBTREE=m +CONFIG_NFT_HASH=m +CONFIG_NFT_COUNTER=m +CONFIG_NFT_LOG=m +CONFIG_NFT_LIMIT=m +CONFIG_NFT_NAT=m +CONFIG_NFT_COMPAT=m + +CONFIG_NF_TABLES_IPV4=m +CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_CHAIN_ROUTE_IPV4=m +CONFIG_NFT_CHAIN_NAT_IPV4=m +CONFIG_NF_TABLES_ARP=m + +CONFIG_NF_TABLES_IPV6=m +CONFIG_NFT_CHAIN_ROUTE_IPV6=m +CONFIG_NFT_CHAIN_NAT_IPV6=m + +CONFIG_NF_TABLES_BRIDGE=m # # Bridge: Netfilter Configuration # @@ -1029,7 +1054,9 @@ CONFIG_IP_SET_HASH_IP=m CONFIG_IP_SET_HASH_IPPORT=m CONFIG_IP_SET_HASH_IPPORTIP=m CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETNET=m CONFIG_IP_SET_HASH_NETPORT=m CONFIG_IP_SET_HASH_NETIFACE=m CONFIG_IP_SET_LIST_SET=m @@ -1112,6 +1139,7 @@ CONFIG_NET_CLS=y CONFIG_NET_CLS_ACT=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_CGROUP=y +CONFIG_NET_CLS_BPF=m CONFIG_NET_CLS_FLOW=m CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_IND=y @@ -1594,6 +1622,8 @@ CONFIG_ATH10K_PCI=m # CONFIG_ATH10K_DEBUG is not set # CONFIG_ATH10K_TRACING is not set CONFIG_ATH10K_DEBUGFS=y +CONFIG_WCN36XX=m +# CONFIG_WCN36XX_DEBUGFS is not set CONFIG_WIL6210=m CONFIG_WIL6210_ISR_COR=y # CONFIG_WIL6210_TRACING is not set @@ -1778,6 +1808,7 @@ CONFIG_BAYCOM_EPP=m CONFIG_YAM=m CONFIG_NFC=m +CONFIG_NFC_DIGITAL=m CONFIG_NFC_NCI=m CONFIG_NFC_HCI=m CONFIG_NFC_SHDLC=y @@ -1787,6 +1818,7 @@ CONFIG_NFC_SIM=m # # Near Field Communication (NFC) devices # +CONFIG_NFC_PORT100=m CONFIG_NFC_PN544=m CONFIG_NFC_PN544_I2C=m CONFIG_NFC_PN533=m @@ -3610,6 +3642,7 @@ CONFIG_USB_NET_RNDIS_HOST=m CONFIG_USB_NET_CDC_SUBSET=m CONFIG_USB_NET_CDC_EEM=m CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_HUAWEI_CDC_NCM=m CONFIG_USB_NET_CDC_MBIM=m CONFIG_USB_NET_ZAURUS=m CONFIG_USB_NET_CX82310_ETH=m @@ -4369,6 +4402,7 @@ CONFIG_CRC_CCITT=m CONFIG_CRC_ITU_T=m CONFIG_CRC_T10DIF=m CONFIG_CRC8=m +# CONFIG_RANDOM32_SELFTEST is not set # CONFIG_CRC7 is not set CONFIG_CORDIC=m # CONFIG_DDR is not set @@ -4396,6 +4430,7 @@ CONFIG_BACKLIGHT_PROGEAR=m # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # CONFIG_BACKLIGHT_LM3630 is not set +# CONFIG_BACKLIGHT_LM3630A is not set # CONFIG_BACKLIGHT_LM3639 is not set CONFIG_FB_NVIDIA_BACKLIGHT=y CONFIG_FB_RIVA_BACKLIGHT=y @@ -4920,6 +4955,8 @@ CONFIG_IEEE802154_FAKELB=m CONFIG_MAC802154=m CONFIG_NET_MPLS_GSO=m +# CONFIG_HSR is not set + # CONFIG_EXTCON is not set # CONFIG_EXTCON_ADC_JACK is not set # CONFIG_MEMORY is not set diff --git a/config-nodebug b/config-nodebug index 66b8caa04..fbd40e8a3 100644 --- a/config-nodebug +++ b/config-nodebug @@ -104,6 +104,7 @@ CONFIG_KDB_KEYBOARD=y CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y +CONFIG_PERCPU_TEST=m CONFIG_TEST_LIST_SORT=y # CONFIG_TEST_STRING_HELPERS is not set diff --git a/kernel.spec b/kernel.spec index 42e99d232..64e279bc8 100644 --- a/kernel.spec +++ b/kernel.spec @@ -95,7 +95,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 0 # The git snapshot level -%define gitrev 2 +%define gitrev 3 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -709,18 +709,12 @@ Patch25104: ansi_cprng-Fix-off-by-one-error-in-non-block-size-request.patch Patch25114: elevator-Fix-a-race-in-elevator-switching-and-md.patch Patch25115: elevator-acquire-q-sysfs_lock-in-elevator_change.patch -#rhbz 974072 -Patch25116: rt2800-add-support-for-rf3070.patch - #rhbz 982153 Patch25123: iommu-Remove-stack-trace-from-broken-irq-remapping-warning.patch #rhbz 998732 Patch25124: vfio-iommu-Fixed-interaction-of-VFIO_IOMMU_MAP_DMA.patch -#rhbz 896695 -Patch25127: 0002-iwlwifi-don-t-WARN-on-bad-firmware-state.patch - #rhbz 993744 Patch25128: dm-cache-policy-mq_fix-large-scale-table-allocation-bug.patch @@ -730,9 +724,6 @@ Patch25129: cpupower-Fix-segfault-due-to-incorrect-getopt_long-a.patch #rhbz 1011714 Patch25131: btrfs-relocate-csums-properly-with-prealloc-ext.patch -#rhbz 984696 -Patch25132: rt2800usb-slow-down-TX-status-polling.patch - Patch25140: drm-qxl-backport-fixes-for-Fedora.patch Patch25141: Input-evdev-fall-back-to-vmalloc-for-client-event-buffer.patch @@ -1416,18 +1407,12 @@ ApplyPatch ansi_cprng-Fix-off-by-one-error-in-non-block-size-request.patch ApplyPatch elevator-Fix-a-race-in-elevator-switching-and-md.patch ApplyPatch elevator-acquire-q-sysfs_lock-in-elevator_change.patch -#rhbz 974072 -ApplyPatch rt2800-add-support-for-rf3070.patch - #rhbz 982153 ApplyPatch iommu-Remove-stack-trace-from-broken-irq-remapping-warning.patch #rhbz 998732 ApplyPatch vfio-iommu-Fixed-interaction-of-VFIO_IOMMU_MAP_DMA.patch -#rhbz 896695 -ApplyPatch 0002-iwlwifi-don-t-WARN-on-bad-firmware-state.patch - #rhbz 993744 ApplyPatch dm-cache-policy-mq_fix-large-scale-table-allocation-bug.patch @@ -1437,9 +1422,6 @@ ApplyPatch cpupower-Fix-segfault-due-to-incorrect-getopt_long-a.patch #rhbz 1011714 ApplyPatch btrfs-relocate-csums-properly-with-prealloc-ext.patch -#rhbz 984696 -ApplyPatch rt2800usb-slow-down-TX-status-polling.patch - ApplyPatch drm-qxl-backport-fixes-for-Fedora.patch ApplyPatch Input-evdev-fall-back-to-vmalloc-for-client-event-buffer.patch @@ -2251,6 +2233,9 @@ fi # ||----w | # || || %changelog +* Wed Nov 13 2013 Josh Boyer - 3.13.0-0.rc0.git3.1 +- Linux v3.12-7033-g42a2d92 + * Wed Nov 13 2013 Josh Boyer - Add patch to fix imx-drm build issues diff --git a/rt2800-add-support-for-rf3070.patch b/rt2800-add-support-for-rf3070.patch deleted file mode 100644 index a07037862..000000000 --- a/rt2800-add-support-for-rf3070.patch +++ /dev/null @@ -1,84 +0,0 @@ -Add support for new RF chip ID: 3070. It seems to be the same as 5370, -maybe vendor just put wrong value on the eeprom, but add this id anyway -since devices with it showed on the marked. - -Signed-off-by: Stanislaw Gruszka - -diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h -index fa33b5e..e3eb952 100644 ---- a/drivers/net/wireless/rt2x00/rt2800.h -+++ b/drivers/net/wireless/rt2x00/rt2800.h -@@ -52,6 +52,7 @@ - * RF3322 2.4G 2T2R(RT3352/RT3371/RT3372/RT3391/RT3392) - * RF3053 2.4G/5G 3T3R(RT3883/RT3563/RT3573/RT3593/RT3662) - * RF5592 2.4G/5G 2T2R -+ * RF3070 2.4G 1T1R - * RF5360 2.4G 1T1R - * RF5370 2.4G 1T1R - * RF5390 2.4G 1T1R -@@ -70,6 +71,7 @@ - #define RF3322 0x000c - #define RF3053 0x000d - #define RF5592 0x000f -+#define RF3070 0x3070 - #define RF3290 0x3290 - #define RF5360 0x5360 - #define RF5370 0x5370 -diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c -index 88ce656..d2f638f 100644 ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c -@@ -3152,6 +3152,7 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev, - case RF3322: - rt2800_config_channel_rf3322(rt2x00dev, conf, rf, info); - break; -+ case RF3070: - case RF5360: - case RF5370: - case RF5372: -@@ -3166,7 +3167,8 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev, - rt2800_config_channel_rf2xxx(rt2x00dev, conf, rf, info); - } - -- if (rt2x00_rf(rt2x00dev, RF3290) || -+ if (rt2x00_rf(rt2x00dev, RF3070) || -+ rt2x00_rf(rt2x00dev, RF3290) || - rt2x00_rf(rt2x00dev, RF3322) || - rt2x00_rf(rt2x00dev, RF5360) || - rt2x00_rf(rt2x00dev, RF5370) || -@@ -4264,6 +4266,7 @@ void rt2800_vco_calibration(struct rt2x00_dev *rt2x00dev) - rt2800_rfcsr_write(rt2x00dev, 7, rfcsr); - break; - case RF3053: -+ case RF3070: - case RF3290: - case RF5360: - case RF5370: -@@ -7021,6 +7024,7 @@ static int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev) - case RF3022: - case RF3052: - case RF3053: -+ case RF3070: - case RF3290: - case RF3320: - case RF3322: -@@ -7543,6 +7547,7 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev) - rt2x00_rf(rt2x00dev, RF2020) || - rt2x00_rf(rt2x00dev, RF3021) || - rt2x00_rf(rt2x00dev, RF3022) || -+ rt2x00_rf(rt2x00dev, RF3070) || - rt2x00_rf(rt2x00dev, RF3290) || - rt2x00_rf(rt2x00dev, RF3320) || - rt2x00_rf(rt2x00dev, RF3322) || -@@ -7671,6 +7676,7 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev) - case RF3320: - case RF3052: - case RF3053: -+ case RF3070: - case RF3290: - case RF5360: - case RF5370: --- -To unsubscribe from this list: send the line "unsubscribe linux-wireless" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html \ No newline at end of file diff --git a/rt2800usb-slow-down-TX-status-polling.patch b/rt2800usb-slow-down-TX-status-polling.patch deleted file mode 100644 index a76f9b847..000000000 --- a/rt2800usb-slow-down-TX-status-polling.patch +++ /dev/null @@ -1,53 +0,0 @@ -Polling TX statuses too frequently has two negative effects. First is -randomly peek CPU usage, causing overall system functioning delays. -Second bad effect is that device is not able to fill TX statuses in -H/W register on some workloads and we get lot of timeouts like below: - -ieee80211 phy4: rt2800usb_entry_txstatus_timeout: Warning - TX status timeout for entry 7 in queue 2 -ieee80211 phy4: rt2800usb_entry_txstatus_timeout: Warning - TX status timeout for entry 7 in queue 2 -ieee80211 phy4: rt2800usb_txdone: Warning - Got TX status for an empty queue 2, dropping - -This not only cause flood of messages in dmesg, but also bad throughput, -since rate scaling algorithm can not work optimally. - -In the future, we should probably make polling interval be adjusted -automatically, but for now just increase values, this make mentioned -problems gone. - -Resolve: -https://bugzilla.kernel.org/show_bug.cgi?id=62781 - -Cc: stable@vger.kernel.org -Signed-off-by: Stanislaw Gruszka ---- - drivers/net/wireless/rt2x00/rt2800usb.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c -index 96677ce5..e095e61 100644 ---- a/drivers/net/wireless/rt2x00/rt2800usb.c -+++ b/drivers/net/wireless/rt2x00/rt2800usb.c -@@ -176,8 +176,8 @@ static bool rt2800usb_tx_sta_fifo_read_completed(struct rt2x00_dev *rt2x00dev, - queue_work(rt2x00dev->workqueue, &rt2x00dev->txdone_work); - - if (rt2800usb_txstatus_pending(rt2x00dev)) { -- /* Read register after 250 us */ -- hrtimer_start(&rt2x00dev->txstatus_timer, ktime_set(0, 250000), -+ /* Read register after 1 ms */ -+ hrtimer_start(&rt2x00dev->txstatus_timer, ktime_set(0, 1000000), - HRTIMER_MODE_REL); - return false; - } -@@ -202,8 +202,8 @@ static void rt2800usb_async_read_tx_status(struct rt2x00_dev *rt2x00dev) - if (test_and_set_bit(TX_STATUS_READING, &rt2x00dev->flags)) - return; - -- /* Read TX_STA_FIFO register after 500 us */ -- hrtimer_start(&rt2x00dev->txstatus_timer, ktime_set(0, 500000), -+ /* Read TX_STA_FIFO register after 2 ms */ -+ hrtimer_start(&rt2x00dev->txstatus_timer, ktime_set(0, 2000000), - HRTIMER_MODE_REL); - } - --- -1.8.3.1 diff --git a/sources b/sources index fd4184c50..ac798dda7 100644 --- a/sources +++ b/sources @@ -1,3 +1,2 @@ cc6ee608854e0da4b64f6c1ff8b6398c linux-3.12.tar.xz -47eda935b7156e21ef3d424ba8797863 patch-3.12-git1.xz -6de5ff06cc215c8aba4f411d397e4b47 patch-3.12-git2.xz +13fe2af0b5a290661d20e121cf9fe530 patch-3.12-git3.xz