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