lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 30 Dec 2009 01:14:48 -0500 (EST)
From:	Len Brown <lenb@...nel.org>
To:	Paul Rolland <rol@...917.net>
Cc:	Ingo Molnar <mingo@...e.hu>,
	Linus Torvalds <torvalds@...ux-foundation.org>,
	Dmitry Torokhov <dmitry.torokhov@...il.com>,
	Matthew Garrett <mjg@...hat.com>,
	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
	rol@...be.net
Subject: Re: -tip: origin tree boot crash

Thanks for the quick test/debug Paul,

> Fixed this completely with the following two patches on top of 2.6.33-rc2 :
> 
> --- wmi.c.orig  2009-12-28 17:27:15.000000000 +0100
> +++ wmi.c       2009-12-28 17:39:01.000000000 +0100
> @@ -488,12 +488,13 @@
>  {
>         struct wmi_block *block;
>         acpi_status status;
> +       bool err;
>  
>         if (!guid || !handler)
>                 return AE_BAD_PARAMETER;
>  
> -       find_guid(guid, &block);
> -       if (!block)
> +       err = find_guid(guid, &block);
> +       if (!err)

Unfortunately, find_guid() returns 1 for success
and 0 for failure, making this code look backwards.

I've applied this, but changed it to if (!find_guid())
to be consistent with the other callers.

>                 return AE_NOT_EXIST;
>  
>         if (block->handler)
> @@ -517,12 +518,13 @@
>  {
>         struct wmi_block *block;
>         acpi_status status;
> +       bool err;
>  
>         if (!guid)
>                 return AE_BAD_PARAMETER;
>  
> -       find_guid(guid, &block);
> -       if (!block)
> +       err = find_guid(guid, &block);
> +       if (!err)
>                 return AE_NOT_EXIST;
>  
>         if (!block->handler)
> 
> --- dell-wmi.c.orig     2009-12-28 17:49:09.000000000 +0100
> +++ dell-wmi.c  2009-12-28 17:41:36.000000000 +0100
> @@ -343,7 +343,7 @@
>                 printk(KERN_ERR
>                         "dell-wmi: Unable to register notify handler - %d\n",
>                         err);
> -               return err;
> +               return -err;

This change is not quite correct,
but the correct fix is already in the acpi-test tree in the patch
"dell-wmi: sys_init_module: 'dell_wmi'->init suspiciously returned 21,
it should follow 0/-E convention"

I'll reply with both of the patches in a sec.
Please let me know if they are sufficient to fix your system.

thanks,
-Len Brown, Intel Open Source Technology Center

>         }
>  
>         return 0;
> 
> 
> Signed-off-by: rol@...917.net <Paul Rolland>
> 
> Paul
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists