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

Commit 2cff5e1a authored by Hirokazu Takata's avatar Hirokazu Takata
Browse files

m32r: fix tme_handler



Fix pmd_bad check code of tme_handler (TLB Miss Exception handler).
The correct _KERNPG_TABLE value is not 0x263(=611) but 0x163.

Signed-off-by: default avatarHirokazu Takata <takata@linux-m32r.org>
parent 17d857be
Loading
Loading
Loading
Loading
+8 −4
Original line number Original line Diff line number Diff line
@@ -150,9 +150,13 @@ ENTRY(tme_handler)


	; pmd = pmd_offset(pgd, address);
	; pmd = pmd_offset(pgd, address);
	ld	r3, @r3			; r3: pmd data
	ld	r3, @r3			; r3: pmd data
	ldi	r2, #-4096
	beqz	r3, 3f			; pmd_none(*pmd) ?
	beqz	r3, 3f			; pmd_none(*pmd) ?


	and3	r2, r3, #0xfff
	add3	r2, r2, #-355		; _KERNPG_TABLE(=0x163)
	bnez	r2, 3f			; pmd_bad(*pmd) ?
	ldi	r2, #-4096

	; pte = pte_offset(pmd, address);
	; pte = pte_offset(pmd, address);
	and	r2, r3			; r2: pte base addr
	and	r2, r3			; r2: pte base addr
	srl3	r3, r0, #10
	srl3	r3, r0, #10
@@ -263,9 +267,9 @@ ENTRY(tme_handler)
	ld	r1, @r3			; r1: pmd
	ld	r1, @r3			; r1: pmd
	beqz	r1, 3f			; pmd_none(*pmd) ?
	beqz	r1, 3f			; pmd_none(*pmd) ?
;
;
	and3	r1, r1, #0xeff
	and3	r1, r1, #0x3ff
	ldi	r4, #611		; _KERNPG_TABLE(=611)
	ldi	r4, #0x163		; _KERNPG_TABLE(=0x163)
	bne	r1, r4, 3f		; !pmd_bad(*pmd) ?
	bne	r1, r4, 3f		; pmd_bad(*pmd) ?


	.fillinsn
	.fillinsn
4:
4: