X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fppc%2Fmm%2Fpgtable.c;h=b5316b479228bdde315596e956863a5dc44a1ba0;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=30482852c9c25e82190dd534518d7be36eb237f8;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/arch/ppc/mm/pgtable.c b/arch/ppc/mm/pgtable.c index 30482852c..b5316b479 100644 --- a/arch/ppc/mm/pgtable.c +++ b/arch/ppc/mm/pgtable.c @@ -85,8 +85,7 @@ pgd_t *pgd_alloc(struct mm_struct *mm) { pgd_t *ret; - if ((ret = (pgd_t *)__get_free_pages(GFP_KERNEL, PGDIR_ORDER)) != NULL) - clear_pages(ret, PGDIR_ORDER); + ret = (pgd_t *)__get_free_pages(GFP_KERNEL|__GFP_ZERO, PGDIR_ORDER); return ret; } @@ -102,16 +101,17 @@ pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) extern void *early_get_page(void); if (mem_init_done) { - pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT); + pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO); if (pte) { struct page *ptepage = virt_to_page(pte); ptepage->mapping = (void *) mm; ptepage->index = address & PMD_MASK; } - } else + } else { pte = (pte_t *)early_get_page(); - if (pte) - clear_page(pte); + if (pte) + clear_page(pte); + } return pte; } @@ -153,19 +153,19 @@ void pte_free(struct page *ptepage) } #ifndef CONFIG_44x -void * +void __iomem * ioremap(phys_addr_t addr, unsigned long size) { return __ioremap(addr, size, _PAGE_NO_CACHE); } #else /* CONFIG_44x */ -void * +void __iomem * ioremap64(unsigned long long addr, unsigned long size) { return __ioremap(addr, size, _PAGE_NO_CACHE); } -void * +void __iomem * ioremap(phys_addr_t addr, unsigned long size) { phys_addr_t addr64 = fixup_bigphys_addr(addr, size); @@ -174,7 +174,7 @@ ioremap(phys_addr_t addr, unsigned long size) } #endif /* CONFIG_44x */ -void * +void __iomem * __ioremap(phys_addr_t addr, unsigned long size, unsigned long flags) { unsigned long v, i; @@ -257,10 +257,10 @@ __ioremap(phys_addr_t addr, unsigned long size, unsigned long flags) } out: - return (void *) (v + ((unsigned long)addr & ~PAGE_MASK)); + return (void __iomem *) (v + ((unsigned long)addr & ~PAGE_MASK)); } -void iounmap(void *addr) +void iounmap(volatile void __iomem *addr) { /* * If mapped by BATs then there is nothing to do.