From: Matthew Garrett on
I know that I'm partially responsible for this, but again this strongly
indicates that we're doing something wrong. I'll look into how Windows
behaves.

--
Matthew Garrett | mjg59(a)srcf.ucam.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Matthew Garrett on
Can you try with this patch? From what I can see of Apple ACPI tables,
it should be functionally equivalent but less hate inducing.

commit 9c8c25fda1b993a81b1a3a9bc4e9e8b0d7ac4062
Author: Matthew Garrett <mjg(a)redhat.com>
Date: Tue Jun 1 14:40:55 2010 -0400

x86: Default to using ACPI for reboot

Running a hacked qemu with a modified seabios image that declares support
for reboot via ACPI shows that Windows will use the ACPI reboot vector
before falling back to hitting i8042. Change the default reboot method to
match this. This looks like it should improve life for Apples, which
declare the cf9 reboot method via ACPI, don't have a competent i8042
emulation and currently have a large DMI whitelist.

Signed-off-by: Matthew Garrett <mjg(a)redhat.com>

diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index 8e1aac8..0a04c4b 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -34,7 +34,7 @@ EXPORT_SYMBOL(pm_power_off);

static const struct desc_ptr no_idt = {};
static int reboot_mode;
-enum reboot_type reboot_type = BOOT_KBD;
+enum reboot_type reboot_type = BOOT_ACPI;
int reboot_force;

#if defined(CONFIG_X86_32) && defined(CONFIG_SMP)

--
Matthew Garrett | mjg59(a)srcf.ucam.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Matthew Garrett on
On Tue, Jun 01, 2010 at 12:14:07PM -0700, Justin P. Mattock wrote:

> o.k. applied.. unfortunately
> I get init telling me it's rebooting,
> then, nothing but a black screen.

Could you send me the output of acpidump on this machine? Also, try
building the following app and running it as root:

#include <sys/io.h>

int main() {
outb(6, 0xcf9);
return 0;
}

and see if the machine reboots.

--
Matthew Garrett | mjg59(a)srcf.ucam.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Matthew Garrett on
On Tue, Jun 01, 2010 at 01:06:17PM -0700, Justin P. Mattock wrote:

> nope.. here is what I get:
> ./reboot
> Segmentation fault (core dumped)

Sorry, put

iopl(3);

before the outb.

--
Matthew Garrett | mjg59(a)srcf.ucam.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Matthew Garrett on
On Tue, Jun 01, 2010 at 01:17:42PM -0700, Justin P. Mattock wrote:

> still craps out.
> this is what the code looks like now:

You're running it as root, right? It behaves exactly as I'd expect here.

--
Matthew Garrett | mjg59(a)srcf.ucam.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/