linux/arch
Stephane Eranian 9a9b01c04e perf,x86: fix kernel crash with PEBS/BTS after suspend/resume
commit 1d9d8639c0 upstream.

This patch fixes a kernel crash when using precise sampling (PEBS)
after a suspend/resume. Turns out the CPU notifier code is not invoked
on CPU0 (BP). Therefore, the DS_AREA (used by PEBS) is not restored properly
by the kernel and keeps it power-on/resume value of 0 causing any PEBS
measurement to crash when running on CPU0.

The workaround is to add a hook in the actual resume code to restore
the DS Area MSR value. It is invoked for all CPUS. So for all but CPU0,
the DS_AREA will be restored twice but this is harmless.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-03-20 13:04:59 -07:00
..
alpha alpha: Add missing RCU idle APIs on idle loop 2012-10-13 05:38:54 +09:00
arm ARM: 7663/1: perf: fix ARMv7 EVTYPE_MASK to include NSH bit 2013-03-14 11:29:50 -07:00
avr32 avr32: fix nop compile fails from system.h split up 2012-04-04 08:23:44 -07:00
blackfin blackfin: fix ifdef fustercluck in mach-bf538/boards/ezkit.c 2012-04-26 14:46:51 -04:00
c6x irq: Kill pointless irqd_to_hw export 2012-04-10 22:39:17 -06:00
cris CRIS: fix I/O macros 2013-01-11 09:07:17 -08:00
frv frv: Add missing RCU idle APIs on idle loop 2012-10-13 05:38:54 +09:00
h8300 h8300: Add missing RCU idle APIs on idle loop 2012-10-13 05:38:53 +09:00
hexagon hexagon: add missing cpu.h include 2012-04-23 12:57:24 -05:00
ia64 ia64: Add missing RCU idle APIs on idle loop 2012-10-13 05:38:53 +09:00
m32r m32r: Add missing RCU idle APIs on idle loop 2012-10-13 05:38:55 +09:00
m68k m68k: fix sigset_t accessor functions 2012-11-26 11:37:46 -08:00
microblaze microblaze: Do not select GENERIC_GPIO by default 2012-06-10 00:36:05 +09:00
mips MIPS: Fix poweroff failure when HOTPLUG_CPU configured. 2013-01-17 08:50:42 -08:00
mn10300 mn10300: Add missing RCU idle APIs on idle loop 2012-10-13 05:38:54 +09:00
openrisc Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
parisc Purge existing TLB entries in set_pte_at and ptep_set_wrprotect 2013-02-28 06:59:05 -08:00
powerpc powerpc/kexec: Disable hard IRQ before kexec 2013-02-28 06:59:04 -08:00
s390 s390/kvm: Fix store status for ACRS/FPRS 2013-02-28 06:59:01 -08:00
score score: Add missing RCU idle APIs on idle loop 2012-10-13 05:38:55 +09:00
sh sh: Fix FDPIC binary loader 2013-01-21 11:45:14 -08:00
sparc sparc: huge_ptep_set_* functions need to call set_huge_pte_at() 2013-01-11 09:06:59 -08:00
tile arch/tile: avoid generating .eh_frame information in modules 2012-10-28 10:14:12 -07:00
um um: Implement a custom pte_same() function 2012-06-01 15:18:18 +08:00
unicore32 Merge branch 'for-linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping 2012-04-04 17:13:43 -07:00
x86 perf,x86: fix kernel crash with PEBS/BTS after suspend/resume 2013-03-20 13:04:59 -07:00
xtensa xtensa: Add missing RCU idle APIs on idle loop 2012-10-13 05:38:54 +09:00
.gitignore
Kconfig Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2012-03-29 14:49:45 -07:00