X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=mm%2Fallocpercpu.c;h=b2486cf887a06c1ecbd3c3d60d10682e2e5fc7d0;hb=06abdfb47ee745a4d79721de24260815ec6bca2b;hp=eaa9abeea5364f6578c53c607d17955e3aebaef1;hpb=ccaa36f73544163ef6e15eb29a620130755f6001;p=powerpc.git diff --git a/mm/allocpercpu.c b/mm/allocpercpu.c index eaa9abeea5..b2486cf887 100644 --- a/mm/allocpercpu.c +++ b/mm/allocpercpu.c @@ -17,10 +17,9 @@ void percpu_depopulate(void *__pdata, int cpu) { struct percpu_data *pdata = __percpu_disguise(__pdata); - if (pdata->ptrs[cpu]) { - kfree(pdata->ptrs[cpu]); - pdata->ptrs[cpu] = NULL; - } + + kfree(pdata->ptrs[cpu]); + pdata->ptrs[cpu] = NULL; } EXPORT_SYMBOL_GPL(percpu_depopulate); @@ -123,6 +122,8 @@ EXPORT_SYMBOL_GPL(__percpu_alloc_mask); */ void percpu_free(void *__pdata) { + if (unlikely(!__pdata)) + return; __percpu_depopulate_mask(__pdata, &cpu_possible_map); kfree(__percpu_disguise(__pdata)); }