lkml.org 
[lkml]   [2009]   [May]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[RFC v2][PATCH 28/35] mips: use pte_offset_kernel() as base for pte_offset_map*()
    From
    Date

    Some architectures use pte_offset_map() as a basis for
    pte_offset_kernel(). Others do the inverse.

    Although arbitrary, Using pte_offset_kernel() as the base
    seems a wee bit more popular and it also fits in well
    with the way I'm breaking out the headers.

    Instead of coding the same implementation twice, this
    makes pte_offset_map{,_nested}() call pte_offset_kernel()
    directly.

    On MIPS, it is also obvious at this point that the 32 and
    64-bit implementations are identical. Coalesce them.

    Signed-off-by: Dave Hansen <dave@linux.vnet.ibm.com>
    ---

    linux-2.6.git-dave/arch/mips/include/asm/pgtable-32.h | 3 +--
    linux-2.6.git-dave/arch/mips/include/asm/pgtable-64.h | 3 +--
    linux-2.6.git-dave/arch/mips/include/asm/ptemap.h | 17 ++---------------
    3 files changed, 4 insertions(+), 19 deletions(-)

    diff -puN arch/mips/include/asm/pgtable-32.h~mips-pte_offset_kernel arch/mips/include/asm/pgtable-32.h
    --- linux-2.6.git/arch/mips/include/asm/pgtable-32.h~mips-pte_offset_kernel 2009-04-30 15:11:09.000000000 -0700
    +++ linux-2.6.git-dave/arch/mips/include/asm/pgtable-32.h 2009-04-30 15:11:09.000000000 -0700
    @@ -149,8 +149,7 @@ pfn_pte(unsigned long pfn, pgprot_t prot
    (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
    #define pte_offset(dir, address) \
    ((pte_t *) pmd_page_vaddr(*(dir)) + __pte_offset(address))
    -#define pte_offset_kernel(dir, address) \
    - ((pte_t *) pmd_page_vaddr(*(dir)) + __pte_offset(address))
    +#define pte_offset_kernel(dir, address) pte_offset(dir, address)
    #include <asm/ptemap.h>

    #if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
    diff -puN arch/mips/include/asm/pgtable-64.h~mips-pte_offset_kernel arch/mips/include/asm/pgtable-64.h
    --- linux-2.6.git/arch/mips/include/asm/pgtable-64.h~mips-pte_offset_kernel 2009-04-30 15:11:09.000000000 -0700
    +++ linux-2.6.git-dave/arch/mips/include/asm/pgtable-64.h 2009-04-30 15:11:09.000000000 -0700
    @@ -213,8 +213,7 @@ static inline pmd_t *pmd_offset(pud_t *
    (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
    #define pte_offset(dir, address) \
    ((pte_t *) pmd_page_vaddr(*(dir)) + __pte_offset(address))
    -#define pte_offset_kernel(dir, address) \
    - ((pte_t *) pmd_page_vaddr(*(dir)) + __pte_offset(address))
    +#define pte_offset_kernel(dir, address) pte_offset(dir, address)
    #include <asm/ptemap.h>
    /*
    * Initialize a new pgd / pmd table with invalid pointers.
    diff -puN arch/mips/include/asm/ptemap.h~mips-pte_offset_kernel arch/mips/include/asm/ptemap.h
    --- linux-2.6.git/arch/mips/include/asm/ptemap.h~mips-pte_offset_kernel 2009-04-30 15:11:09.000000000 -0700
    +++ linux-2.6.git-dave/arch/mips/include/asm/ptemap.h 2009-04-30 15:11:09.000000000 -0700
    @@ -1,22 +1,9 @@
    #ifndef _MIPS_ASM_PTEMAP_H
    #define _MIPS_ASM_PTEMAP_H

    -#ifdef CONFIG_32BIT
    -#define pte_offset_map(dir, address) \
    - ((pte_t *)page_address(pmd_page(*(dir))) + __pte_offset(address))
    -#define pte_offset_map_nested(dir, address) \
    - ((pte_t *)page_address(pmd_page(*(dir))) + __pte_offset(address))
    +#define pte_offset_map(dir, address) pte_offset_kernel(dir, address)
    +#define pte_offset_map_nested(dir, address) pte_offset_kernel(dir, address)
    #define pte_unmap(pte) ((void)(pte))
    #define pte_unmap_nested(pte) ((void)(pte))
    -#endif
    -
    -#ifdef CONFIG_64BIT
    -#define pte_offset_map(dir, address) \
    - ((pte_t *)page_address(pmd_page(*(dir))) + __pte_offset(address))
    -#define pte_offset_map_nested(dir, address) \
    - ((pte_t *)page_address(pmd_page(*(dir))) + __pte_offset(address))
    -#define pte_unmap(pte) ((void)(pte))
    -#define pte_unmap_nested(pte) ((void)(pte))
    -#endif

    #endif /* _MIPS_ASM_PTEMAP_H */
    _

    \
     
     \ /
      Last update: 2009-05-20 20:55    [W:4.199 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site