linux/arch
Bryan O'Donoghue 322fd620a8 x86, apic: APIC code touches invalid MSR on P5 class machines
commit cbf2829b61 upstream.

Current APIC code assumes MSR_IA32_APICBASE is present for all systems.
Pentium Classic P5 and friends didn't have this MSR. MSR_IA32_APICBASE
was introduced as an architectural MSR by Intel @ P6.

Code paths that can touch this MSR invalidly are when vendor == Intel &&
cpu-family == 5 and APIC bit is set in CPUID - or when you simply pass
lapic on the kernel command line, on a P5.

The below patch stops Linux incorrectly interfering with the
MSR_IA32_APICBASE for P5 class machines. Other code paths exist that
touch the MSR - however those paths are not currently reachable for a
conformant P5.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linux.intel.com>
Link: http://lkml.kernel.org/r/4F8EEDD3.1080404@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-05-07 08:56:32 -07:00
..
alpha alpha: fix 32/64-bit bug in futex support 2012-03-12 10:32:55 -07:00
arm ARM: 7384/1: ThumbEE: Disable userspace TEEHBR access for !CONFIG_ARM_THUMBEE 2012-04-22 16:21:22 -07:00
avr32 avr32: select generic atomic64_t support 2012-03-12 10:32:57 -07:00
blackfin rtc: fix build warnings in defconfigs 2011-06-15 20:04:02 -07:00
cris cris: add missing declaration of kgdb_init() and breakpoint() 2011-08-15 18:31:32 -07:00
frv Merge branch 'setns' 2011-05-28 10:51:01 -07:00
h8300 Merge branch 'setns' 2011-05-28 10:51:01 -07:00
ia64 ia64: fix futex_atomic_cmpxchg_inatomic() 2012-04-22 16:21:23 -07:00
m32r Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
m68k m68k/mac: Add missing platform check before registering platform devices 2012-04-13 08:14:06 -07:00
microblaze Merge branch 'setns' 2011-05-28 10:51:01 -07:00
mips MIPS: PM: Use struct syscore_ops instead of sysdevs for PM (v2) 2011-10-16 14:14:55 -07:00
mn10300 MN10300: asm/uaccess.h needs to #include linux/kernel.h for might_sleep() 2011-06-21 18:31:44 -07:00
parisc fix return type of __atomic64_add_return 2011-08-15 18:31:32 -07:00
powerpc powerpc/pmac: Fix SMP kernels on pre-core99 UP machines 2012-03-23 11:20:52 -07:00
s390 S390: fix tlb flushing for page table pages 2012-04-22 16:21:45 -07:00
score score: fix off-by-one index into syscall table 2012-01-25 17:25:04 -08:00
sh oprofile, arm/sh: Fix oprofile_arch_exit() linkage issue 2012-01-06 14:13:57 -08:00
sparc sparc64: Fix bootup crash on sun4v. 2012-04-22 16:21:24 -07:00
tile Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
um um: fix ubd cow size 2011-11-11 09:36:19 -08:00
unicore32 unicore32: using generic-y format for one line asm-generic files 2011-06-09 16:29:52 +08:00
x86 x86, apic: APIC code touches invalid MSR on P5 class machines 2012-05-07 08:56:32 -07:00
xtensa xtensa: prevent arbitrary read in ptrace 2011-08-04 21:58:39 -07:00
.gitignore
Kconfig mm, powerpc: move the RCU page-table freeing into generic code 2011-05-25 08:39:16 -07:00