android_kernel_xiaomi_sm8350/arch/x86
H. Peter Anvin 829157be59 x86: handle BIOSes which terminate e820 with CF=1 and no SMAP
The proper way to terminate the e820 chain is with %ebx == 0 on the
last legitimate memory block.  However, several BIOSes don't do that
and instead return error (CF = 1) when trying to read off the end of
the list.  For this error return, %eax doesn't necessarily return the
SMAP signature -- correctly so, since %ah should contain an error code
in this case.

To deal with some particularly broken BIOSes, we clear the entire e820
chain if the SMAP signature is missing in the middle, indicating a
plain insane e820 implementation.  However, we need to make the test
for CF = 1 before the SMAP check.

This fixes at least one HP laptop (nc6400) for which none of the
memory-probing methods (e820, e801, 88) functioned fully according to
spec.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-02-26 12:55:52 +01:00
..
boot x86: handle BIOSes which terminate e820 with CF=1 and no SMAP 2008-02-26 12:55:52 +01:00
configs x86, core: remove CONFIG_FORCED_INLINING 2008-02-09 23:24:09 +01:00
crypto [CRYPTO] twofish: Merge common glue code 2008-01-14 17:07:57 +11:00
ia32 Sanitize the type of struct user.u_ar0 2008-02-07 08:42:30 -08:00
kernel x86: do not promote TM3x00/TM5x00 to i686-class 2008-02-26 12:55:50 +01:00
kvm kvm: i386 fix 2008-02-05 09:44:06 -08:00
lguest x86/lguest: fix pgdir pmd index calculation 2008-02-26 12:55:49 +01:00
lib x86: clean up csum-wrappers_64.c some more 2008-02-19 16:18:32 +01:00
mach-default
mach-es7000
mach-generic
mach-rdc321x x86: add support for the RDC R-321x SoC 2008-01-30 13:33:36 +01:00
mach-visws x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-voyager calibrate_delay() must be __cpuinit 2008-02-06 10:41:08 -08:00
math-emu x86: arch/x86/math-emu/errors.c: fix printk warnings 2008-01-30 13:32:13 +01:00
mm x86: make DEBUG_PAGEALLOC and CPA more robust 2008-02-26 12:55:50 +01:00
oprofile x86: rename stack_pointer to kernel_trap_sp 2008-01-30 13:33:16 +01:00
pci PCI: irq: patch for Intel ICH10 DeviceID's 2008-02-21 15:34:36 -08:00
power x86 cleanup: suspend_asm_64.S - use X86_CR4_PGE instead of numeric value 2008-02-19 16:18:33 +01:00
vdso x86: vdso_install fix 2008-02-11 20:50:09 -08:00
video
xen xen: unpin initial Xen pagetable once we're finished with it 2008-02-13 16:20:35 +01:00
Kconfig Mark CC_STACKPROTECTOR as being BROKEN 2008-02-22 08:21:38 -08:00
Kconfig.cpu x86: don't use P6_NOPs if compiling with CONFIG_X86_GENERIC 2008-02-26 12:55:51 +01:00
Kconfig.debug x86: change IO delay back to 0x80 2008-02-19 16:18:34 +01:00
Makefile x86: fix vdso_install breaks user "make install" 2008-02-19 16:18:34 +01:00
Makefile_32.cpu