Re: R: [Bug #14886] Asus P2B-DS not detected as SMP moterboard

From: Feng Tang
Date: Tue Jan 26 2010 - 22:35:37 EST


On Tue, 26 Jan 2010 23:53:30 +0800
Dmitry Artamonow <mad_soft@xxxxxxxx> wrote:


> Hi!
> I'm also using P2B-DS and can confirm that starting with kernel 2.6.32
> SMP stopped working (and don't work still - tested with current git
> v2.6.33-rc5-238-g158c168) The issue seems to have something to do
> with the fact that ACPI is blacklisted on P2B-DS. I used to
> workaround this bug on newer kernels (>=2.6.32) by passing
> "acpi=force" in kernel arguments. Finally, yesterday I found some
> time to write simple automated bisection script and leaved it to run
> on machine overnight. Here's result:
> ---------------------------------------------------------------------------
> e5b8fc6ac158f65598f58dba2c0d52ba3b412f52 is the first bad commit
> commit e5b8fc6ac158f65598f58dba2c0d52ba3b412f52 Author: Len Brown
> <len.brown@xxxxxxxxx> Date: Tue Jul 7 23:22:58 2009 -0400
>
> ACPI: check acpi_disabled in acpi_table_parse() and
> acpi_table_parse_entries()
> Allow consumers of the
> acpi_table_parse()/acpi_table_parse_entries() API to gracefully
> handle the acpi_disabled=1 case via return value rather than checking
> the global flag themselves.
> Signed-off-by: Feng Tang <feng.tang@xxxxxxxxx>
> Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
> ---------------------------------------------------------------------------
Hi Dmitry,

That commit is
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index 646d39c..f336bca 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -213,6 +213,9 @@ acpi_table_parse_entries(char *id,
unsigned long table_end;
acpi_size tbl_size;

+ if (acpi_disabled)
+ return -ENODEV;
+
if (!handler)
return -EINVAL;

@@ -277,6 +280,9 @@ int __init acpi_table_parse(char *id, acpi_table_handler handler)
struct acpi_table_header *table = NULL;
acpi_size tbl_size;

+ if (acpi_disabled)
+ return -ENODEV;
+
if (!handler)
return -EINVAL;

Which only enforces the "acpi_disabled" check and should have no
logical problem.

And I guess your platform is blacklisted and acpi_disabled is set to 1,
while it still need parse ACPI tables to get SMP info. So I would suggest
to add a "acpi=force" for your case.

Thanks,
Feng


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/