From: Greg Kroah-Hartman Date: Mon, 16 Mar 2015 13:36:59 +0000 (+0100) Subject: 3.10-stable patches X-Git-Tag: v3.10.72~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=db39334a7a69fe66ba7ac7f8b485ba5c1b604918;p=thirdparty%2Fkernel%2Fstable-queue.git 3.10-stable patches added patches: ath5k-fix-spontaneus-ar5312-freezes.patch --- 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 index 00000000000..6b219301ff3 --- /dev/null +++ b/queue-3.10/ath5k-fix-spontaneus-ar5312-freezes.patch @@ -0,0 +1,56 @@ +From 8bfae4f9938b6c1f033a5159febe97e441d6d526 Mon Sep 17 00:00:00 2001 +From: Sergey Ryazanov +Date: Wed, 4 Feb 2015 00:21:13 +0300 +Subject: ath5k: fix spontaneus AR5312 freezes + +From: Sergey Ryazanov + +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 +CC: Nick Kossifidis +CC: Luis R. Rodriguez +Fixes: 1846ac3dbec0 ("ath5k: Use usleep_range where possible") +Reported-by: Christophe Prevotaux +Tested-by: Christophe Prevotaux +Tested-by: Eric Bree +Signed-off-by: Sergey Ryazanov +Signed-off-by: Kalle Valo +Signed-off-by: Greg Kroah-Hartman + +--- + 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); diff --git a/queue-3.10/series b/queue-3.10/series index 9c0af601a35..cf5693a1e81 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -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