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) |
