Commit 2cff5e1a83c61613febf814640dc877b98d585e6
1 parent
17d857be64
Exists in
master
and in
7 other branches
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: Hirokazu Takata <takata@linux-m32r.org>
Showing 1 changed file with 8 additions and 4 deletions Side-by-side Diff
arch/m32r/mm/mmu.S
... | ... | @@ -150,9 +150,13 @@ |
150 | 150 | |
151 | 151 | ; pmd = pmd_offset(pgd, address); |
152 | 152 | ld r3, @r3 ; r3: pmd data |
153 | - ldi r2, #-4096 | |
154 | 153 | beqz r3, 3f ; pmd_none(*pmd) ? |
155 | 154 | |
155 | + and3 r2, r3, #0xfff | |
156 | + add3 r2, r2, #-355 ; _KERNPG_TABLE(=0x163) | |
157 | + bnez r2, 3f ; pmd_bad(*pmd) ? | |
158 | + ldi r2, #-4096 | |
159 | + | |
156 | 160 | ; pte = pte_offset(pmd, address); |
157 | 161 | and r2, r3 ; r2: pte base addr |
158 | 162 | srl3 r3, r0, #10 |
... | ... | @@ -263,9 +267,9 @@ |
263 | 267 | ld r1, @r3 ; r1: pmd |
264 | 268 | beqz r1, 3f ; pmd_none(*pmd) ? |
265 | 269 | ; |
266 | - and3 r1, r1, #0xeff | |
267 | - ldi r4, #611 ; _KERNPG_TABLE(=611) | |
268 | - bne r1, r4, 3f ; !pmd_bad(*pmd) ? | |
270 | + and3 r1, r1, #0x3ff | |
271 | + ldi r4, #0x163 ; _KERNPG_TABLE(=0x163) | |
272 | + bne r1, r4, 3f ; pmd_bad(*pmd) ? | |
269 | 273 | |
270 | 274 | .fillinsn |
271 | 275 | 4: |