Re: Early ACPI lockup (was Re: 2.6.20-rc4-mm1)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jan 12, 2007 at 05:53:08PM -0500, Len Brown wrote:
> On Friday 12 January 2007 05:20, Frederik Deweerdt wrote:
> > On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
> > > 
> > >   ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc4-mm1/
> > > 
> > Hi,
> > 
> > The git-acpi.patch replaces earlier "if(!handler) return -EINVAL" by
> > "BUG_ON(!handler)". This locks my machine early at boot with a message
> > along the lines of (It's hand copied):
> > Int 6: cr2: 00000000 eip: c0570e05 flags: 00010046 cs: 60
> > stack: c054ffac c011db2b c04936d0 c054ff68 c054ffc0 c054fff4 c057da2c
> > 
> > Reverting the change as follows, allows booting:
> > Any ideas to debug this further?
> 
> 
> > diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
> > index db0c5f6..fba018c 100644
> > --- a/drivers/acpi/tables.c
> > +++ b/drivers/acpi/tables.c
> > @@ -414,7 +414,9 @@ int __init acpi_table_parse(enum acpi_ta
> >  	unsigned int index;
> >  	unsigned int count = 0;
> >  
> > -	BUG_ON(!handler);
> > +	if (!handler)
> > +		return -EINVAL;
> > +	/*BUG_ON(!handler);*/
> >  
> >  	for (i = 0; i < sdt_count; i++) {
> >  		if (sdt_entry[i].id != id)
> 
> What do you see if on failure you also print out the params, like below?
> 
I'm sorry, I might not be able to try it until monday. Michal reported
a similar problem though, adding him to CC list.

Regards,
Frederik

> thanks,
> -Len
> 
> diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
> index 3fce3db..e2d08a5 100644
> --- a/drivers/acpi/tables.c
> +++ b/drivers/acpi/tables.c
> @@ -415,7 +415,12 @@ int __init acpi_table_parse(enum acpi_table_id id, acpi_table_handler handler)
>  	unsigned int index = 0;
>  	unsigned int count = 0;
>  
> -	BUG_ON(!handler);
> +	if (!handler) {
> +		printk(KERN_WARNING PREFIX
> +			"acpi_table_parse(%d, %p) %s NULL handler!\n",
> +			id, handler, acpi_table_signatures[id]);
> +		return -EINVAL;
> +	}
>  
>  	for (i = 0; i < sdt_count; i++) {
>  		if (sdt_entry[i].id != id)
> 
> 
> 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux