aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m32r/mm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/m32r/mm')
-rw-r--r--arch/m32r/mm/discontig.c5
-rw-r--r--arch/m32r/mm/mmu.S12
2 files changed, 12 insertions, 5 deletions
diff --git a/arch/m32r/mm/discontig.c b/arch/m32r/mm/discontig.c
index b7a78ad429b7..5d2858f6eede 100644
--- a/arch/m32r/mm/discontig.c
+++ b/arch/m32r/mm/discontig.c
@@ -32,6 +32,9 @@ typedef struct {
32} mem_prof_t; 32} mem_prof_t;
33static mem_prof_t mem_prof[MAX_NUMNODES]; 33static mem_prof_t mem_prof[MAX_NUMNODES];
34 34
35extern unsigned long memory_start;
36extern unsigned long memory_end;
37
35static void __init mem_prof_init(void) 38static void __init mem_prof_init(void)
36{ 39{
37 unsigned long start_pfn, holes, free_pfn; 40 unsigned long start_pfn, holes, free_pfn;
@@ -42,7 +45,7 @@ static void __init mem_prof_init(void)
42 /* Node#0 SDRAM */ 45 /* Node#0 SDRAM */
43 mp = &mem_prof[0]; 46 mp = &mem_prof[0];
44 mp->start_pfn = PFN_UP(CONFIG_MEMORY_START); 47 mp->start_pfn = PFN_UP(CONFIG_MEMORY_START);
45 mp->pages = PFN_DOWN(CONFIG_MEMORY_SIZE); 48 mp->pages = PFN_DOWN(memory_end - memory_start);
46 mp->holes = 0; 49 mp->holes = 0;
47 mp->free_pfn = PFN_UP(__pa(_end)); 50 mp->free_pfn = PFN_UP(__pa(_end));
48 51
diff --git a/arch/m32r/mm/mmu.S b/arch/m32r/mm/mmu.S
index 49a6d16a3d58..e9491a5ae827 100644
--- a/arch/m32r/mm/mmu.S
+++ b/arch/m32r/mm/mmu.S
@@ -150,9 +150,13 @@ ENTRY(tme_handler)
150 150
151 ; pmd = pmd_offset(pgd, address); 151 ; pmd = pmd_offset(pgd, address);
152 ld r3, @r3 ; r3: pmd data 152 ld r3, @r3 ; r3: pmd data
153 ldi r2, #-4096
154 beqz r3, 3f ; pmd_none(*pmd) ? 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 ; pte = pte_offset(pmd, address); 160 ; pte = pte_offset(pmd, address);
157 and r2, r3 ; r2: pte base addr 161 and r2, r3 ; r2: pte base addr
158 srl3 r3, r0, #10 162 srl3 r3, r0, #10
@@ -263,9 +267,9 @@ ENTRY(tme_handler)
263 ld r1, @r3 ; r1: pmd 267 ld r1, @r3 ; r1: pmd
264 beqz r1, 3f ; pmd_none(*pmd) ? 268 beqz r1, 3f ; pmd_none(*pmd) ?
265; 269;
266 and3 r1, r1, #0xeff 270 and3 r1, r1, #0x3ff
267 ldi r4, #611 ; _KERNPG_TABLE(=611) 271 ldi r4, #0x163 ; _KERNPG_TABLE(=0x163)
268 bne r1, r4, 3f ; !pmd_bad(*pmd) ? 272 bne r1, r4, 3f ; pmd_bad(*pmd) ?
269 273
270 .fillinsn 274 .fillinsn
2714: 2754: