Re: DMI_MATCH patch in reboot.c for SFF Dell OptiPlex 745 - fixes hang on reboot

James E. Jarvis
2007-06-05T09:18:16Z

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