Subject : [REGRESSION] EFI boot on x86 fails in .32 Submitter : Matthew Garrett <mjg59@srcf.ucam.org> Date : 2009-10-20 0:34 References : http://marc.info/?l=linux-kernel&m=125599887314290&w=4 Handled-By : Feng Tang <feng.tang@intel.com> This entry is being used for tracking a regression from 2.6.31. Please don't close it until the problem is fixed in the mainline.
commit 7bd867dfb4e0357e06a3211ab2bd0e714110def3 Author: Feng Tang <feng.tang@intel.com> Date: Thu Sep 10 10:48:56 2009 +0800 x86: Move get/set_wallclock to x86_platform_ops Signed-off-by: Feng Tang <feng.tang@intel.com> LKML-Reference: <new-submission> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> First-Bad-Commit : 7bd867dfb4e0357e06a3211ab2bd0e714110def3
Following commit in 2.6.32-rc6 fixes the bug. Thanks, Feng ----------------------- commit 772be899bc022ef2b911c3611b487d417e3269c3 Author: Feng Tang <feng.tang@intel.com> Date: Tue Oct 20 12:54:02 2009 +0800 x86: Make EFI RTC function depend on 32bit again The EFI RTC functions are only available on 32 bit. commit 7bd867df (x86: Move get/set_wallclock to x86_platform_ops) removed the 32bit dependency which leads to boot crashes on 64bit EFI systems. Add the dependency back. Solves: http://bugzilla.kernel.org/show_bug.cgi?id=14466 Tested-by: Matthew Garrett <mjg59@srcf.ucam.org> Signed-off-by: Feng Tang <feng.tang@intel.com> LKML-Reference: <20091020125402.028d66d5@feng-desktop> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> diff --git a/arch/x86/kernel/efi.c b/arch/x86/kernel/efi.c index ad5bd98..cdcfb12 100644 --- a/arch/x86/kernel/efi.c +++ b/arch/x86/kernel/efi.c @@ -454,8 +454,10 @@ void __init efi_init(void) if (add_efi_memmap) do_add_efi_memmap(); +#ifdef CONFIG_X86_32 x86_platform.get_wallclock = efi_get_time; x86_platform.set_wallclock = efi_set_rtc_mmss; +#endif /* Setup for EFI runtime service */ reboot_type = BOOT_EFI;