diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2012-01-06 14:11:44 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2012-01-06 14:11:44 -0800 |
commit | 2c5a709bf1d923cd27503b0ad5210843c6ae1ba4 (patch) | |
tree | 007338474d3aa544ad3a9010b56a1fd079f16260 | |
parent | fb8d5d6c17c193237f266e1226bbc9b49c28f4da (diff) | |
download | longterm-queue-2.6.32-2c5a709bf1d923cd27503b0ad5210843c6ae1ba4.tar.gz |
2.6.32-stable patches
added patches:
ath9k-fix-kernel-panic-in-ar2427-in-ap-mode.patch
hung_task-fix-false-positive-during-vfork.patch
-rw-r--r-- | queue-2.6.32/ath9k-fix-kernel-panic-in-ar2427-in-ap-mode.patch | 73 | ||||
-rw-r--r-- | queue-2.6.32/hung_task-fix-false-positive-during-vfork.patch | 52 | ||||
-rw-r--r-- | queue-2.6.32/series | 2 |
3 files changed, 127 insertions, 0 deletions
diff --git a/queue-2.6.32/ath9k-fix-kernel-panic-in-ar2427-in-ap-mode.patch b/queue-2.6.32/ath9k-fix-kernel-panic-in-ar2427-in-ap-mode.patch new file mode 100644 index 0000000..18ea4aa --- /dev/null +++ b/queue-2.6.32/ath9k-fix-kernel-panic-in-ar2427-in-ap-mode.patch @@ -0,0 +1,73 @@ +From b25bfda38236f349cde0d1b28952f4eea2148d3f Mon Sep 17 00:00:00 2001 +From: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> +Date: Mon, 26 Dec 2011 10:42:15 +0530 +Subject: ath9k: Fix kernel panic in AR2427 in AP mode + +From: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> + +commit b25bfda38236f349cde0d1b28952f4eea2148d3f upstream. + +don't do aggregation related stuff for 'AP mode client power save +handling' if aggregation is not enabled in the driver, otherwise it +will lead to panic because those data structures won't be never +intialized in 'ath_tx_node_init' if aggregation is disabled + + EIP is at ath_tx_aggr_wakeup+0x37/0x80 [ath9k] + EAX: e8c09a20 EBX: f2a304e8 ECX: 00000001 EDX: 00000000 + ESI: e8c085e0 EDI: f2a304ac EBP: f40e1ca4 ESP: f40e1c8c + DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 + Process swapper/1 (pid: 0, ti=f40e0000 task=f408e860 + task.ti=f40dc000) + Stack: + 0001e966 e8c09a20 00000000 f2a304ac e8c085e0 f2a304ac + f40e1cb0 f8186741 + f8186700 f40e1d2c f922988d f2a304ac 00000202 00000001 + c0b4ba43 00000000 + 0000000f e8eb75c0 e8c085e0 205b0001 34383220 f2a304ac + f2a30000 00010020 + Call Trace: + [<f8186741>] ath9k_sta_notify+0x41/0x50 [ath9k] + [<f8186700>] ? ath9k_get_survey+0x110/0x110 [ath9k] + [<f922988d>] ieee80211_sta_ps_deliver_wakeup+0x9d/0x350 + [mac80211] + [<c018dc75>] ? __module_address+0x95/0xb0 + [<f92465b3>] ap_sta_ps_end+0x63/0xa0 [mac80211] + [<f9246746>] ieee80211_rx_h_sta_process+0x156/0x2b0 + [mac80211] + [<f9247d1e>] ieee80211_rx_handlers+0xce/0x510 [mac80211] + [<c018440b>] ? trace_hardirqs_on+0xb/0x10 + [<c056936e>] ? skb_queue_tail+0x3e/0x50 + [<f9248271>] ieee80211_prepare_and_rx_handle+0x111/0x750 + [mac80211] + [<f9248bf9>] ieee80211_rx+0x349/0xb20 [mac80211] + [<f9248949>] ? ieee80211_rx+0x99/0xb20 [mac80211] + [<f818b0b8>] ath_rx_tasklet+0x818/0x1d00 [ath9k] + [<f8187a75>] ? ath9k_tasklet+0x35/0x1c0 [ath9k] + [<f8187a75>] ? ath9k_tasklet+0x35/0x1c0 [ath9k] + [<f8187b33>] ath9k_tasklet+0xf3/0x1c0 [ath9k] + [<c0151b7e>] tasklet_action+0xbe/0x180 + +Cc: Senthil Balasubramanian <senthilb@qca.qualcomm.com> +Cc: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> +Reported-by: Ashwin Mendonca <ashwinloyal@gmail.com> +Tested-by: Ashwin Mendonca <ashwinloyal@gmail.com> +Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> +Signed-off-by: John W. Linville <linville@tuxdriver.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/net/wireless/ath/ath9k/main.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/net/wireless/ath/ath9k/main.c ++++ b/drivers/net/wireless/ath/ath9k/main.c +@@ -2472,6 +2472,9 @@ static void ath9k_sta_notify(struct ieee + struct ath_wiphy *aphy = hw->priv; + struct ath_softc *sc = aphy->sc; + ++ if (!(sc->sc_flags & SC_OP_TXAGGR)) ++ return; ++ + switch (cmd) { + case STA_NOTIFY_ADD: + ath_node_attach(sc, sta); diff --git a/queue-2.6.32/hung_task-fix-false-positive-during-vfork.patch b/queue-2.6.32/hung_task-fix-false-positive-during-vfork.patch new file mode 100644 index 0000000..847143f --- /dev/null +++ b/queue-2.6.32/hung_task-fix-false-positive-during-vfork.patch @@ -0,0 +1,52 @@ +From f9fab10bbd768b0e5254e53a4a8477a94bfc4b96 Mon Sep 17 00:00:00 2001 +From: Mandeep Singh Baines <msb@chromium.org> +Date: Tue, 3 Jan 2012 14:41:13 -0800 +Subject: hung_task: fix false positive during vfork + +From: Mandeep Singh Baines <msb@chromium.org> + +commit f9fab10bbd768b0e5254e53a4a8477a94bfc4b96 upstream. + +vfork parent uninterruptibly and unkillably waits for its child to +exec/exit. This wait is of unbounded length. Ignore such waits +in the hung_task detector. + +Signed-off-by: Mandeep Singh Baines <msb@chromium.org> +Reported-by: Sasha Levin <levinsasha928@gmail.com> +LKML-Reference: <1325344394.28904.43.camel@lappy> +Cc: Linus Torvalds <torvalds@linux-foundation.org> +Cc: Ingo Molnar <mingo@elte.hu> +Cc: Peter Zijlstra <peterz@infradead.org> +Cc: Andrew Morton <akpm@linux-foundation.org> +Cc: John Kacur <jkacur@redhat.com> +Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + kernel/hung_task.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +--- a/kernel/hung_task.c ++++ b/kernel/hung_task.c +@@ -74,11 +74,17 @@ static void check_hung_task(struct task_ + + /* + * Ensure the task is not frozen. +- * Also, when a freshly created task is scheduled once, changes +- * its state to TASK_UNINTERRUPTIBLE without having ever been +- * switched out once, it musn't be checked. ++ * Also, skip vfork and any other user process that freezer should skip. + */ +- if (unlikely(t->flags & PF_FROZEN || !switch_count)) ++ if (unlikely(t->flags & (PF_FROZEN | PF_FREEZER_SKIP))) ++ return; ++ ++ /* ++ * When a freshly created task is scheduled once, changes its state to ++ * TASK_UNINTERRUPTIBLE without having ever been switched out once, it ++ * musn't be checked. ++ */ ++ if (unlikely(!switch_count)) + return; + + if (switch_count != t->last_switch_count) { diff --git a/queue-2.6.32/series b/queue-2.6.32/series index 1794641..0a6e94d 100644 --- a/queue-2.6.32/series +++ b/queue-2.6.32/series @@ -5,3 +5,5 @@ vfs-__read_cache_page-should-use-gfp-argument-rather-than-gfp_kernel.patch arm-imx-fix-pwm-period-value.patch arm-7220-1-mmc-mmci-fixup-error-handling-for-dma.patch watchdog-hpwdt-changes-to-handle-nx-secure-bit-in-32bit-path.patch +hung_task-fix-false-positive-during-vfork.patch +ath9k-fix-kernel-panic-in-ar2427-in-ap-mode.patch |