Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d34555fb authored by Ralf Baechle's avatar Ralf Baechle
Browse files

[MIPS] Do not lose upper 32-bit on MIPS32 with 64-bit addresses in __pte().

parent 65316fd1
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -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