This is a note to let you know that I've just added the patch titled
Staging: asus_oled: fix NULL-ptr crash on unloading
to the 3.0-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
staging-asus_oled-fix-null-ptr-crash-on-unloading.patch
and it can be found in the queue-3.0 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.
>From 3589e74595a4332ebf77b5ed006f3c6686071ecd Mon Sep 17 00:00:00 2001
From: Pekka Paalanen <[email protected]>
Date: Sun, 22 Jan 2012 16:33:47 +0200
Subject: Staging: asus_oled: fix NULL-ptr crash on unloading
From: Pekka Paalanen <[email protected]>
commit 3589e74595a4332ebf77b5ed006f3c6686071ecd upstream.
Asus_oled triggers the following bug on module unloading:
usbcore: deregistering interface driver asus-oled
BUG: unable to handle kernel NULL pointer dereference at 0000000000000038
IP: [<ffffffff8111292b>] sysfs_delete_link+0x30/0x66
Call Trace:
[<ffffffff81225373>] device_remove_class_symlinks+0x6b/0x70
[<ffffffff812256a8>] device_del+0x9f/0x1ab
[<ffffffff812257c5>] device_unregister+0x11/0x1e
[<ffffffffa000cb82>] asus_oled_disconnect+0x4f/0x9e [asus_oled]
[<ffffffff81277430>] usb_unbind_interface+0x54/0x103
[<ffffffff812276c4>] __device_release_driver+0xa2/0xeb
[<ffffffff81227794>] driver_detach+0x87/0xad
[<ffffffff812269e9>] bus_remove_driver+0x91/0xc1
[<ffffffff81227fb4>] driver_unregister+0x66/0x6e
[<ffffffff812771ed>] usb_deregister+0xbb/0xc4
[<ffffffffa000ce87>] asus_oled_exit+0x2f/0x31 [asus_oled]
[<ffffffff81068365>] sys_delete_module+0x1b8/0x21b
[<ffffffff810ae3de>] ? do_munmap+0x2ef/0x313
[<ffffffff813699bb>] system_call_fastpath+0x16/0x1b
This is due to an incorrect destruction sequence in asus_oled_exit().
Fix the order, fixes the bug. Tested on an Asus G50V laptop only.
Cc: Jakub Schmidtke <[email protected]>
Signed-off-by: Pekka Paalanen <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
drivers/staging/asus_oled/asus_oled.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
--- a/drivers/staging/asus_oled/asus_oled.c
+++ b/drivers/staging/asus_oled/asus_oled.c
@@ -811,10 +811,9 @@ error:
static void __exit asus_oled_exit(void)
{
+ usb_deregister(&oled_driver);
class_remove_file(oled_class, &class_attr_version.attr);
class_destroy(oled_class);
-
- usb_deregister(&oled_driver);
}
module_init(asus_oled_init);
Patches currently in stable-queue which might be from [email protected] are
queue-3.0/staging-asus_oled-fix-image-processing.patch
queue-3.0/staging-asus_oled-fix-null-ptr-crash-on-unloading.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html