diff options
Diffstat (limited to 'arch/ppc')
| -rw-r--r-- | arch/ppc/mm/pgtable.c | 5 | ||||
| -rw-r--r-- | arch/ppc/mm/tlb.c | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/arch/ppc/mm/pgtable.c b/arch/ppc/mm/pgtable.c index bda12bd5786f..b5316b479228 100644 --- a/arch/ppc/mm/pgtable.c +++ b/arch/ppc/mm/pgtable.c @@ -107,8 +107,11 @@ pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) ptepage->mapping = (void *) mm; ptepage->index = address & PMD_MASK; } - } else + } else { pte = (pte_t *)early_get_page(); + if (pte) + clear_page(pte); + } return pte; } diff --git a/arch/ppc/mm/tlb.c b/arch/ppc/mm/tlb.c index 34605ba4ac2f..bedc1048e9a6 100644 --- a/arch/ppc/mm/tlb.c +++ b/arch/ppc/mm/tlb.c @@ -62,7 +62,7 @@ void flush_hash_one_pte(pte_t *ptep) ptepage = virt_to_page(ptep); mm = (struct mm_struct *) ptepage->mapping; ptephys = __pa(ptep) & PAGE_MASK; - addr = ptepage->index + (((unsigned long)ptep & ~PAGE_MASK) << 9); + addr = ptepage->index + (((unsigned long)ptep & ~PAGE_MASK) << 10); flush_hash_pages(mm->context, addr, ptephys, 1); } |
