diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-10-03 21:57:06 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-10-03 21:57:06 -0700 |
| commit | 8a0382f6fceaf0c6479e582e1054f36333ea3d24 (patch) | |
| tree | 2ec107d486a57584f2b4ae431e70abbc11661d68 /arch/m32r/mm/mmu.S | |
| parent | 0b5759c654e74c8dc317ea2c6b3a7476160f688a (diff) | |
| parent | 0a3d31b79e7fa600108e699805e2b2f9ea1f3194 (diff) | |
Merge branch 'for-linus' of git://www.linux-m32r.org/git/takata/linux-2.6_dev
* 'for-linus' of git://www.linux-m32r.org/git/takata/linux-2.6_dev:
m32r: Fix IPI function calls for SMP
m32r: Fix set_memory() for DISCONTIGMEM
m32r: add rtc_lock variable
m32r: define ioread* and iowrite* macros
m32r: export delay loop symbols
m32r: fix tme_handler
Diffstat (limited to 'arch/m32r/mm/mmu.S')
| -rw-r--r-- | arch/m32r/mm/mmu.S | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/m32r/mm/mmu.S b/arch/m32r/mm/mmu.S index 49a6d16a3d5..e9491a5ae82 100644 --- a/arch/m32r/mm/mmu.S +++ b/arch/m32r/mm/mmu.S @@ -150,9 +150,13 @@ ENTRY(tme_handler) ; pmd = pmd_offset(pgd, address); ld r3, @r3 ; r3: pmd data - ldi r2, #-4096 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); and r2, r3 ; r2: pte base addr srl3 r3, r0, #10 @@ -263,9 +267,9 @@ ENTRY(tme_handler) ld r1, @r3 ; r1: pmd beqz r1, 3f ; pmd_none(*pmd) ? ; - and3 r1, r1, #0xeff - ldi r4, #611 ; _KERNPG_TABLE(=611) - bne r1, r4, 3f ; !pmd_bad(*pmd) ? + and3 r1, r1, #0x3ff + ldi r4, #0x163 ; _KERNPG_TABLE(=0x163) + bne r1, r4, 3f ; pmd_bad(*pmd) ? .fillinsn 4: |
