diff options
-rw-r--r-- | drivers/hwmon/pkgtemp.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/hwmon/pkgtemp.c b/drivers/hwmon/pkgtemp.c index 74157fcda6ed..844957333fe5 100644 --- a/drivers/hwmon/pkgtemp.c +++ b/drivers/hwmon/pkgtemp.c | |||
@@ -339,17 +339,18 @@ exit: | |||
339 | #ifdef CONFIG_HOTPLUG_CPU | 339 | #ifdef CONFIG_HOTPLUG_CPU |
340 | static void pkgtemp_device_remove(unsigned int cpu) | 340 | static void pkgtemp_device_remove(unsigned int cpu) |
341 | { | 341 | { |
342 | struct pdev_entry *p, *n; | 342 | struct pdev_entry *p; |
343 | unsigned int i; | 343 | unsigned int i; |
344 | int err; | 344 | int err; |
345 | 345 | ||
346 | mutex_lock(&pdev_list_mutex); | 346 | mutex_lock(&pdev_list_mutex); |
347 | list_for_each_entry_safe(p, n, &pdev_list, list) { | 347 | list_for_each_entry(p, &pdev_list, list) { |
348 | if (p->cpu != cpu) | 348 | if (p->cpu != cpu) |
349 | continue; | 349 | continue; |
350 | 350 | ||
351 | platform_device_unregister(p->pdev); | 351 | platform_device_unregister(p->pdev); |
352 | list_del(&p->list); | 352 | list_del(&p->list); |
353 | mutex_unlock(&pdev_list_mutex); | ||
353 | kfree(p); | 354 | kfree(p); |
354 | for_each_cpu(i, cpu_core_mask(cpu)) { | 355 | for_each_cpu(i, cpu_core_mask(cpu)) { |
355 | if (i != cpu) { | 356 | if (i != cpu) { |
@@ -358,7 +359,7 @@ static void pkgtemp_device_remove(unsigned int cpu) | |||
358 | break; | 359 | break; |
359 | } | 360 | } |
360 | } | 361 | } |
361 | break; | 362 | return; |
362 | } | 363 | } |
363 | mutex_unlock(&pdev_list_mutex); | 364 | mutex_unlock(&pdev_list_mutex); |
364 | } | 365 | } |