Commit 345f0c6e authored by David S. Miller's avatar David S. Miller

[SPARC64]: Override {pgd,pmd}_addr_end() to handle vaddr hole.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7bcfc318
......@@ -141,10 +141,12 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addres
* wrap to 0 only in clear_page_range, __boundary may wrap to 0 throughout.
*/
#ifndef pgd_addr_end
#define pgd_addr_end(addr, end) \
({ unsigned long __boundary = ((addr) + PGDIR_SIZE) & PGDIR_MASK; \
(__boundary - 1 < (end) - 1)? __boundary: (end); \
})
#endif
#ifndef pud_addr_end
#define pud_addr_end(addr, end) \
......
......@@ -432,6 +432,21 @@ extern int io_remap_page_range(struct vm_area_struct *vma, unsigned long from,
unsigned long offset,
unsigned long size, pgprot_t prot, int space);
/* Override for {pgd,pmd}_addr_end() to deal with the virtual address
* space hole. We simply sign extend bit 43.
*/
#define pgd_addr_end(addr, end) \
({ unsigned long __boundary = ((addr) + PGDIR_SIZE) & PGDIR_MASK; \
__boundary = ((long) (__boundary << 20)) >> 20; \
(__boundary - 1 < (end) - 1)? __boundary: (end); \
})
#define pmd_addr_end(addr, end) \
({ unsigned long __boundary = ((addr) + PMD_SIZE) & PMD_MASK; \
__boundary = ((long) (__boundary << 20)) >> 20; \
(__boundary - 1 < (end) - 1)? __boundary: (end); \
})
#include <asm-generic/pgtable.h>
/* We provide our own get_unmapped_area to cope with VA holes for userland */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment