Linux v3.12-7033-g42a2d92
Enable support for the new nf_tables stuff
This commit is contained in:
parent
43260145fe
commit
991987b307
@ -1,98 +0,0 @@
|
||||
From 3efd689c41080b0d4a9cc263a51f2868e3d5a37b Mon Sep 17 00:00:00 2001
|
||||
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
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 <emmanuel.grumbach@intel.com>
|
||||
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 <sgruszka@redhat.com>
|
||||
---
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
23
kernel.spec
23
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 <jwboyer@fedoraproject.org> - 3.13.0-0.rc0.git3.1
|
||||
- Linux v3.12-7033-g42a2d92
|
||||
|
||||
* Wed Nov 13 2013 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Add patch to fix imx-drm build issues
|
||||
|
||||
|
@ -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 <sgruszka@redhat.com>
|
||||
|
||||
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
|
@ -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 <sgruszka@redhat.com>
|
||||
---
|
||||
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
|
Loading…
Reference in New Issue
Block a user