Re: Linux 2.6.9-rc4 - pls test (and no more patches)

Nick Piggin
2004-10-11T10:01:04Z

[-- Attachment #1: Type: text/plain, Size: 2042 bytes --]

Linus Torvalds wrote:
> Ok,
> trying to make ready for the real 2.6.9 in a week or so, so please give
> this a beating, and if you have pending patches, please hold on to them
> for a bit longer, until after the 2.6.9 release. It would be good to have
> a 2.6.9 that doesn't need a dot-release immediately ;)
>
> The appended shortlog gives a pretty good idea of what has been going on.
> Mostly small stuff, with some architecture updates and an ACPI update
> thrown in for good measure.
>
> (The ACPI update fixes broken AML with implied returns, and in particular
> the Compaq Evo notebook fan control. Yay! Guess who has one..)
>
> Linus
>

ACPI still explodes on my old PII and stops it booting. (I've reported it
to Len a few times but he seems to be ignoring me).

Anyway, it is oopsing in drivers/acpi/scan.c line 207 where element
(which is NULL) gets dereferenced.

Adding a WARN_ON and return AE_BAD_PARAMETER for the element==NULL case
gives the following:

Badness in acpi_bus_extract_wakeup_device_power_package at drivers/acpi/scan.c:208
[<c021f8bf>] acpi_bus_extract_wakeup_device_power_package+0xfe/0x14b
[<c021f941>] acpi_bus_get_wakeup_device_flags+0x35/0x89
[<c021ff83>] acpi_bus_add+0xd4/0x152
[<c0220105>] acpi_bus_scan+0x104/0x156
[<c03d7742>] acpi_scan_init+0x48/0x5e
[<c03c57f4>] do_initcalls+0x54/0xc0
[<c0100410>] init+0x0/0x100
[<c0100410>] init+0x0/0x100
[<c010043a>] init+0x2a/0x100
[<c0102078>] kernel_thread_helper+0x0/0x18
[<c010207d>] kernel_thread_helper+0x5/0x18
[<c0100410>] init+0x0/0x100
[<c010043a>] init+0x2a/0x100
[<c0102078>] kernel_thread_helper+0x0/0x18
[<c010207d>] kernel_thread_helper+0x5/0x18

The ACPI bios on this thing has always seemed to be pretty broken, but
this at least allows the 'power' button to continue to work (the only
reason why I want ACPI).

Hmm... I don't want to hold up the release for this isolated problem.
Maybe if you're forced to do another -rc I could send in a trivial two
liner? (what's the policy with such a situation?)

[-- Attachment #2: acpi-fix.patch --]
[-- Type: text/x-patch, Size: 646 bytes --]

---

linux-2.6-npiggin/drivers/acpi/scan.c | 2 ++
1 files changed, 2 insertions(+)

diff -puN drivers/acpi/scan.c~acpi-fix drivers/acpi/scan.c
--- linux-2.6/drivers/acpi/scan.c~acpi-fix 2004-10-11 19:44:36.000000000 +1000
+++ linux-2.6-npiggin/drivers/acpi/scan.c 2004-10-11 19:44:51.000000000 +1000
@@ -204,6 +204,8 @@ acpi_bus_extract_wakeup_device_power_pac
return AE_BAD_PARAMETER;

element = &(package->package.elements[0]);
+ if (!element)
+ return AE_BAD_PARAMETER;
if (element->type == ACPI_TYPE_PACKAGE) {
if ((element->package.count < 2) ||
(element->package.elements[0].type != ACPI_TYPE_LOCAL_REFERENCE) ||

_