Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -46,7 +46,9 @@ smp_restart_cpu:
	ltr	%r4,%r4			/* New stack ? */
	jz	1f
	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:
	.long	.gprregs
+3 −1
Original line number Diff line number Diff line
@@ -42,7 +42,9 @@ smp_restart_cpu:
	ltgr	%r4,%r4			/* New stack ? */
	jz	1f
	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
.gprregs: