diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2008-07-16 16:54:21 -0400 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2008-09-24 17:29:41 -0400 |
commit | 9bf2b5cdc5fe5e3136ceeecc85141765023ded6e (patch) | |
tree | e1e25d6aa5a18ca63314192173d93cc0d20ac066 /arch/powerpc/include/asm/highmem.h | |
parent | 0ba3418b8b1c85ee1771c63f1dd12041614e56ff (diff) |
powerpc: Fixes for CONFIG_PTE_64BIT for SMP support
There are some minor issues with support 64-bit PTEs on a 32-bit processor
when dealing with SMP.
* We need to order the stores in set_pte_at to make sure the flag word
is set second.
* Change pte_clear to use pte_update so only the flag word is cleared
* Added a WARN_ON to set_pte_at to ensure the pte isn't present for
the 64-bit pte/SMP case (to ensure our assumption of this fact).
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Becky Bruce <becky.bruce@freescale.com>
Diffstat (limited to 'arch/powerpc/include/asm/highmem.h')
-rw-r--r-- | arch/powerpc/include/asm/highmem.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/include/asm/highmem.h b/arch/powerpc/include/asm/highmem.h index 5d99b6489d56..91c589520c0a 100644 --- a/arch/powerpc/include/asm/highmem.h +++ b/arch/powerpc/include/asm/highmem.h | |||
@@ -84,7 +84,7 @@ static inline void *kmap_atomic_prot(struct page *page, enum km_type type, pgpro | |||
84 | #ifdef CONFIG_DEBUG_HIGHMEM | 84 | #ifdef CONFIG_DEBUG_HIGHMEM |
85 | BUG_ON(!pte_none(*(kmap_pte-idx))); | 85 | BUG_ON(!pte_none(*(kmap_pte-idx))); |
86 | #endif | 86 | #endif |
87 | set_pte_at(&init_mm, vaddr, kmap_pte-idx, mk_pte(page, prot)); | 87 | __set_pte_at(&init_mm, vaddr, kmap_pte-idx, mk_pte(page, prot)); |
88 | flush_tlb_page(NULL, vaddr); | 88 | flush_tlb_page(NULL, vaddr); |
89 | 89 | ||
90 | return (void*) vaddr; | 90 | return (void*) vaddr; |