]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 16 Mar 2015 13:36:59 +0000 (14:36 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 16 Mar 2015 13:36:59 +0000 (14:36 +0100)
added patches:
ath5k-fix-spontaneus-ar5312-freezes.patch

queue-3.10/ath5k-fix-spontaneus-ar5312-freezes.patch [new file with mode: 0644]
queue-3.10/series

diff --git a/queue-3.10/ath5k-fix-spontaneus-ar5312-freezes.patch b/queue-3.10/ath5k-fix-spontaneus-ar5312-freezes.patch
new file mode 100644 (file)
index 0000000..6b21930
--- /dev/null
@@ -0,0 +1,56 @@
+From 8bfae4f9938b6c1f033a5159febe97e441d6d526 Mon Sep 17 00:00:00 2001
+From: Sergey Ryazanov <ryazanov.s.a@gmail.com>
+Date: Wed, 4 Feb 2015 00:21:13 +0300
+Subject: ath5k: fix spontaneus AR5312 freezes
+
+From: Sergey Ryazanov <ryazanov.s.a@gmail.com>
+
+commit 8bfae4f9938b6c1f033a5159febe97e441d6d526 upstream.
+
+Sometimes while CPU have some load and ath5k doing the wireless
+interface reset the whole WiSoC completely freezes. Set of tests shows
+that using atomic delay function while we wait interface reset helps to
+avoid such freezes.
+
+The easiest way to reproduce this issue: create a station interface,
+start continous scan with wpa_supplicant and load CPU by something. Or
+just create multiple station interfaces and put them all in continous
+scan.
+
+This patch partially reverts the commit 1846ac3dbec0 ("ath5k: Use
+usleep_range where possible"), which replaces initial udelay()
+by usleep_range().
+
+I do not know actual source of this issue, but all looks like that HW
+freeze is caused by transaction on internal SoC bus, while wireless
+block is in reset state.
+
+Also I should note that I do not know how many chips are affected, but I
+did not see this issue with chips, other than AR5312.
+
+CC: Jiri Slaby <jirislaby@gmail.com>
+CC: Nick Kossifidis <mickflemm@gmail.com>
+CC: Luis R. Rodriguez <mcgrof@do-not-panic.com>
+Fixes: 1846ac3dbec0 ("ath5k: Use usleep_range where possible")
+Reported-by: Christophe Prevotaux <c.prevotaux@rural-networks.com>
+Tested-by: Christophe Prevotaux <c.prevotaux@rural-networks.com>
+Tested-by: Eric Bree <ebree@nltinc.com>
+Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/ath/ath5k/reset.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ath/ath5k/reset.c
++++ b/drivers/net/wireless/ath/ath5k/reset.c
+@@ -478,7 +478,7 @@ ath5k_hw_wisoc_reset(struct ath5k_hw *ah
+       regval = ioread32(reg);
+       iowrite32(regval | val, reg);
+       regval = ioread32(reg);
+-      usleep_range(100, 150);
++      udelay(100);    /* NB: should be atomic */
+       /* Bring BB/MAC out of reset */
+       iowrite32(regval & ~val, reg);
index 9c0af601a3564a6b93e520720cdfcf952fc81b35..cf5693a1e81e6f6a1a006fefde45544cfa1110fc 100644 (file)
@@ -59,3 +59,4 @@ hid-fixup-the-conflicting-keyboard-mappings-quirk.patch
 drivers-hv-vmbus-incorrect-device-name-is-printed-when-child-device-is-unregistered.patch
 drm-radeon-fix-1-rb-harvest-config-setup-for-tn-rl.patch
 acpi-video-load-the-module-even-if-acpi-is-disabled.patch
+ath5k-fix-spontaneus-ar5312-freezes.patch