diff options
| author | Matt Fleming <matt@console-pimps.org> | 2010-04-25 15:18:41 -0400 |
|---|---|---|
| committer | Matt Fleming <matt@console-pimps.org> | 2010-04-25 15:44:23 -0400 |
| commit | 035ca59fe8399a67b56511bd5b28130f0c4874a0 (patch) | |
| tree | c405a38cdb406847ea2fb38e580b9ceba615e39f | |
| parent | c7b03fa0bdc04e00bfbdc4cc69da144b11108f37 (diff) | |
sh: Use correct mask when comparing PMB DATA array values
Previously we were masking the PMB DATA array values with the value of
__MEMORY_START | PMB_V, which misses some PFN bits off the mask.
Signed-off-by: Matt Fleming <matt@console-pimps.org>
| -rw-r--r-- | arch/sh/kernel/head_32.S | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/sh/kernel/head_32.S b/arch/sh/kernel/head_32.S index 8c1fc9a9fab2..6e35f012cc03 100644 --- a/arch/sh/kernel/head_32.S +++ b/arch/sh/kernel/head_32.S | |||
| @@ -131,6 +131,7 @@ ENTRY(_stext) | |||
| 131 | * r8 = scratch register | 131 | * r8 = scratch register |
| 132 | * r9 = scratch register | 132 | * r9 = scratch register |
| 133 | * r10 = number of PMB entries we've setup | 133 | * r10 = number of PMB entries we've setup |
| 134 | * r11 = scratch register | ||
| 134 | */ | 135 | */ |
| 135 | 136 | ||
| 136 | mov.l .LMMUCR, r1 /* Flush the TLB */ | 137 | mov.l .LMMUCR, r1 /* Flush the TLB */ |
| @@ -167,8 +168,9 @@ ENTRY(_stext) | |||
| 167 | 168 | ||
| 168 | .Lvalidate_existing_mappings: | 169 | .Lvalidate_existing_mappings: |
| 169 | 170 | ||
| 171 | mov.l .LPMB_DATA_MASK, r11 | ||
| 170 | mov.l @r7, r8 | 172 | mov.l @r7, r8 |
| 171 | and r0, r8 | 173 | and r11, r8 |
| 172 | cmp/eq r0, r8 /* Check for valid __MEMORY_START mappings */ | 174 | cmp/eq r0, r8 /* Check for valid __MEMORY_START mappings */ |
| 173 | bt .Lpmb_done | 175 | bt .Lpmb_done |
| 174 | 176 | ||
| @@ -341,6 +343,7 @@ ENTRY(stack_start) | |||
| 341 | #ifdef CONFIG_PMB | 343 | #ifdef CONFIG_PMB |
| 342 | .LPMB_ADDR: .long PMB_ADDR | 344 | .LPMB_ADDR: .long PMB_ADDR |
| 343 | .LPMB_DATA: .long PMB_DATA | 345 | .LPMB_DATA: .long PMB_DATA |
| 346 | .LPMB_DATA_MASK: .long PMB_PFN_MASK | PMB_V | ||
| 344 | .LFIRST_ADDR_ENTRY: .long PAGE_OFFSET | PMB_V | 347 | .LFIRST_ADDR_ENTRY: .long PAGE_OFFSET | PMB_V |
| 345 | .LFIRST_DATA_ENTRY: .long __MEMORY_START | PMB_V | 348 | .LFIRST_DATA_ENTRY: .long __MEMORY_START | PMB_V |
| 346 | .LMMUCR: .long MMUCR | 349 | .LMMUCR: .long MMUCR |
