Parcourir la source

powerpc/64s: masked_interrupt() returns to kernel so avoid restoring r13

Places in the kernel where r13 is not the PACA pointer must have
maskable interrupts disabled, so r13 does not have to be restored when
returning from a soft-masked interrupt. We should never have
interrupts soft disabled when we're in user space.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Nicholas Piggin il y a 8 ans
Parent
commit
c05f0be888
1 fichiers modifiés avec 1 ajouts et 1 suppressions
  1. 1 1
      arch/powerpc/kernel/exceptions-64s.S

+ 1 - 1
arch/powerpc/kernel/exceptions-64s.S

@@ -1379,7 +1379,7 @@ masked_##_H##interrupt:					\
 	ld	r9,PACA_EXGEN+EX_R9(r13);		\
 	ld	r9,PACA_EXGEN+EX_R9(r13);		\
 	ld	r10,PACA_EXGEN+EX_R10(r13);		\
 	ld	r10,PACA_EXGEN+EX_R10(r13);		\
 	ld	r11,PACA_EXGEN+EX_R11(r13);		\
 	ld	r11,PACA_EXGEN+EX_R11(r13);		\
-	GET_SCRATCH0(r13);				\
+	/* returns to kernel where r13 must be set up, so don't restore it */ \
 	##_H##rfid;					\
 	##_H##rfid;					\
 	b	.;					\
 	b	.;					\
 	MASKED_DEC_HANDLER(_H)
 	MASKED_DEC_HANDLER(_H)