reboot via bios on X86_64?

From: Miles Fidelman
Date: Mon Apr 09 2012 - 11:39:33 EST


[cc'd to maintainers of reboot.c]

Re. the 2.6.32.5 kernel (currently used in Debian stable), and this seems to apply to
later ones as well:

The reboot code in arch/x86/kernel/reboot.c provides for rebooting through the bios
by either a kernel option of "reboot=bios" or as automatically invoked by quite
a few of the quirks case statements.

But... reboot=bios is enabled only when configured for 32-bit mode - which just bit me
when I moved from a 32bit kernel to a 64bit one on an old P4 box, which hangs on
reboot for all reboot options except reboot=bios when running in 32 bit mode.

Which leads to two questions:

1. What's the logic behind this? Why not enable a bios reboot for 64bit
kernels? Is there any reason why the machine_real_restart code wouldn't
work just as well in 64bit mode? Anybody know the history?

2. Anybody know a workaround, short of patching and compiling a custom
kernel? Are there other paths through the reboot code that can invoke a bios
reboot? [Note: someone suggested trying a kexec-reboot, but that's also
not supported on my configuration (running over a Xen hypervisor).]

Thank you very much,

Miles Fidelman

--
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/