2007-06-04 16:51:46

by James Jarvis

[permalink] [raw]
Subject: DMI_MATCH patch in reboot.c for SFF Dell OptiPlex 745 - fixes hang on reboot

I trust this is the right list...

The following patch enables reboot through BIOS on the Dell Optiplex 745
Small Form Factor base, on which reboot hangs. The larger form factor
does not require this, hence the match on DMI_BOARD_NAME.

--- arch/i386/kernel/reboot.c.orig 2007-06-01 12:22:53.000000000 +0100
+++ arch/i386/kernel/reboot.c 2007-06-04 16:53:36.000000000 +0100
@@ -104,6 +104,15 @@
DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 300/"),
},
},
+ { /* Handle problems with rebooting on Dell Optiplex 745's
SFF*/
+ .callback = set_bios_reboot,
+ .ident = "Dell OptiPlex 745",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 745"),
+ DMI_MATCH(DMI_BOARD_NAME, "0WF810"),
+ },
+ },
{ /* Handle problems with rebooting on Dell 2400's */
.callback = set_bios_reboot,
.ident = "Dell PowerEdge 2400",


2007-06-05 00:49:23

by Robert Hancock

[permalink] [raw]
Subject: Re: DMI_MATCH patch in reboot.c for SFF Dell OptiPlex 745 - fixes hang on reboot

James Jarvis wrote:
> I trust this is the right list...
>
> The following patch enables reboot through BIOS on the Dell Optiplex 745
> Small Form Factor base, on which reboot hangs. The larger form factor
> does not require this, hence the match on DMI_BOARD_NAME.
>
> --- arch/i386/kernel/reboot.c.orig 2007-06-01 12:22:53.000000000 +0100
> +++ arch/i386/kernel/reboot.c 2007-06-04 16:53:36.000000000 +0100
> @@ -104,6 +104,15 @@
> DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 300/"),
> },
> },
> + { /* Handle problems with rebooting on Dell Optiplex 745's
> SFF*/
> + .callback = set_bios_reboot,
> + .ident = "Dell OptiPlex 745",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 745"),
> + DMI_MATCH(DMI_BOARD_NAME, "0WF810"),
> + },
> + },
> { /* Handle problems with rebooting on Dell 2400's */
> .callback = set_bios_reboot,
> .ident = "Dell PowerEdge 2400",

This blacklist seems to be growing. Isn't there something better we can
do here? Can we just reboot through the BIOS by default, is that really
broken on some systems?

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from [email protected]
Home Page: http://www.roberthancock.com/

2007-06-05 09:18:16

by James E. Jarvis

[permalink] [raw]
Subject: Re: DMI_MATCH patch in reboot.c for SFF Dell OptiPlex 745 - fixes hang on reboot

On Mon, 4 Jun 2007, Robert Hancock wrote:

> James Jarvis wrote:
>> I trust this is the right list...
>>
>> The following patch enables reboot through BIOS on the Dell Optiplex 745
>> Small Form Factor base, on which reboot hangs. The larger form factor does
>> not require this, hence the match on DMI_BOARD_NAME.
>>
>> --- arch/i386/kernel/reboot.c.orig 2007-06-01 12:22:53.000000000
>> +0100
>> +++ arch/i386/kernel/reboot.c 2007-06-04 16:53:36.000000000 +0100
>> @@ -104,6 +104,15 @@
>> DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 300/"),
>> },
>> },
>> + { /* Handle problems with rebooting on Dell Optiplex 745's
>> SFF*/
>> + .callback = set_bios_reboot,
>> + .ident = "Dell OptiPlex 745",
>> + .matches = {
>> + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
>> + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 745"),
>> + DMI_MATCH(DMI_BOARD_NAME, "0WF810"),
>> + },
>> + },
>> { /* Handle problems with rebooting on Dell 2400's */
>> .callback = set_bios_reboot,
>> .ident = "Dell PowerEdge 2400",
>
> This blacklist seems to be growing. Isn't there something better we can do
> here? Can we just reboot through the BIOS by default, is that really broken
> on some systems?

Agreed, it is ugly. However I don't like leavng the determination of
whether the system board will only reboot through BIOS to the end user.
Whilst using the kernel boot argument "reboot=b" is an alternative, it
works only _if_ one knows the platform in advance. However our boot media
(and indeed live-cds generally) are used such that this is not practical.

As for whether rebooting through BIOS by default would solve this matter -
I don't know. It may break on some machines. Given that EFI may (???)
replace traditional BIOS in the future is it worth re-engineering this?

James Jarvis
Uinversity of Edinburgh

2007-06-05 11:55:37

by Matthew Garrett

[permalink] [raw]
Subject: Re: DMI_MATCH patch in reboot.c for SFF Dell OptiPlex 745 - fixes hang on reboot

On Mon, Jun 04, 2007 at 06:49:10PM -0600, Robert Hancock wrote:

> This blacklist seems to be growing. Isn't there something better we can
> do here? Can we just reboot through the BIOS by default, is that really
> broken on some systems?

Yes, that breaks a separate set of machines. It would be interesting to
try resetting just by banging the keyboard controller from userspace,
and seeing if that fails in the same way - I suspect that on certain
hardware, part of the shutdown process confuses it in some way.
--
Matthew Garrett | [email protected]