On Fri, Apr 04, 2014 at 08:38:42AM -0700, Linus Torvalds wrote:
On Fri, Apr 4, 2014 at 8:12 AM, Matthew Garrett <mjg59@xxxxxxxxxxxxx> wrote:Which is almost certainly because the other reboot methods are trapping
Production hardware should never require CF9.That's total BS.
The fact is, we may be doing something wrong, but ACPI fails on a
*lot* of systems. A huge swath of Dell machines in particular for some
reason (laptops, desktops, _and_ now there's tablet reports).
into SMI and hitting some hardware that we've left in a different state
to Windows. CF9 may work around that, but the actual fix is to figure
out why the firmware is wedging and fix it. Otherwise we're going to
spend the rest of our lives maintaining a giant DMI list that's still
going to be missing entries and users are going to be sad.
The keyboard controller is sadly unreliable too, although I reallySee: SMI. Or in the triple fault case, because there's some early init
don't understand why. Even when a legacy keyboard controller exists
(which isn't as universal as you'd think, even though the *hardware*
is pretty much guaranteed to be there in the chipset, it can be
disabled) there seem to be machines where the reset line isn't hooked
up. Don't ask me why. Same goes for the triple fault failure case.
code that has the same issue. As far as I can tell Windows never triple
faults, so again I think this is our fault at some level.
It would be interesting if somebody can figure out *exactly* whatWindows hits the keyboard controller and then tries the ACPI vector. It
Windows does, because the fact that a lot of Dell machines need quirks
almost certainly means that it's _us_ doing something wrong. Dell
doesn't generally do lots of fancy odd things. I pretty much guarantee
it's because we've done something odd that Windows doesn't do.
then sleeps for a short period, then tries the keyboard controller again
and the ACPI vector again. This means that systems which put cf9 in the
ACPI vector tend to work because of the second write, which is obviously
not what the spec envisaged but here we are. The only time it hits CF9
is when the ACPI tables tell it to.