diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2005-06-25 17:57:41 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-25 19:24:46 -0400 |
commit | 9635b47d910223745258768418003580ef7dba17 (patch) | |
tree | b61adfddad3bf3069c9fa379b34805420b4ef85c /arch/i386/kernel/setup.c | |
parent | 8f43d03fe2c4962c11d8227ac9505e590bad758b (diff) |
[PATCH] kexec: x86: local apic fix
From: "Maciej W. Rozycki" <macro@linux-mips.org>
Fix a kexec problem whcih causes local APIC detection failure.
The problem is detect_init_APIC() is called early, before the command line
have been processed. Therefore "lapic" (and "nolapic") have not been seen,
yet.
Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: Eric Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/i386/kernel/setup.c')
-rw-r--r-- | arch/i386/kernel/setup.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c index cba67e4ba0af..f1ad9fdeaad8 100644 --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <linux/edd.h> | 44 | #include <linux/edd.h> |
45 | #include <linux/nodemask.h> | 45 | #include <linux/nodemask.h> |
46 | #include <video/edid.h> | 46 | #include <video/edid.h> |
47 | #include <asm/apic.h> | ||
47 | #include <asm/e820.h> | 48 | #include <asm/e820.h> |
48 | #include <asm/mpspec.h> | 49 | #include <asm/mpspec.h> |
49 | #include <asm/setup.h> | 50 | #include <asm/setup.h> |
@@ -835,6 +836,16 @@ static void __init parse_cmdline_early (char ** cmdline_p) | |||
835 | #endif /* CONFIG_X86_LOCAL_APIC */ | 836 | #endif /* CONFIG_X86_LOCAL_APIC */ |
836 | #endif /* CONFIG_ACPI_BOOT */ | 837 | #endif /* CONFIG_ACPI_BOOT */ |
837 | 838 | ||
839 | #ifdef CONFIG_X86_LOCAL_APIC | ||
840 | /* enable local APIC */ | ||
841 | else if (!memcmp(from, "lapic", 5)) | ||
842 | lapic_enable(); | ||
843 | |||
844 | /* disable local APIC */ | ||
845 | else if (!memcmp(from, "nolapic", 6)) | ||
846 | lapic_disable(); | ||
847 | #endif /* CONFIG_X86_LOCAL_APIC */ | ||
848 | |||
838 | /* | 849 | /* |
839 | * highmem=size forces highmem to be exactly 'size' bytes. | 850 | * highmem=size forces highmem to be exactly 'size' bytes. |
840 | * This works even on boxes that have no highmem otherwise. | 851 | * This works even on boxes that have no highmem otherwise. |