diff --git a/net/rfkill/rfkill-wlan.c b/net/rfkill/rfkill-wlan.c index 338b59c53dbc..030ec518db0c 100644 --- a/net/rfkill/rfkill-wlan.c +++ b/net/rfkill/rfkill-wlan.c @@ -694,11 +694,11 @@ static void wlan_late_resume(struct early_suspend *h) return; } -struct early_suspend wlan_early_suspend { - .level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN - 20; - .suspend = wlan_early_suspend; - .resume = wlan_late_resume; -} +static struct early_suspend wlan_early_suspend_handler = { + .level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN - 20, + .suspend = wlan_early_suspend, + .resume = wlan_late_resume, +}; #endif static void @@ -888,7 +888,7 @@ static int rfkill_wlan_probe(struct platform_device *pdev) #endif #if defined(CONFIG_HAS_EARLYSUSPEND) - register_early_suspend(wlan_early_suspend); + register_early_suspend(&wlan_early_suspend_handler); #endif fb_register_client(&rfkill_wlan_fb_notifier); @@ -917,6 +917,10 @@ static int rfkill_wlan_remove(struct platform_device *pdev) fb_unregister_client(&rfkill_wlan_fb_notifier); +#if defined(CONFIG_HAS_EARLYSUSPEND) + unregister_early_suspend(&wlan_early_suspend_handler); +#endif + if (gpio_is_valid(rfkill->pdata->power_n.io)) gpio_free(rfkill->pdata->power_n.io);