Files
android_kernel_xiaomi_sm8450/arch/x86/kernel
Jeremy Fitzhardinge 0ad5bce740 x86: fix possible x86_64 and EFI regression
Russ Anderson reported a boot crash with EFI and latest mainline:

 BIOS-e820: 00000000fffa0000 - 00000000fffac000 (reserved)
Pid: 0, comm: swapper Not tainted 2.6.27-rc5-00100-gec0c15a-dirty #5

Call Trace:
 [<ffffffff80849195>] early_idt_handler+0x55/0x69
 [<ffffffff80313e52>] __memcpy+0x12/0xa4
 [<ffffffff80859015>] efi_init+0xce/0x932
 [<ffffffff80869c83>] setup_early_serial8250_console+0x2d/0x36a
 [<ffffffff80238688>] __insert_resource+0x18/0xc8
 [<ffffffff8084f6de>] setup_arch+0x3a7/0x632
 [<ffffffff808499ed>] start_kernel+0x91/0x367
 [<ffffffff80849393>] x86_64_start_kernel+0xe3/0xe7
 [<ffffffff808492b0>] x86_64_start_kernel+0x0/0xe7

 RIP 0x10

Such a crash is possible if the CPU in this system is a 64-bit
processor which doesn't support NX (ie, old Intel P4 -based64-bit
processors).

Certainly, if we support such processors, then we should start with
_PAGE_NX initially clear in __supported_pte_flags, and then set it once
we've established that the processor does indeed support NX.  That will
prevent early_ioremap - or anything else - from trying to set it.

The simple fix is to simply call check_efer() earlier.

Reported-by: Russ Anderson <rja@sgi.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-09-12 11:40:57 +02:00
..
2008-07-24 10:47:22 -07:00
2008-07-16 10:58:55 +02:00
2008-07-18 14:35:14 +02:00
2007-10-19 11:53:33 -07:00
2008-01-30 13:31:31 +01:00
2008-09-09 11:54:53 -07:00
2008-01-30 13:31:19 +01:00
2008-07-23 18:00:30 -07:00
2008-07-23 17:55:22 -07:00
2008-07-27 21:43:11 +02:00
2008-07-08 13:16:14 +02:00
2008-07-01 11:03:31 +02:00
2008-04-26 17:35:47 +02:00
2008-06-02 11:55:52 +02:00
2008-01-30 13:33:10 +01:00
2008-07-16 10:54:39 +02:00
2008-04-19 19:19:54 +02:00
2008-04-27 12:00:28 +03:00
2008-08-15 08:35:43 -07:00
2008-07-26 12:00:04 -07:00
2008-08-21 12:42:23 +02:00
2008-07-16 12:15:17 -07:00
2008-06-12 18:05:42 -07:00
2008-07-06 14:01:50 +02:00
2008-07-16 12:15:17 -07:00
2008-01-30 13:31:52 +01:00
2008-07-18 18:51:57 +02:00
2008-08-21 10:01:52 +02:00
2008-08-08 15:22:02 -07:00
2008-05-25 08:58:24 +02:00