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

Commit b4c001dc authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt Committed by Michael Ellerman
Browse files

powerpc/mm: Use symbolic constants for filtering SRR1 bits on ISIs



This uses the newly defined constants for this rather than open-coded
numbers. There is a side effect on 64-bit which is to pass through
some of the new P9 bits which we didn't before.

Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 398a719d
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -541,7 +541,7 @@ EXC_COMMON_BEGIN(instruction_access_common)
	RECONCILE_IRQ_STATE(r10, r11)
	RECONCILE_IRQ_STATE(r10, r11)
	ld	r12,_MSR(r1)
	ld	r12,_MSR(r1)
	ld	r3,_NIP(r1)
	ld	r3,_NIP(r1)
	andis.	r4,r12,0x5820
	andis.	r4,r12,DSISR_BAD_FAULT_64S@h
	li	r5,0x400
	li	r5,0x400
	std	r3,_DAR(r1)
	std	r3,_DAR(r1)
	std	r4,_DSISR(r1)
	std	r4,_DSISR(r1)
+2 −2
Original line number Original line Diff line number Diff line
@@ -403,13 +403,13 @@ DataAccess:
	DO_KVM  0x400
	DO_KVM  0x400
InstructionAccess:
InstructionAccess:
	EXCEPTION_PROLOG
	EXCEPTION_PROLOG
	andis.	r0,r9,0x4000		/* no pte found? */
	andis.	r0,r9,SRR1_ISI_NOPT@h	/* no pte found? */
	beq	1f			/* if so, try to put a PTE */
	beq	1f			/* if so, try to put a PTE */
	li	r3,0			/* into the hash table */
	li	r3,0			/* into the hash table */
	mr	r4,r12			/* SRR0 is fault address */
	mr	r4,r12			/* SRR0 is fault address */
	bl	hash_page
	bl	hash_page
1:	mr	r4,r12
1:	mr	r4,r12
	andis.	r5,r9,0x4820		/* Filter relevant SRR1 bits */
	andis.	r5,r9,DSISR_SRR1_MATCH_32S@h /* Filter relevant SRR1 bits */
	EXC_XFER_LITE(0x400, handle_page_fault)
	EXC_XFER_LITE(0x400, handle_page_fault)


/* External interrupt */
/* External interrupt */
+2 −2
Original line number Original line Diff line number Diff line
@@ -569,8 +569,8 @@ _ENTRY(DTLBMiss_jmp)
InstructionTLBError:
InstructionTLBError:
	EXCEPTION_PROLOG
	EXCEPTION_PROLOG
	mr	r4,r12
	mr	r4,r12
	andis.	r5,r9,0x4820		/* Filter relevant SRR1 bits */
	andis.	r5,r9,DSISR_SRR1_MATCH_32S@h /* Filter relevant SRR1 bits */
	andis.	r10,r9,0x4000
	andis.	r10,r9,SRR1_ISI_NOPT@h
	beq+	1f
	beq+	1f
	tlbie	r4
	tlbie	r4
itlbie:
itlbie: