Commit 034e9e96 authored by Michael Holzheu's avatar Michael Holzheu Committed by Martin Schwidefsky

[S390] Fix parameter passing for smp_switch_to_cpu()

After the execution has been switched to the destination CPU, the target
function is called with the wrong parameter. According to the C calling
convention on s390, the first parameter should be loaded into register 2.
Currently in smp_restart_cpu() it is stored in register 3. To fix this, we
load the parameter into the correct register 2.
Signed-off-by: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 65a94b14
...@@ -46,7 +46,9 @@ smp_restart_cpu: ...@@ -46,7 +46,9 @@ smp_restart_cpu:
ltr %r4,%r4 /* New stack ? */ ltr %r4,%r4 /* New stack ? */
jz 1f jz 1f
lr %r15,%r4 lr %r15,%r4
1: basr %r14,%r2 1: lr %r14,%r2 /* r14: Function to call */
lr %r2,%r3 /* r2 : Parameter for function*/
basr %r14,%r14 /* Call function */
.gprregs_addr: .gprregs_addr:
.long .gprregs .long .gprregs
......
...@@ -42,7 +42,9 @@ smp_restart_cpu: ...@@ -42,7 +42,9 @@ smp_restart_cpu:
ltgr %r4,%r4 /* New stack ? */ ltgr %r4,%r4 /* New stack ? */
jz 1f jz 1f
lgr %r15,%r4 lgr %r15,%r4
1: basr %r14,%r2 1: lgr %r14,%r2 /* r14: Function to call */
lgr %r2,%r3 /* r2 : Parameter for function*/
basr %r14,%r14 /* Call function */
.section .data,"aw",@progbits .section .data,"aw",@progbits
.gprregs: .gprregs:
......
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