Input: i8042 - fix device removal on unload
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 1 Sep 2010 00:27:02 +0000 (17:27 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 1 Sep 2010 01:28:15 +0000 (18:28 -0700)
We need to call platform_device_unregister(i8042_platform_device)
before calling platform_driver_unregister() because i8042_remove()
resets i8042_platform_device to NULL. This leaves the platform device
instance behind and prevents driver reload.

Fixes https://bugzilla.kernel.org/show_bug.cgi?id=16613

Reported-by: Seryodkin Victor <vvscore@gmail.com>
Cc: stable@kernel.org
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/input/serio/i8042.c

index 46e4ba0..f585131 100644 (file)
@@ -1485,8 +1485,8 @@ static int __init i8042_init(void)
 
 static void __exit i8042_exit(void)
 {
-       platform_driver_unregister(&i8042_driver);
        platform_device_unregister(i8042_platform_device);
+       platform_driver_unregister(&i8042_driver);
        i8042_platform_exit();
 
        panic_blink = NULL;