diff options
Diffstat (limited to 'include/asm-ia64/pgtable.h')
-rw-r--r-- | include/asm-ia64/pgtable.h | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/include/asm-ia64/pgtable.h b/include/asm-ia64/pgtable.h index 6580f31b3135..de6d01e24dd0 100644 --- a/include/asm-ia64/pgtable.h +++ b/include/asm-ia64/pgtable.h | |||
@@ -297,8 +297,6 @@ ia64_phys_addr_valid (unsigned long addr) | |||
297 | /* | 297 | /* |
298 | * The following have defined behavior only work if pte_present() is true. | 298 | * The following have defined behavior only work if pte_present() is true. |
299 | */ | 299 | */ |
300 | #define pte_user(pte) ((pte_val(pte) & _PAGE_PL_MASK) == _PAGE_PL_3) | ||
301 | #define pte_read(pte) (((pte_val(pte) & _PAGE_AR_MASK) >> _PAGE_AR_SHIFT) < 6) | ||
302 | #define pte_write(pte) ((unsigned) (((pte_val(pte) & _PAGE_AR_MASK) >> _PAGE_AR_SHIFT) - 2) <= 4) | 300 | #define pte_write(pte) ((unsigned) (((pte_val(pte) & _PAGE_AR_MASK) >> _PAGE_AR_SHIFT) - 2) <= 4) |
303 | #define pte_exec(pte) ((pte_val(pte) & _PAGE_AR_RX) != 0) | 301 | #define pte_exec(pte) ((pte_val(pte) & _PAGE_AR_RX) != 0) |
304 | #define pte_dirty(pte) ((pte_val(pte) & _PAGE_D) != 0) | 302 | #define pte_dirty(pte) ((pte_val(pte) & _PAGE_D) != 0) |
@@ -310,7 +308,6 @@ ia64_phys_addr_valid (unsigned long addr) | |||
310 | */ | 308 | */ |
311 | #define pte_wrprotect(pte) (__pte(pte_val(pte) & ~_PAGE_AR_RW)) | 309 | #define pte_wrprotect(pte) (__pte(pte_val(pte) & ~_PAGE_AR_RW)) |
312 | #define pte_mkwrite(pte) (__pte(pte_val(pte) | _PAGE_AR_RW)) | 310 | #define pte_mkwrite(pte) (__pte(pte_val(pte) | _PAGE_AR_RW)) |
313 | #define pte_mkexec(pte) (__pte(pte_val(pte) | _PAGE_AR_RX)) | ||
314 | #define pte_mkold(pte) (__pte(pte_val(pte) & ~_PAGE_A)) | 311 | #define pte_mkold(pte) (__pte(pte_val(pte) & ~_PAGE_A)) |
315 | #define pte_mkyoung(pte) (__pte(pte_val(pte) | _PAGE_A)) | 312 | #define pte_mkyoung(pte) (__pte(pte_val(pte) | _PAGE_A)) |
316 | #define pte_mkclean(pte) (__pte(pte_val(pte) & ~_PAGE_D)) | 313 | #define pte_mkclean(pte) (__pte(pte_val(pte) & ~_PAGE_D)) |
@@ -398,22 +395,6 @@ ptep_test_and_clear_young (struct vm_area_struct *vma, unsigned long addr, pte_t | |||
398 | #endif | 395 | #endif |
399 | } | 396 | } |
400 | 397 | ||
401 | static inline int | ||
402 | ptep_test_and_clear_dirty (struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) | ||
403 | { | ||
404 | #ifdef CONFIG_SMP | ||
405 | if (!pte_dirty(*ptep)) | ||
406 | return 0; | ||
407 | return test_and_clear_bit(_PAGE_D_BIT, ptep); | ||
408 | #else | ||
409 | pte_t pte = *ptep; | ||
410 | if (!pte_dirty(pte)) | ||
411 | return 0; | ||
412 | set_pte_at(vma->vm_mm, addr, ptep, pte_mkclean(pte)); | ||
413 | return 1; | ||
414 | #endif | ||
415 | } | ||
416 | |||
417 | static inline pte_t | 398 | static inline pte_t |
418 | ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) | 399 | ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) |
419 | { | 400 | { |
@@ -546,8 +527,10 @@ extern void lazy_mmu_prot_update (pte_t pte); | |||
546 | # define ptep_set_access_flags(__vma, __addr, __ptep, __entry, __safely_writable) \ | 527 | # define ptep_set_access_flags(__vma, __addr, __ptep, __entry, __safely_writable) \ |
547 | ({ \ | 528 | ({ \ |
548 | int __changed = !pte_same(*(__ptep), __entry); \ | 529 | int __changed = !pte_same(*(__ptep), __entry); \ |
549 | if (__changed) \ | 530 | if (__changed) { \ |
550 | ptep_establish(__vma, __addr, __ptep, __entry); \ | 531 | set_pte_at((__vma)->vm_mm, (__addr), __ptep, __entry); \ |
532 | flush_tlb_page(__vma, __addr); \ | ||
533 | } \ | ||
551 | __changed; \ | 534 | __changed; \ |
552 | }) | 535 | }) |
553 | #endif | 536 | #endif |
@@ -591,7 +574,6 @@ extern void lazy_mmu_prot_update (pte_t pte); | |||
591 | #endif | 574 | #endif |
592 | 575 | ||
593 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG | 576 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG |
594 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY | ||
595 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR | 577 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
596 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT | 578 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT |
597 | #define __HAVE_ARCH_PTE_SAME | 579 | #define __HAVE_ARCH_PTE_SAME |