diff options
| -rw-r--r-- | arch/i386/kernel/acpi/cstate.c | 6 | ||||
| -rw-r--r-- | block/blktrace.c | 3 | ||||
| -rw-r--r-- | mm/allocpercpu.c | 9 | ||||
| -rw-r--r-- | net/ipv6/af_inet6.c | 6 |
4 files changed, 10 insertions, 14 deletions
diff --git a/arch/i386/kernel/acpi/cstate.c b/arch/i386/kernel/acpi/cstate.c index 4664b55f623e..12e937c1ce4b 100644 --- a/arch/i386/kernel/acpi/cstate.c +++ b/arch/i386/kernel/acpi/cstate.c | |||
| @@ -156,10 +156,8 @@ static int __init ffh_cstate_init(void) | |||
| 156 | 156 | ||
| 157 | static void __exit ffh_cstate_exit(void) | 157 | static void __exit ffh_cstate_exit(void) |
| 158 | { | 158 | { |
| 159 | if (cpu_cstate_entry) { | 159 | free_percpu(cpu_cstate_entry); |
| 160 | free_percpu(cpu_cstate_entry); | 160 | cpu_cstate_entry = NULL; |
| 161 | cpu_cstate_entry = NULL; | ||
| 162 | } | ||
| 163 | } | 161 | } |
| 164 | 162 | ||
| 165 | arch_initcall(ffh_cstate_init); | 163 | arch_initcall(ffh_cstate_init); |
diff --git a/block/blktrace.c b/block/blktrace.c index 74e02c04b2da..d3679dd1d220 100644 --- a/block/blktrace.c +++ b/block/blktrace.c | |||
| @@ -394,8 +394,7 @@ err: | |||
| 394 | if (bt) { | 394 | if (bt) { |
| 395 | if (bt->dropped_file) | 395 | if (bt->dropped_file) |
| 396 | debugfs_remove(bt->dropped_file); | 396 | debugfs_remove(bt->dropped_file); |
| 397 | if (bt->sequence) | 397 | free_percpu(bt->sequence); |
| 398 | free_percpu(bt->sequence); | ||
| 399 | if (bt->rchan) | 398 | if (bt->rchan) |
| 400 | relay_close(bt->rchan); | 399 | relay_close(bt->rchan); |
| 401 | kfree(bt); | 400 | kfree(bt); |
diff --git a/mm/allocpercpu.c b/mm/allocpercpu.c index eaa9abeea536..b2486cf887a0 100644 --- a/mm/allocpercpu.c +++ b/mm/allocpercpu.c | |||
| @@ -17,10 +17,9 @@ | |||
| 17 | void percpu_depopulate(void *__pdata, int cpu) | 17 | void percpu_depopulate(void *__pdata, int cpu) |
| 18 | { | 18 | { |
| 19 | struct percpu_data *pdata = __percpu_disguise(__pdata); | 19 | struct percpu_data *pdata = __percpu_disguise(__pdata); |
| 20 | if (pdata->ptrs[cpu]) { | 20 | |
| 21 | kfree(pdata->ptrs[cpu]); | 21 | kfree(pdata->ptrs[cpu]); |
| 22 | pdata->ptrs[cpu] = NULL; | 22 | pdata->ptrs[cpu] = NULL; |
| 23 | } | ||
| 24 | } | 23 | } |
| 25 | EXPORT_SYMBOL_GPL(percpu_depopulate); | 24 | EXPORT_SYMBOL_GPL(percpu_depopulate); |
| 26 | 25 | ||
| @@ -123,6 +122,8 @@ EXPORT_SYMBOL_GPL(__percpu_alloc_mask); | |||
| 123 | */ | 122 | */ |
| 124 | void percpu_free(void *__pdata) | 123 | void percpu_free(void *__pdata) |
| 125 | { | 124 | { |
| 125 | if (unlikely(!__pdata)) | ||
| 126 | return; | ||
| 126 | __percpu_depopulate_mask(__pdata, &cpu_possible_map); | 127 | __percpu_depopulate_mask(__pdata, &cpu_possible_map); |
| 127 | kfree(__percpu_disguise(__pdata)); | 128 | kfree(__percpu_disguise(__pdata)); |
| 128 | } | 129 | } |
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c index 87c8f54872b7..e5cd83b2205d 100644 --- a/net/ipv6/af_inet6.c +++ b/net/ipv6/af_inet6.c | |||
| @@ -720,10 +720,8 @@ snmp6_mib_free(void *ptr[2]) | |||
| 720 | { | 720 | { |
| 721 | if (ptr == NULL) | 721 | if (ptr == NULL) |
| 722 | return; | 722 | return; |
| 723 | if (ptr[0]) | 723 | free_percpu(ptr[0]); |
| 724 | free_percpu(ptr[0]); | 724 | free_percpu(ptr[1]); |
| 725 | if (ptr[1]) | ||
| 726 | free_percpu(ptr[1]); | ||
| 727 | ptr[0] = ptr[1] = NULL; | 725 | ptr[0] = ptr[1] = NULL; |
| 728 | } | 726 | } |
| 729 | 727 | ||
