aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/highmem.h
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2008-07-16 16:54:21 -0400
committerKumar Gala <galak@kernel.crashing.org>2008-09-24 17:29:41 -0400
commit9bf2b5cdc5fe5e3136ceeecc85141765023ded6e (patch)
treee1e25d6aa5a18ca63314192173d93cc0d20ac066 /arch/powerpc/include/asm/highmem.h
parent0ba3418b8b1c85ee1771c63f1dd12041614e56ff (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.h2
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;