platform/x86: msi-laptop: remove sparse_keymap_free() calls
authorMichał Kępień <kernel@kempniu.pl>
Thu, 9 Mar 2017 12:11:45 +0000 (13:11 +0100)
committerDarren Hart <dvhart@infradead.org>
Wed, 15 Mar 2017 05:58:07 +0000 (22:58 -0700)
As sparse_keymap_setup() now uses a managed memory allocation for the
keymap copy it creates, the latter is freed automatically.  Remove all
calls to sparse_keymap_free().

As this reduces msi_laptop_input_destroy() to one line, replace all
calls to that function with direct calls to input_unregister_device().

Signed-off-by: Michał Kępień <kernel@kempniu.pl>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/platform/x86/msi-laptop.c

index 42317704629dba4f5b35ee1ac1c8aaa7b85ae3c1..9e90827c176a2cb456aa1b2ceebce9783d3bf818 100644 (file)
@@ -976,23 +976,15 @@ static int __init msi_laptop_input_setup(void)
 
        err = input_register_device(msi_laptop_input_dev);
        if (err)
-               goto err_free_keymap;
+               goto err_free_dev;
 
        return 0;
 
-err_free_keymap:
-       sparse_keymap_free(msi_laptop_input_dev);
 err_free_dev:
        input_free_device(msi_laptop_input_dev);
        return err;
 }
 
-static void msi_laptop_input_destroy(void)
-{
-       sparse_keymap_free(msi_laptop_input_dev);
-       input_unregister_device(msi_laptop_input_dev);
-}
-
 static int __init load_scm_model_init(struct platform_device *sdev)
 {
        u8 data;
@@ -1037,7 +1029,7 @@ static int __init load_scm_model_init(struct platform_device *sdev)
        return 0;
 
 fail_filter:
-       msi_laptop_input_destroy();
+       input_unregister_device(msi_laptop_input_dev);
 
 fail_input:
        rfkill_cleanup();
@@ -1158,7 +1150,7 @@ static void __exit msi_cleanup(void)
 {
        if (quirks->load_scm_model) {
                i8042_remove_filter(msi_laptop_i8042_filter);
-               msi_laptop_input_destroy();
+               input_unregister_device(msi_laptop_input_dev);
                cancel_delayed_work_sync(&msi_rfkill_dwork);
                cancel_work_sync(&msi_rfkill_work);
                rfkill_cleanup();