dell-laptop: Fix errors on failure and exit paths
authorMatthew Garrett <mjg@redhat.com>
Mon, 1 Mar 2010 14:46:43 +0000 (09:46 -0500)
committerMatthew Garrett <mjg@redhat.com>
Mon, 1 Mar 2010 14:46:43 +0000 (09:46 -0500)
Make sure that work is cancelled after removing the i8042 filter, and
unregister the platform device rather than deleting it.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/platform/x86/dell-laptop.c

index 29d96a4..ef61497 100644 (file)
@@ -580,6 +580,7 @@ static int __init dell_init(void)
 
 fail_backlight:
        i8042_remove_filter(dell_laptop_i8042_filter);
+       cancel_delayed_work_sync(&dell_rfkill_work);
 fail_filter:
        dell_cleanup_rfkill();
 fail_rfkill:
@@ -597,12 +598,12 @@ fail_platform_driver:
 
 static void __exit dell_exit(void)
 {
-       cancel_delayed_work_sync(&dell_rfkill_work);
        i8042_remove_filter(dell_laptop_i8042_filter);
+       cancel_delayed_work_sync(&dell_rfkill_work);
        backlight_device_unregister(dell_backlight_device);
        dell_cleanup_rfkill();
        if (platform_device) {
-               platform_device_del(platform_device);
+               platform_device_unregister(platform_device);
                platform_driver_unregister(&platform_driver);
        }
        kfree(da_tokens);