diff options
author | Alan Jenkins <alan-jenkins@tuffmail.co.uk> | 2009-08-29 04:28:30 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2009-08-29 14:16:30 -0400 |
commit | a8258069793609903b5ebf0bca3320249154c379 (patch) | |
tree | cee48fe275ea8f34b36ac9c59b0c099deb6ec5ce /drivers/platform | |
parent | be96666065fd36ccfa09a13903d31d7ff5f4ef91 (diff) |
eeepc-laptop: fix rfkill memory leak on unload
rfkill_unregister() should always be followed by rfkill_destroy()
Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/platform')
-rw-r--r-- | drivers/platform/x86/eeepc-laptop.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c index 819c685fe9cf..6f9a4489e199 100644 --- a/drivers/platform/x86/eeepc-laptop.c +++ b/drivers/platform/x86/eeepc-laptop.c | |||
@@ -985,6 +985,7 @@ static void eeepc_rfkill_exit(void) | |||
985 | eeepc_unregister_rfkill_notifier("\\_SB.PCI0.P0P7"); | 985 | eeepc_unregister_rfkill_notifier("\\_SB.PCI0.P0P7"); |
986 | if (ehotk->wlan_rfkill) { | 986 | if (ehotk->wlan_rfkill) { |
987 | rfkill_unregister(ehotk->wlan_rfkill); | 987 | rfkill_unregister(ehotk->wlan_rfkill); |
988 | rfkill_destroy(ehotk->wlan_rfkill); | ||
988 | ehotk->wlan_rfkill = NULL; | 989 | ehotk->wlan_rfkill = NULL; |
989 | } | 990 | } |
990 | /* | 991 | /* |
@@ -995,12 +996,21 @@ static void eeepc_rfkill_exit(void) | |||
995 | if (ehotk->hotplug_slot) | 996 | if (ehotk->hotplug_slot) |
996 | pci_hp_deregister(ehotk->hotplug_slot); | 997 | pci_hp_deregister(ehotk->hotplug_slot); |
997 | 998 | ||
998 | if (ehotk->bluetooth_rfkill) | 999 | if (ehotk->bluetooth_rfkill) { |
999 | rfkill_unregister(ehotk->bluetooth_rfkill); | 1000 | rfkill_unregister(ehotk->bluetooth_rfkill); |
1000 | if (ehotk->wwan3g_rfkill) | 1001 | rfkill_destroy(ehotk->bluetooth_rfkill); |
1002 | ehotk->bluetooth_rfkill = NULL; | ||
1003 | } | ||
1004 | if (ehotk->wwan3g_rfkill) { | ||
1001 | rfkill_unregister(ehotk->wwan3g_rfkill); | 1005 | rfkill_unregister(ehotk->wwan3g_rfkill); |
1002 | if (ehotk->wimax_rfkill) | 1006 | rfkill_destroy(ehotk->wwan3g_rfkill); |
1007 | ehotk->wwan3g_rfkill = NULL; | ||
1008 | } | ||
1009 | if (ehotk->wimax_rfkill) { | ||
1003 | rfkill_unregister(ehotk->wimax_rfkill); | 1010 | rfkill_unregister(ehotk->wimax_rfkill); |
1011 | rfkill_destroy(ehotk->wimax_rfkill); | ||
1012 | ehotk->wimax_rfkill = NULL; | ||
1013 | } | ||
1004 | } | 1014 | } |
1005 | 1015 | ||
1006 | static void eeepc_input_exit(void) | 1016 | static void eeepc_input_exit(void) |