diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2007-07-17 07:03:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-17 13:22:59 -0400 |
commit | e21ea246bce5bb93dd822de420172ec280aed492 (patch) | |
tree | d624d1257728d8d869d54420c83d4bf4c4e19189 | |
parent | f0e47c229b489e37ba7e4159ef7f9cf9ccd44e19 (diff) |
mm: remove ptep_test_and_clear_dirty and ptep_clear_flush_dirty
Nobody is using ptep_test_and_clear_dirty and ptep_clear_flush_dirty. Remove
the functions from all architectures.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | include/asm-frv/pgtable.h | 8 | ||||
-rw-r--r-- | include/asm-generic/pgtable.h | 25 | ||||
-rw-r--r-- | include/asm-i386/pgtable.h | 21 | ||||
-rw-r--r-- | include/asm-ia64/pgtable.h | 17 | ||||
-rw-r--r-- | include/asm-m32r/pgtable.h | 6 | ||||
-rw-r--r-- | include/asm-parisc/pgtable.h | 16 | ||||
-rw-r--r-- | include/asm-powerpc/pgtable-ppc32.h | 7 | ||||
-rw-r--r-- | include/asm-powerpc/pgtable-ppc64.h | 31 | ||||
-rw-r--r-- | include/asm-ppc/pgtable.h | 7 | ||||
-rw-r--r-- | include/asm-s390/pgtable.h | 15 | ||||
-rw-r--r-- | include/asm-x86_64/pgtable.h | 8 | ||||
-rw-r--r-- | include/asm-xtensa/pgtable.h | 12 |
12 files changed, 0 insertions, 173 deletions
diff --git a/include/asm-frv/pgtable.h b/include/asm-frv/pgtable.h index adde69985255..147e995bec24 100644 --- a/include/asm-frv/pgtable.h +++ b/include/asm-frv/pgtable.h | |||
@@ -388,13 +388,6 @@ static inline pte_t pte_mkdirty(pte_t pte) { (pte).pte |= _PAGE_DIRTY; return pt | |||
388 | static inline pte_t pte_mkyoung(pte_t pte) { (pte).pte |= _PAGE_ACCESSED; return pte; } | 388 | static inline pte_t pte_mkyoung(pte_t pte) { (pte).pte |= _PAGE_ACCESSED; return pte; } |
389 | static inline pte_t pte_mkwrite(pte_t pte) { (pte).pte &= ~_PAGE_WP; return pte; } | 389 | static inline pte_t pte_mkwrite(pte_t pte) { (pte).pte &= ~_PAGE_WP; return pte; } |
390 | 390 | ||
391 | static inline int ptep_test_and_clear_dirty(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) | ||
392 | { | ||
393 | int i = test_and_clear_bit(_PAGE_BIT_DIRTY, ptep); | ||
394 | asm volatile("dcf %M0" :: "U"(*ptep)); | ||
395 | return i; | ||
396 | } | ||
397 | |||
398 | static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) | 391 | static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) |
399 | { | 392 | { |
400 | int i = test_and_clear_bit(_PAGE_BIT_ACCESSED, ptep); | 393 | int i = test_and_clear_bit(_PAGE_BIT_ACCESSED, ptep); |
@@ -504,7 +497,6 @@ static inline int pte_file(pte_t pte) | |||
504 | remap_pfn_range(vma, vaddr, pfn, size, prot) | 497 | remap_pfn_range(vma, vaddr, pfn, size, prot) |
505 | 498 | ||
506 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG | 499 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG |
507 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY | ||
508 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR | 500 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
509 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT | 501 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT |
510 | #define __HAVE_ARCH_PTE_SAME | 502 | #define __HAVE_ARCH_PTE_SAME |
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h index aa3f1202a177..f605e8d0eed3 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h | |||
@@ -49,31 +49,6 @@ | |||
49 | }) | 49 | }) |
50 | #endif | 50 | #endif |
51 | 51 | ||
52 | #ifndef __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY | ||
53 | #define ptep_test_and_clear_dirty(__vma, __address, __ptep) \ | ||
54 | ({ \ | ||
55 | pte_t __pte = *__ptep; \ | ||
56 | int r = 1; \ | ||
57 | if (!pte_dirty(__pte)) \ | ||
58 | r = 0; \ | ||
59 | else \ | ||
60 | set_pte_at((__vma)->vm_mm, (__address), (__ptep), \ | ||
61 | pte_mkclean(__pte)); \ | ||
62 | r; \ | ||
63 | }) | ||
64 | #endif | ||
65 | |||
66 | #ifndef __HAVE_ARCH_PTEP_CLEAR_DIRTY_FLUSH | ||
67 | #define ptep_clear_flush_dirty(__vma, __address, __ptep) \ | ||
68 | ({ \ | ||
69 | int __dirty; \ | ||
70 | __dirty = ptep_test_and_clear_dirty(__vma, __address, __ptep); \ | ||
71 | if (__dirty) \ | ||
72 | flush_tlb_page(__vma, __address); \ | ||
73 | __dirty; \ | ||
74 | }) | ||
75 | #endif | ||
76 | |||
77 | #ifndef __HAVE_ARCH_PTEP_GET_AND_CLEAR | 52 | #ifndef __HAVE_ARCH_PTEP_GET_AND_CLEAR |
78 | #define ptep_get_and_clear(__mm, __address, __ptep) \ | 53 | #define ptep_get_and_clear(__mm, __address, __ptep) \ |
79 | ({ \ | 54 | ({ \ |
diff --git a/include/asm-i386/pgtable.h b/include/asm-i386/pgtable.h index afb1597ec173..c7fefa6b12fd 100644 --- a/include/asm-i386/pgtable.h +++ b/include/asm-i386/pgtable.h | |||
@@ -289,17 +289,6 @@ static inline pte_t native_local_ptep_get_and_clear(pte_t *ptep) | |||
289 | __changed; \ | 289 | __changed; \ |
290 | }) | 290 | }) |
291 | 291 | ||
292 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY | ||
293 | #define ptep_test_and_clear_dirty(vma, addr, ptep) ({ \ | ||
294 | int __ret = 0; \ | ||
295 | if (pte_dirty(*(ptep))) \ | ||
296 | __ret = test_and_clear_bit(_PAGE_BIT_DIRTY, \ | ||
297 | &(ptep)->pte_low); \ | ||
298 | if (__ret) \ | ||
299 | pte_update((vma)->vm_mm, addr, ptep); \ | ||
300 | __ret; \ | ||
301 | }) | ||
302 | |||
303 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG | 292 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG |
304 | #define ptep_test_and_clear_young(vma, addr, ptep) ({ \ | 293 | #define ptep_test_and_clear_young(vma, addr, ptep) ({ \ |
305 | int __ret = 0; \ | 294 | int __ret = 0; \ |
@@ -311,16 +300,6 @@ static inline pte_t native_local_ptep_get_and_clear(pte_t *ptep) | |||
311 | __ret; \ | 300 | __ret; \ |
312 | }) | 301 | }) |
313 | 302 | ||
314 | #define __HAVE_ARCH_PTEP_CLEAR_DIRTY_FLUSH | ||
315 | #define ptep_clear_flush_dirty(vma, address, ptep) \ | ||
316 | ({ \ | ||
317 | int __dirty; \ | ||
318 | __dirty = ptep_test_and_clear_dirty((vma), (address), (ptep)); \ | ||
319 | if (__dirty) \ | ||
320 | flush_tlb_page(vma, address); \ | ||
321 | __dirty; \ | ||
322 | }) | ||
323 | |||
324 | #define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH | 303 | #define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH |
325 | #define ptep_clear_flush_young(vma, address, ptep) \ | 304 | #define ptep_clear_flush_young(vma, address, ptep) \ |
326 | ({ \ | 305 | ({ \ |
diff --git a/include/asm-ia64/pgtable.h b/include/asm-ia64/pgtable.h index 47642e06b920..de6d01e24dd0 100644 --- a/include/asm-ia64/pgtable.h +++ b/include/asm-ia64/pgtable.h | |||
@@ -395,22 +395,6 @@ ptep_test_and_clear_young (struct vm_area_struct *vma, unsigned long addr, pte_t | |||
395 | #endif | 395 | #endif |
396 | } | 396 | } |
397 | 397 | ||
398 | static inline int | ||
399 | ptep_test_and_clear_dirty (struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) | ||
400 | { | ||
401 | #ifdef CONFIG_SMP | ||
402 | if (!pte_dirty(*ptep)) | ||
403 | return 0; | ||
404 | return test_and_clear_bit(_PAGE_D_BIT, ptep); | ||
405 | #else | ||
406 | pte_t pte = *ptep; | ||
407 | if (!pte_dirty(pte)) | ||
408 | return 0; | ||
409 | set_pte_at(vma->vm_mm, addr, ptep, pte_mkclean(pte)); | ||
410 | return 1; | ||
411 | #endif | ||
412 | } | ||
413 | |||
414 | static inline pte_t | 398 | static inline pte_t |
415 | 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) |
416 | { | 400 | { |
@@ -590,7 +574,6 @@ extern void lazy_mmu_prot_update (pte_t pte); | |||
590 | #endif | 574 | #endif |
591 | 575 | ||
592 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG | 576 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG |
593 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY | ||
594 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR | 577 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
595 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT | 578 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT |
596 | #define __HAVE_ARCH_PTE_SAME | 579 | #define __HAVE_ARCH_PTE_SAME |
diff --git a/include/asm-m32r/pgtable.h b/include/asm-m32r/pgtable.h index 35af58c6b812..92d7266783fd 100644 --- a/include/asm-m32r/pgtable.h +++ b/include/asm-m32r/pgtable.h | |||
@@ -250,11 +250,6 @@ static inline pte_t pte_mkwrite(pte_t pte) | |||
250 | return pte; | 250 | return pte; |
251 | } | 251 | } |
252 | 252 | ||
253 | static inline int ptep_test_and_clear_dirty(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) | ||
254 | { | ||
255 | return test_and_clear_bit(_PAGE_BIT_DIRTY, ptep); | ||
256 | } | ||
257 | |||
258 | static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) | 253 | static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) |
259 | { | 254 | { |
260 | return test_and_clear_bit(_PAGE_BIT_ACCESSED, ptep); | 255 | return test_and_clear_bit(_PAGE_BIT_ACCESSED, ptep); |
@@ -348,7 +343,6 @@ static inline void pmd_set(pmd_t * pmdp, pte_t * ptep) | |||
348 | remap_pfn_range(vma, vaddr, pfn, size, prot) | 343 | remap_pfn_range(vma, vaddr, pfn, size, prot) |
349 | 344 | ||
350 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG | 345 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG |
351 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY | ||
352 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR | 346 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
353 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT | 347 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT |
354 | #define __HAVE_ARCH_PTE_SAME | 348 | #define __HAVE_ARCH_PTE_SAME |
diff --git a/include/asm-parisc/pgtable.h b/include/asm-parisc/pgtable.h index 7e222c8ba739..e88cacd63724 100644 --- a/include/asm-parisc/pgtable.h +++ b/include/asm-parisc/pgtable.h | |||
@@ -447,21 +447,6 @@ static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned | |||
447 | #endif | 447 | #endif |
448 | } | 448 | } |
449 | 449 | ||
450 | static inline int ptep_test_and_clear_dirty(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) | ||
451 | { | ||
452 | #ifdef CONFIG_SMP | ||
453 | if (!pte_dirty(*ptep)) | ||
454 | return 0; | ||
455 | return test_and_clear_bit(xlate_pabit(_PAGE_DIRTY_BIT), &pte_val(*ptep)); | ||
456 | #else | ||
457 | pte_t pte = *ptep; | ||
458 | if (!pte_dirty(pte)) | ||
459 | return 0; | ||
460 | set_pte_at(vma->vm_mm, addr, ptep, pte_mkclean(pte)); | ||
461 | return 1; | ||
462 | #endif | ||
463 | } | ||
464 | |||
465 | extern spinlock_t pa_dbit_lock; | 450 | extern spinlock_t pa_dbit_lock; |
466 | 451 | ||
467 | struct mm_struct; | 452 | struct mm_struct; |
@@ -529,7 +514,6 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, | |||
529 | #define HAVE_ARCH_UNMAPPED_AREA | 514 | #define HAVE_ARCH_UNMAPPED_AREA |
530 | 515 | ||
531 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG | 516 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG |
532 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY | ||
533 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR | 517 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
534 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT | 518 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT |
535 | #define __HAVE_ARCH_PTE_SAME | 519 | #define __HAVE_ARCH_PTE_SAME |
diff --git a/include/asm-powerpc/pgtable-ppc32.h b/include/asm-powerpc/pgtable-ppc32.h index 6c236d4d6262..86a54a4a8a2a 100644 --- a/include/asm-powerpc/pgtable-ppc32.h +++ b/include/asm-powerpc/pgtable-ppc32.h | |||
@@ -621,13 +621,6 @@ static inline int __ptep_test_and_clear_young(unsigned int context, unsigned lon | |||
621 | #define ptep_test_and_clear_young(__vma, __addr, __ptep) \ | 621 | #define ptep_test_and_clear_young(__vma, __addr, __ptep) \ |
622 | __ptep_test_and_clear_young((__vma)->vm_mm->context.id, __addr, __ptep) | 622 | __ptep_test_and_clear_young((__vma)->vm_mm->context.id, __addr, __ptep) |
623 | 623 | ||
624 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY | ||
625 | static inline int ptep_test_and_clear_dirty(struct vm_area_struct *vma, | ||
626 | unsigned long addr, pte_t *ptep) | ||
627 | { | ||
628 | return (pte_update(ptep, (_PAGE_DIRTY | _PAGE_HWWRITE), 0) & _PAGE_DIRTY) != 0; | ||
629 | } | ||
630 | |||
631 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR | 624 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
632 | static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, | 625 | static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, |
633 | pte_t *ptep) | 626 | pte_t *ptep) |
diff --git a/include/asm-powerpc/pgtable-ppc64.h b/include/asm-powerpc/pgtable-ppc64.h index 7ca8b5c10019..300f9a199bf2 100644 --- a/include/asm-powerpc/pgtable-ppc64.h +++ b/include/asm-powerpc/pgtable-ppc64.h | |||
@@ -292,29 +292,6 @@ static inline int __ptep_test_and_clear_young(struct mm_struct *mm, | |||
292 | __r; \ | 292 | __r; \ |
293 | }) | 293 | }) |
294 | 294 | ||
295 | /* | ||
296 | * On RW/DIRTY bit transitions we can avoid flushing the hpte. For the | ||
297 | * moment we always flush but we need to fix hpte_update and test if the | ||
298 | * optimisation is worth it. | ||
299 | */ | ||
300 | static inline int __ptep_test_and_clear_dirty(struct mm_struct *mm, | ||
301 | unsigned long addr, pte_t *ptep) | ||
302 | { | ||
303 | unsigned long old; | ||
304 | |||
305 | if ((pte_val(*ptep) & _PAGE_DIRTY) == 0) | ||
306 | return 0; | ||
307 | old = pte_update(mm, addr, ptep, _PAGE_DIRTY, 0); | ||
308 | return (old & _PAGE_DIRTY) != 0; | ||
309 | } | ||
310 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY | ||
311 | #define ptep_test_and_clear_dirty(__vma, __addr, __ptep) \ | ||
312 | ({ \ | ||
313 | int __r; \ | ||
314 | __r = __ptep_test_and_clear_dirty((__vma)->vm_mm, __addr, __ptep); \ | ||
315 | __r; \ | ||
316 | }) | ||
317 | |||
318 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT | 295 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT |
319 | static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, | 296 | static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, |
320 | pte_t *ptep) | 297 | pte_t *ptep) |
@@ -342,14 +319,6 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, | |||
342 | __young; \ | 319 | __young; \ |
343 | }) | 320 | }) |
344 | 321 | ||
345 | #define __HAVE_ARCH_PTEP_CLEAR_DIRTY_FLUSH | ||
346 | #define ptep_clear_flush_dirty(__vma, __address, __ptep) \ | ||
347 | ({ \ | ||
348 | int __dirty = __ptep_test_and_clear_dirty((__vma)->vm_mm, __address, \ | ||
349 | __ptep); \ | ||
350 | __dirty; \ | ||
351 | }) | ||
352 | |||
353 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR | 322 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
354 | static inline pte_t ptep_get_and_clear(struct mm_struct *mm, | 323 | static inline pte_t ptep_get_and_clear(struct mm_struct *mm, |
355 | unsigned long addr, pte_t *ptep) | 324 | unsigned long addr, pte_t *ptep) |
diff --git a/include/asm-ppc/pgtable.h b/include/asm-ppc/pgtable.h index 18aa776313b9..c159315d2c8f 100644 --- a/include/asm-ppc/pgtable.h +++ b/include/asm-ppc/pgtable.h | |||
@@ -654,13 +654,6 @@ static inline int __ptep_test_and_clear_young(unsigned int context, unsigned lon | |||
654 | #define ptep_test_and_clear_young(__vma, __addr, __ptep) \ | 654 | #define ptep_test_and_clear_young(__vma, __addr, __ptep) \ |
655 | __ptep_test_and_clear_young((__vma)->vm_mm->context.id, __addr, __ptep) | 655 | __ptep_test_and_clear_young((__vma)->vm_mm->context.id, __addr, __ptep) |
656 | 656 | ||
657 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY | ||
658 | static inline int ptep_test_and_clear_dirty(struct vm_area_struct *vma, | ||
659 | unsigned long addr, pte_t *ptep) | ||
660 | { | ||
661 | return (pte_update(ptep, (_PAGE_DIRTY | _PAGE_HWWRITE), 0) & _PAGE_DIRTY) != 0; | ||
662 | } | ||
663 | |||
664 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR | 657 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
665 | static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, | 658 | static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, |
666 | pte_t *ptep) | 659 | pte_t *ptep) |
diff --git a/include/asm-s390/pgtable.h b/include/asm-s390/pgtable.h index 1039bf6b657f..3208dc6c412c 100644 --- a/include/asm-s390/pgtable.h +++ b/include/asm-s390/pgtable.h | |||
@@ -669,19 +669,6 @@ ptep_clear_flush_young(struct vm_area_struct *vma, | |||
669 | return ptep_test_and_clear_young(vma, address, ptep); | 669 | return ptep_test_and_clear_young(vma, address, ptep); |
670 | } | 670 | } |
671 | 671 | ||
672 | static inline int ptep_test_and_clear_dirty(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) | ||
673 | { | ||
674 | return 0; | ||
675 | } | ||
676 | |||
677 | static inline int | ||
678 | ptep_clear_flush_dirty(struct vm_area_struct *vma, | ||
679 | unsigned long address, pte_t *ptep) | ||
680 | { | ||
681 | /* No need to flush TLB; bits are in storage key */ | ||
682 | return ptep_test_and_clear_dirty(vma, address, ptep); | ||
683 | } | ||
684 | |||
685 | static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) | 672 | static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) |
686 | { | 673 | { |
687 | pte_t pte = *ptep; | 674 | pte_t pte = *ptep; |
@@ -939,8 +926,6 @@ extern void memmap_init(unsigned long, int, unsigned long, unsigned long); | |||
939 | #define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS | 926 | #define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS |
940 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG | 927 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG |
941 | #define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH | 928 | #define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH |
942 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY | ||
943 | #define __HAVE_ARCH_PTEP_CLEAR_DIRTY_FLUSH | ||
944 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR | 929 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
945 | #define __HAVE_ARCH_PTEP_CLEAR_FLUSH | 930 | #define __HAVE_ARCH_PTEP_CLEAR_FLUSH |
946 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT | 931 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT |
diff --git a/include/asm-x86_64/pgtable.h b/include/asm-x86_64/pgtable.h index 4f169ac6b10a..3ba53099297d 100644 --- a/include/asm-x86_64/pgtable.h +++ b/include/asm-x86_64/pgtable.h | |||
@@ -284,13 +284,6 @@ static inline pte_t pte_clrhuge(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & | |||
284 | 284 | ||
285 | struct vm_area_struct; | 285 | struct vm_area_struct; |
286 | 286 | ||
287 | static inline int ptep_test_and_clear_dirty(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) | ||
288 | { | ||
289 | if (!pte_dirty(*ptep)) | ||
290 | return 0; | ||
291 | return test_and_clear_bit(_PAGE_BIT_DIRTY, &ptep->pte); | ||
292 | } | ||
293 | |||
294 | static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) | 287 | static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) |
295 | { | 288 | { |
296 | if (!pte_young(*ptep)) | 289 | if (!pte_young(*ptep)) |
@@ -427,7 +420,6 @@ extern int kern_addr_valid(unsigned long addr); | |||
427 | (((o) & (1UL << (__VIRTUAL_MASK_SHIFT-1))) ? ((o) | (~__VIRTUAL_MASK)) : (o)) | 420 | (((o) & (1UL << (__VIRTUAL_MASK_SHIFT-1))) ? ((o) | (~__VIRTUAL_MASK)) : (o)) |
428 | 421 | ||
429 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG | 422 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG |
430 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY | ||
431 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR | 423 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
432 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL | 424 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL |
433 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT | 425 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT |
diff --git a/include/asm-xtensa/pgtable.h b/include/asm-xtensa/pgtable.h index e9fc512cc247..06850f3b26a7 100644 --- a/include/asm-xtensa/pgtable.h +++ b/include/asm-xtensa/pgtable.h | |||
@@ -267,17 +267,6 @@ ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, | |||
267 | return 1; | 267 | return 1; |
268 | } | 268 | } |
269 | 269 | ||
270 | static inline int | ||
271 | ptep_test_and_clear_dirty(struct vm_area_struct *vma, unsigned long addr, | ||
272 | pte_t *ptep) | ||
273 | { | ||
274 | pte_t pte = *ptep; | ||
275 | if (!pte_dirty(pte)) | ||
276 | return 0; | ||
277 | update_pte(ptep, pte_mkclean(pte)); | ||
278 | return 1; | ||
279 | } | ||
280 | |||
281 | static inline pte_t | 270 | static inline pte_t |
282 | ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) | 271 | ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) |
283 | { | 272 | { |
@@ -418,7 +407,6 @@ typedef pte_t *pte_addr_t; | |||
418 | #endif /* !defined (__ASSEMBLY__) */ | 407 | #endif /* !defined (__ASSEMBLY__) */ |
419 | 408 | ||
420 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG | 409 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG |
421 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY | ||
422 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR | 410 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
423 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT | 411 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT |
424 | #define __HAVE_ARCH_PTEP_MKDIRTY | 412 | #define __HAVE_ARCH_PTEP_MKDIRTY |