diff options
Diffstat (limited to 'arch/parisc/include/asm/pgtable.h')
| -rw-r--r-- | arch/parisc/include/asm/pgtable.h | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/parisc/include/asm/pgtable.h b/arch/parisc/include/asm/pgtable.h index 3e7cf882639f..939db6fe620b 100644 --- a/arch/parisc/include/asm/pgtable.h +++ b/arch/parisc/include/asm/pgtable.h @@ -70,9 +70,9 @@ static inline void purge_tlb_entries(struct mm_struct *mm, unsigned long addr)  	unsigned long flags;  	purge_tlb_start(flags); -	mtsp(mm->context, 1); -	pdtlb(addr); -	pitlb(addr); +	mtsp(mm->context.space_id, SR_TEMP1); +	pdtlb(SR_TEMP1, addr); +	pitlb(SR_TEMP1, addr);  	purge_tlb_end(flags);  } @@ -219,9 +219,10 @@ extern void __update_cache(pte_t pte);  #define _PAGE_PRESENT  (1 << xlate_pabit(_PAGE_PRESENT_BIT))  #define _PAGE_HUGE     (1 << xlate_pabit(_PAGE_HPAGE_BIT))  #define _PAGE_USER     (1 << xlate_pabit(_PAGE_USER_BIT)) +#define _PAGE_SPECIAL  (_PAGE_DMB)  #define _PAGE_TABLE	(_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | _PAGE_DIRTY | _PAGE_ACCESSED) -#define _PAGE_CHG_MASK	(PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY) +#define _PAGE_CHG_MASK	(PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_SPECIAL)  #define _PAGE_KERNEL_RO	(_PAGE_PRESENT | _PAGE_READ | _PAGE_DIRTY | _PAGE_ACCESSED)  #define _PAGE_KERNEL_EXEC	(_PAGE_KERNEL_RO | _PAGE_EXEC)  #define _PAGE_KERNEL_RWX	(_PAGE_KERNEL_EXEC | _PAGE_WRITE) @@ -348,6 +349,7 @@ static inline void pud_clear(pud_t *pud) {  static inline int pte_dirty(pte_t pte)		{ return pte_val(pte) & _PAGE_DIRTY; }  static inline int pte_young(pte_t pte)		{ return pte_val(pte) & _PAGE_ACCESSED; }  static inline int pte_write(pte_t pte)		{ return pte_val(pte) & _PAGE_WRITE; } +static inline int pte_special(pte_t pte)	{ return pte_val(pte) & _PAGE_SPECIAL; }  static inline pte_t pte_mkclean(pte_t pte)	{ pte_val(pte) &= ~_PAGE_DIRTY; return pte; }  static inline pte_t pte_mkold(pte_t pte)	{ pte_val(pte) &= ~_PAGE_ACCESSED; return pte; } @@ -355,6 +357,7 @@ static inline pte_t pte_wrprotect(pte_t pte)	{ pte_val(pte) &= ~_PAGE_WRITE; ret  static inline pte_t pte_mkdirty(pte_t pte)	{ pte_val(pte) |= _PAGE_DIRTY; return pte; }  static inline pte_t pte_mkyoung(pte_t pte)	{ pte_val(pte) |= _PAGE_ACCESSED; return pte; }  static inline pte_t pte_mkwrite(pte_t pte)	{ pte_val(pte) |= _PAGE_WRITE; return pte; } +static inline pte_t pte_mkspecial(pte_t pte)	{ pte_val(pte) |= _PAGE_SPECIAL; return pte; }  /*   * Huge pte definitions. @@ -405,6 +408,7 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd)  	return ((unsigned long) __va(pmd_address(pmd)));  } +#define pmd_pfn(pmd)	(pmd_address(pmd) >> PAGE_SHIFT)  #define __pmd_page(pmd) ((unsigned long) __va(pmd_address(pmd)))  #define pmd_page(pmd)	virt_to_page((void *)__pmd_page(pmd))  |