aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-06-03 15:29:15 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-06-03 15:29:15 -0400
commit20c4856b1d1939647f71dce5e54fe69fde80013f (patch)
treebfd8e91ad10acf867934d74c1cf9448f38c9fcd2 /include
parentc4d36a822e7c51cd6ffcf9133854d5e32489d269 (diff)
parent627aa944a17ba82ca3ba87dc1d6ee85bd314ec79 (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: [POWERPC] Fix zImage.coff generation for 32-bit pmac [POWERPC] Fix compile breakage for IBM/AMCC 4xx arch/ppc platforms [POWERPC] Don't allow PMAC_APM_EMU for 64-bit [POWERPC] Compare irq numbers with NO_IRQ not IRQ_NONE [POWERPC] Fix return from pte_alloc_one() in out-of-memory case [POWERPC] Fix compile warning in pseries xics code [POWERPC] Don't use HOSTCFLAGS in BOOTCFLAGS [POWERPC] Create a zImage for legacy iSeries [POWERPC] pasemi idle uses hard_smp_processor_id [POWERPC] ps3/interrupt.c uses get_hard_smp_processor_id [POWERPC] Fix possible access to free pages [POWERPC] Fix compiler/assembler flags for Ebony platform boot files [POWERPC] Fix ppc32 single-stepping out of syscalls [POWERPC] Update documentation for of_find_node_by_type()
Diffstat (limited to 'include')
-rw-r--r--include/asm-powerpc/pgalloc-64.h3
-rw-r--r--include/asm-powerpc/tlb.h9
2 files changed, 11 insertions, 1 deletions
diff --git a/include/asm-powerpc/pgalloc-64.h b/include/asm-powerpc/pgalloc-64.h
index d9a3a8ca58a1..94d0294341d6 100644
--- a/include/asm-powerpc/pgalloc-64.h
+++ b/include/asm-powerpc/pgalloc-64.h
@@ -90,7 +90,8 @@ static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
90static inline struct page *pte_alloc_one(struct mm_struct *mm, 90static inline struct page *pte_alloc_one(struct mm_struct *mm,
91 unsigned long address) 91 unsigned long address)
92{ 92{
93 return virt_to_page(pte_alloc_one_kernel(mm, address)); 93 pte_t *pte = pte_alloc_one_kernel(mm, address);
94 return pte ? virt_to_page(pte) : NULL;
94} 95}
95 96
96static inline void pte_free_kernel(pte_t *pte) 97static inline void pte_free_kernel(pte_t *pte)
diff --git a/include/asm-powerpc/tlb.h b/include/asm-powerpc/tlb.h
index 0a17682663d8..66714042e438 100644
--- a/include/asm-powerpc/tlb.h
+++ b/include/asm-powerpc/tlb.h
@@ -38,6 +38,15 @@ extern void pte_free_finish(void);
38 38
39static inline void tlb_flush(struct mmu_gather *tlb) 39static inline void tlb_flush(struct mmu_gather *tlb)
40{ 40{
41 struct ppc64_tlb_batch *tlbbatch = &__get_cpu_var(ppc64_tlb_batch);
42
43 /* If there's a TLB batch pending, then we must flush it because the
44 * pages are going to be freed and we really don't want to have a CPU
45 * access a freed page because it has a stale TLB
46 */
47 if (tlbbatch->index)
48 __flush_tlb_pending(tlbbatch);
49
41 pte_free_finish(); 50 pte_free_finish();
42} 51}
43 52