From: Ralf Baechle Date: Thu, 31 Aug 2006 18:39:09 +0000 (+0100) Subject: [MIPS] Do not lose upper 32-bit on MIPS32 with 64-bit addresses in __pte(). X-Git-Tag: v2.6.19-rc1~1042 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=d34555fb20e7abf33f86d7aa3ec0826343f38256;p=linux-2.6-omap-h63xx.git [MIPS] Do not lose upper 32-bit on MIPS32 with 64-bit addresses in __pte(). Signed-off-by: Ralf Baechle --- diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h index c3b872b047d..85b258ee709 100644 --- a/include/asm-mips/page.h +++ b/include/asm-mips/page.h @@ -77,15 +77,17 @@ static inline void copy_user_page(void *vto, void *vfrom, unsigned long vaddr, #ifdef CONFIG_CPU_MIPS32 typedef struct { unsigned long pte_low, pte_high; } pte_t; #define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32)) + #define __pte(x) ({ pte_t __pte = {(x), ((unsigned long long)(x)) >> 32}; __pte; }) #else typedef struct { unsigned long long pte; } pte_t; #define pte_val(x) ((x).pte) + #define __pte(x) ((pte_t) { (x) } ) #endif #else typedef struct { unsigned long pte; } pte_t; #define pte_val(x) ((x).pte) -#endif #define __pte(x) ((pte_t) { (x) } ) +#endif /* * For 3-level pagetables we defines these ourselves, for 2-level the