kernel_optimize_test/arch
Cyrill Gorcunov 103428e57b x86, apic: Fix dummy apic read operation together with broken MP handling
Ingo Molnar reported that read_apic is buggy novadays:

[    0.000000] Using APIC driver default
[    0.000000] SMP: Allowing 1 CPUs, 0 hotplug CPUs
[    0.000000] Local APIC disabled by BIOS -- you can enable it with "lapic"
[    0.000000] APIC: disable apic facility
[    0.000000] ------------[ cut here ]------------
[    0.000000] WARNING: at arch/x86/kernel/apic/apic.c:254 native_apic_read_dummy+0x2d/0x3b()
[    0.000000] Hardware name: HP OmniBook PC

Indeed we still rely on apic->read operation for SMP compiled
kernel. And instead of disfigure the SMP code with #ifdef we
allow to call apic->read. To capture any unexpected results
we check for apic->read being called for sane reason via
WARN_ON_ONCE but(!) instead of OR we should use AND logical
operation (thanks Yinghai for spotting the root of the problem).

Along with that we could be have bad MP table and we are
to fix it that way no SMP started and no complains about
BIOS bug if apic was just disabled via command line.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Yinghai Lu <yinghai@kernel.org>
LKML-Reference: <20090607124840.GD4547@lenovo>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-06-07 16:08:05 +02:00
..
alpha Merge branch 'linus' into irq/numa 2009-06-01 21:06:21 +02:00
arm Merge branch 'linus' into irq/numa 2009-06-01 21:06:21 +02:00
avr32 avr32: drop unused CLEAN_FILES 2009-05-01 10:54:00 +02:00
blackfin flat: fix data sections alignment 2009-05-29 08:40:02 -07:00
cris Merge branch 'linus' into irq/numa 2009-06-01 21:06:21 +02:00
frv FRV: Use __INIT macro instead of .text.init. 2009-04-27 19:46:30 -07:00
h8300 flat: fix data sections alignment 2009-05-29 08:40:02 -07:00
ia64 Merge branch 'x86/apic' into irq/numa 2009-05-12 12:17:36 +02:00
m32r flat: fix data sections alignment 2009-05-29 08:40:02 -07:00
m68k flat: fix data sections alignment 2009-05-29 08:40:02 -07:00
m68knommu Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu 2009-04-24 08:45:53 -07:00
microblaze microblaze: Fix kind-of-intr checking against number of interrupts 2009-05-18 14:47:42 +02:00
mips Merge branch 'linus' into irq/numa 2009-06-01 21:06:21 +02:00
mn10300 mn10300: convert to use __HEAD and HEAD_TEXT macros. 2009-04-26 09:20:38 -07:00
parisc irq: change ->set_affinity() to return status 2009-04-28 12:21:16 +02:00
powerpc Merge branch 'linus' into irq/numa 2009-06-01 21:06:21 +02:00
s390 s390: convert to use __HEAD and HEAD_TEXT macros. 2009-04-26 09:20:39 -07:00
sh flat: fix data sections alignment 2009-05-29 08:40:02 -07:00
sparc Merge branch 'linus' into irq/numa 2009-06-01 21:06:21 +02:00
um uml: kill a kconfig warning 2009-04-21 13:41:50 -07:00
x86 x86, apic: Fix dummy apic read operation together with broken MP handling 2009-06-07 16:08:05 +02:00
xtensa xtensa: Fix linker script to include .literal sections 2009-05-11 23:40:33 -07:00
.gitignore
Kconfig mutex: have non-spinning mutexes on s390 by default 2009-04-09 19:28:24 +02:00