diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2011-06-24 10:52:54 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2011-06-24 10:52:54 -0400 |
commit | 6998d764d48709ce7d2a23afbf1ef8fe1ff7e796 (patch) | |
tree | 922ba4d36daa9e686d372b6359a4c89ba3fe50ba | |
parent | 899ca54ff259b1b3b78d2c6d6c38ec71aaaf56cd (diff) | |
download | longterm-queue-2.6.34-6998d764d48709ce7d2a23afbf1ef8fe1ff7e796.tar.gz |
oprofile: delete amd init patch; it has issues
As seen on stable mailing list 06/24/2011:
> ---
> > arch/x86/oprofile/op_model_amd.c | 24 ++++++++++++++++--------
> > 1 files changed, 16 insertions(+), 8 deletions(-)
This patch introduces a sleeping-while-atomic bug. There is another
upstream fix on top, see:
commit 3d2606f42984613d324ad3047cf503bcddc3880a
Author: Robert Richter <robert.richter@amd.com>
Date: Fri May 20 09:46:54 2011 +0200
oprofile, x86: Enable preemption during pci device setup in IBS init
This fix should be applied too (or instead).
-Robert
However, the 3d2606 patch differs too wildly from 2.6.34 to allow
it to be used here. So leave things well enough alone for now.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | queue/arch-x86-oprofile-op_model_amd.c-Perform-initialisat.patch | 81 | ||||
-rw-r--r-- | queue/series | 3 |
2 files changed, 0 insertions, 84 deletions
diff --git a/queue/arch-x86-oprofile-op_model_amd.c-Perform-initialisat.patch b/queue/arch-x86-oprofile-op_model_amd.c-Perform-initialisat.patch deleted file mode 100644 index e7db4dc..0000000 --- a/queue/arch-x86-oprofile-op_model_amd.c-Perform-initialisat.patch +++ /dev/null @@ -1,81 +0,0 @@ -From e855ffc94b91d40a6564b65dd781567c251bb10b Mon Sep 17 00:00:00 2001 -From: Robert Richter <robert.richter@amd.com> -Date: Mon, 3 Jan 2011 12:15:14 +0100 -Subject: [PATCH] arch/x86/oprofile/op_model_amd.c: Perform initialisation on - a single CPU - -commit c7c25802b39c443b3745cfa973dc49a97a3491f8 upstream. - -Disable preemption in init_ibs(). The function only checks the -ibs capabilities and sets up pci devices (if necessary). It runs -only on one cpu but operates with the local APIC and some MSRs, -thus it is better to disable preemption. - -[ 7.034377] BUG: using smp_processor_id() in preemptible [00000000] code: modprobe/483 -[ 7.034385] caller is setup_APIC_eilvt+0x155/0x180 -[ 7.034389] Pid: 483, comm: modprobe Not tainted 2.6.37-rc1-20101110+ #1 -[ 7.034392] Call Trace: -[ 7.034400] [<ffffffff812a2b72>] debug_smp_processor_id+0xd2/0xf0 -[ 7.034404] [<ffffffff8101e985>] setup_APIC_eilvt+0x155/0x180 -[ ... ] - -Addresses https://bugzilla.kernel.org/show_bug.cgi?id=22812 - -Reported-by: <atswartz@gmail.com> -Signed-off-by: Robert Richter <robert.richter@amd.com> -Cc: oprofile-list@lists.sourceforge.net <oprofile-list@lists.sourceforge.net> -Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> -Cc: Frederic Weisbecker <fweisbec@gmail.com> -Cc: Rafael J. Wysocki <rjw@sisk.pl> -Cc: Dan Carpenter <error27@gmail.com> -Cc: Andrew Morton <akpm@linux-foundation.org> -LKML-Reference: <20110103111514.GM4739@erda.amd.com> -[ small cleanups ] -Signed-off-by: Ingo Molnar <mingo@elte.hu> -Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> - -diff --git a/arch/x86/oprofile/op_model_amd.c b/arch/x86/oprofile/op_model_amd.c -index 090cbbe..c8f46aa 100644 ---- a/arch/x86/oprofile/op_model_amd.c -+++ b/arch/x86/oprofile/op_model_amd.c -@@ -497,21 +497,29 @@ static void clear_ibs_nmi(void) - on_each_cpu(apic_clear_ibs_nmi_per_cpu, NULL, 1); - } - --/* initialize the APIC for the IBS interrupts if available */ -+/* -+ * check and reserve APIC extended interrupt LVT offset for IBS if -+ * available -+ * -+ * init_ibs() preforms implicitly cpu-local operations, so pin this -+ * thread to its current CPU -+ */ -+ - static void ibs_init(void) - { -- ibs_caps = get_ibs_caps(); -+ preempt_disable(); - -+ ibs_caps = get_ibs_caps(); - if (!ibs_caps) -- return; -+ goto out; - -- if (init_ibs_nmi()) { -+ if (init_ibs_nmi() < 0) - ibs_caps = 0; -- return; -- } -+ else -+ printk(KERN_INFO "oprofile: AMD IBS detected (0x%08x)\n", ibs_caps); - -- printk(KERN_INFO "oprofile: AMD IBS detected (0x%08x)\n", -- (unsigned)ibs_caps); -+out: -+ preempt_enable(); - } - - static void ibs_exit(void) --- -1.7.4.4 - diff --git a/queue/series b/queue/series index aa1a72d..b4c7657 100644 --- a/queue/series +++ b/queue/series @@ -248,9 +248,6 @@ agp-fix-arbitrary-kernel-memory-writes.patch agp-fix-OOM-and-buffer-overflow.patch udp-Fix-bogus-UFO-packet-generation.patch -# Content taken from v2.6.35.11 -arch-x86-oprofile-op_model_amd.c-Perform-initialisat.patch - # Additional patches from stable list, or other sources epoll-convert-max_user_watches-to-long.patch fs-call-security_d_instantiate-in-d_obtain_alias-V2.patch |