[MIPS] Do not lose upper 32-bit on MIPS32 with 64-bit addresses in __pte().
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
65316fd13a
commit
d34555fb20
|
@ -77,15 +77,17 @@ static inline void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
|
||||||
#ifdef CONFIG_CPU_MIPS32
|
#ifdef CONFIG_CPU_MIPS32
|
||||||
typedef struct { unsigned long pte_low, pte_high; } pte_t;
|
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_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
|
#else
|
||||||
typedef struct { unsigned long long pte; } pte_t;
|
typedef struct { unsigned long long pte; } pte_t;
|
||||||
#define pte_val(x) ((x).pte)
|
#define pte_val(x) ((x).pte)
|
||||||
|
#define __pte(x) ((pte_t) { (x) } )
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
typedef struct { unsigned long pte; } pte_t;
|
typedef struct { unsigned long pte; } pte_t;
|
||||||
#define pte_val(x) ((x).pte)
|
#define pte_val(x) ((x).pte)
|
||||||
#endif
|
|
||||||
#define __pte(x) ((pte_t) { (x) } )
|
#define __pte(x) ((pte_t) { (x) } )
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For 3-level pagetables we defines these ourselves, for 2-level the
|
* For 3-level pagetables we defines these ourselves, for 2-level the
|
||||||
|
|
Loading…
Reference in New Issue