diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-03 15:29:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-03 15:29:15 -0400 |
commit | 20c4856b1d1939647f71dce5e54fe69fde80013f (patch) | |
tree | bfd8e91ad10acf867934d74c1cf9448f38c9fcd2 /include | |
parent | c4d36a822e7c51cd6ffcf9133854d5e32489d269 (diff) | |
parent | 627aa944a17ba82ca3ba87dc1d6ee85bd314ec79 (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.h | 3 | ||||
-rw-r--r-- | include/asm-powerpc/tlb.h | 9 |
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, | |||
90 | static inline struct page *pte_alloc_one(struct mm_struct *mm, | 90 | static 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 | ||
96 | static inline void pte_free_kernel(pte_t *pte) | 97 | static 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 | ||
39 | static inline void tlb_flush(struct mmu_gather *tlb) | 39 | static 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 | ||