aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/hwmon/pkgtemp.c7
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
340static void pkgtemp_device_remove(unsigned int cpu) 340static 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}