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

From: Nick Piggin
Date: Mon Oct 11 2004 - 05:02:38 EST


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?)



---

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) ||

_