Message ID | alpine.LFD.2.00.0902061350470.26256@localhost.localdomain (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Len Brown wrote: > Thanks for the bisect, Ben. > > Please test the patch below. > > I assume even without the patch, booting with "acpi=off" on your > BIOS-ACPI-disabled box works? (if no, this patch will not solve > all your problems, for you have additional trouble elsewhere) > > I am curious why you're running a CONFIG_ACPI=y kernel > for a box with ACPI disabled. (though yes, it is supposed to work) > > I'm even more curious what bad things happen when > you enable ACPI in the BIOS -- can you let me know > and we can try to fix them so the machine can run as shipped? At one time, these boxes would actually burn out their power supply if you did an 'init 0' with the BIOS configured to shut down the system. It would just suck more and more power (we measured) until the brick smoked, and the motherboard components got very hot as well. I think we were just lucky that the PS died before the MB did. This was a while back, but I believe part of the fix was to disable ACPI so the system couldn't possibly try to power itself down in this manner. I will try your patch, but I'm about to go off for a ~2week vacation, so I probably won't have time to test enabling ACPI and/or compiling a kernel w/out it to see what shakes out. I re-worked my previous patch per Ingo's suggestion and am about to send it off..but please feel free to NAK it if you think it's wrong. I don't really know enough about this area to argue one way or another. Thanks, Ben
Len Brown wrote: > Thanks for the bisect, Ben. > > Please test the patch below. With this patch, performance is fine, and I do not see my smp hack being exercised. I still have ACPI off in the BIOS, and on in the kernel (ie, no change from the original test case). So, this very well could be the fix. Thanks, Ben > diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c > index 775c97a..a885295 100644 > --- a/drivers/acpi/tables.c > +++ b/drivers/acpi/tables.c > @@ -293,7 +293,12 @@ static void __init check_multiple_madt(void) > > int __init acpi_table_init(void) > { > - acpi_initialize_tables(initial_tables, ACPI_MAX_TABLES, 0); > + acpi_status status; > + > + status = acpi_initialize_tables(initial_tables, ACPI_MAX_TABLES, 0); > + if (ACPI_FAILURE(status)) > + return 1; > + > check_multiple_madt(); > return 0; > }
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c index 775c97a..a885295 100644 --- a/drivers/acpi/tables.c +++ b/drivers/acpi/tables.c @@ -293,7 +293,12 @@ static void __init check_multiple_madt(void) int __init acpi_table_init(void) { - acpi_initialize_tables(initial_tables, ACPI_MAX_TABLES, 0); + acpi_status status; + + status = acpi_initialize_tables(initial_tables, ACPI_MAX_TABLES, 0); + if (ACPI_FAILURE(status)) + return 1; + check_multiple_madt(); return 0; }