diff options
Diffstat (limited to 'drivers/platform')
-rw-r--r-- | drivers/platform/x86/wmi.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index f23d5a84e7b1..9b88be42b6cd 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c | |||
@@ -754,9 +754,13 @@ static void wmi_free_devices(void) | |||
754 | struct wmi_block *wblock, *next; | 754 | struct wmi_block *wblock, *next; |
755 | 755 | ||
756 | /* Delete devices for all the GUIDs */ | 756 | /* Delete devices for all the GUIDs */ |
757 | list_for_each_entry_safe(wblock, next, &wmi_block_list, list) | 757 | list_for_each_entry_safe(wblock, next, &wmi_block_list, list) { |
758 | list_del(&wblock->list); | ||
758 | if (wblock->dev.class) | 759 | if (wblock->dev.class) |
759 | device_unregister(&wblock->dev); | 760 | device_unregister(&wblock->dev); |
761 | else | ||
762 | kfree(wblock); | ||
763 | } | ||
760 | } | 764 | } |
761 | 765 | ||
762 | static bool guid_already_parsed(const char *guid_string) | 766 | static bool guid_already_parsed(const char *guid_string) |