X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-alpha%2Fpgtable.h;h=a22e394a3d52665e7dcd27cd26310e69eb386906;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=3f1ed39d25e407954e20a683fe3a9c25de8ca20f;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/include/asm-alpha/pgtable.h b/include/asm-alpha/pgtable.h index 3f1ed39d2..a22e394a3 100644 --- a/include/asm-alpha/pgtable.h +++ b/include/asm-alpha/pgtable.h @@ -1,6 +1,8 @@ #ifndef _ALPHA_PGTABLE_H #define _ALPHA_PGTABLE_H +#include + /* * This file contains the functions and defines necessary to modify and use * the Alpha page table tree. @@ -192,7 +194,7 @@ extern unsigned long __zero_page(void); * and a page entry and page directory to the page they refer to. */ #ifndef CONFIG_DISCONTIGMEM -#define page_to_pa(page) ((page - mem_map) << PAGE_SHIFT) +#define page_to_pa(page) (((page) - mem_map) << PAGE_SHIFT) #define pte_pfn(pte) (pte_val(pte) >> 32) #define pte_page(pte) pfn_to_page(pte_pfn(pte)) @@ -270,10 +272,10 @@ extern inline pte_t pte_mkyoung(pte_t pte) { pte_val(pte) |= __ACCESS_BITS; retu #define PAGE_DIR_OFFSET(tsk,address) pgd_offset((tsk),(address)) /* to find an entry in a kernel page-table-directory */ -#define pgd_offset_k(address) pgd_offset(&init_mm, address) +#define pgd_offset_k(address) pgd_offset(&init_mm, (address)) /* to find an entry in a page-table-directory. */ -#define pgd_index(address) ((address >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1)) +#define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1)) #define pgd_offset(mm, address) ((mm)->pgd+pgd_index(address)) /* Find an entry in the second-level page table.. */ @@ -327,8 +329,12 @@ extern inline pte_t mk_swap_pte(unsigned long type, unsigned long offset) #define kern_addr_valid(addr) (1) #endif -#define io_remap_page_range(vma, start, busaddr, size, prot) \ - remap_page_range(vma, start, virt_to_phys((void *)__ioremap(busaddr, size)), size, prot) +#define io_remap_page_range(vma, start, busaddr, size, prot) \ +({ \ + void *va = (void __force *)ioremap(busaddr, size); \ + unsigned long pfn = virt_to_phys(va) >> PAGE_SHIFT; \ + remap_pfn_range(vma, start, pfn, size, prot); \ +}) #define pte_ERROR(e) \ printk("%s:%d: bad pte %016lx.\n", __FILE__, __LINE__, pte_val(e))