From: Michael Holzheu Date: Tue, 13 Mar 2012 15:25:08 +0000 (-0400) Subject: [S390] kernel: Pass correct stack for smp_call_ipl_cpu() X-Git-Tag: firefly_0821_release~3680^2~3296^2 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=c6da39f26cfe475704ec521723192e520e8f51b8;p=firefly-linux-kernel-4.4.55.git [S390] kernel: Pass correct stack for smp_call_ipl_cpu() Currently pcpu_devices->panic_stack is passed to pcpu_delegate() in smp_call_ipl_cpu(). This is wrong because pcpu_delegate() expects the bottom (high address) of the stack and pcpu_devices->panic_stack points to the top (low address). We now pass the bottom of the stack which is pcpu_devices->panic_stack + PAGE_SIZE. Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky --- diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 3b9e5c9f4c0b..64ebbcbb31ea 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c @@ -335,7 +335,8 @@ void smp_call_online_cpu(void (*func)(void *), void *data) */ void smp_call_ipl_cpu(void (*func)(void *), void *data) { - pcpu_delegate(&pcpu_devices[0], func, data, pcpu_devices->panic_stack); + pcpu_delegate(&pcpu_devices[0], func, data, + pcpu_devices->panic_stack + PAGE_SIZE); } int smp_find_processor_id(u16 address)