diff options
Diffstat (limited to 'include/asm-sh')
-rw-r--r-- | include/asm-sh/page.h | 15 | ||||
-rw-r--r-- | include/asm-sh/pgtable.h | 7 |
2 files changed, 18 insertions, 4 deletions
diff --git a/include/asm-sh/page.h b/include/asm-sh/page.h index 867c07122..24a374d4b 100644 --- a/include/asm-sh/page.h +++ b/include/asm-sh/page.h @@ -76,6 +76,21 @@ extern int console_loglevel; #define PAGE_BUG(page) do { \ BUG(); \ } while (0) + +/* Pure 2^n version of get_order */ +extern __inline__ int get_order(unsigned long size) +{ + int order; + + size = (size-1) >> (PAGE_SHIFT-1); + order = -1; + do { + size >>= 1; + order++; + } while (size); + return order; +} + #endif #endif /* __KERNEL__ */ diff --git a/include/asm-sh/pgtable.h b/include/asm-sh/pgtable.h index cd6dc704a..9dbd7005c 100644 --- a/include/asm-sh/pgtable.h +++ b/include/asm-sh/pgtable.h @@ -250,10 +250,9 @@ extern inline pte_t pte_modify(pte_t pte, pgprot_t newprot) ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK)) /* to find an entry in a page-table-directory. */ -#define __pgd_offset(address) \ - ((address >> PGDIR_SHIFT) & (PTRS_PER_PGD-1)) - -#define pgd_offset(mm, address) ((mm)->pgd+__pgd_offset(address)) +#define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1)) +#define __pgd_offset(address) pgd_index(address) +#define pgd_offset(mm, address) ((mm)->pgd+pgd_index(address)) /* to find an entry in a kernel page-table-directory */ #define pgd_offset_k(address) pgd_offset(&init_mm, address) |