Commit 33b1d09e authored by Martin Schwidefsky's avatar Martin Schwidefsky

[S390] panic_stack leak in smp_alloc_lowcore

Fix freeing of the panic_stack if the allocation of async_stack failed.
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 4f7e90d6
...@@ -500,18 +500,15 @@ static int __cpuinit smp_alloc_lowcore(int cpu) ...@@ -500,18 +500,15 @@ static int __cpuinit smp_alloc_lowcore(int cpu)
save_area = get_zeroed_page(GFP_KERNEL); save_area = get_zeroed_page(GFP_KERNEL);
if (!save_area) if (!save_area)
goto out_save_area; goto out;
lowcore->extended_save_area_addr = (u32) save_area; lowcore->extended_save_area_addr = (u32) save_area;
} }
#endif #endif
lowcore_ptr[cpu] = lowcore; lowcore_ptr[cpu] = lowcore;
return 0; return 0;
#ifndef CONFIG_64BIT
out_save_area:
free_page(panic_stack);
#endif
out: out:
free_page(panic_stack);
free_pages(async_stack, ASYNC_ORDER); free_pages(async_stack, ASYNC_ORDER);
free_pages((unsigned long) lowcore, lc_order); free_pages((unsigned long) lowcore, lc_order);
return -ENOMEM; return -ENOMEM;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment