aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/asm-frv/pgtable.h8
-rw-r--r--include/asm-generic/pgtable.h25
-rw-r--r--include/asm-i386/pgtable.h21
-rw-r--r--include/asm-ia64/pgtable.h17
-rw-r--r--include/asm-m32r/pgtable.h6
-rw-r--r--include/asm-parisc/pgtable.h16
-rw-r--r--include/asm-powerpc/pgtable-ppc32.h7
-rw-r--r--include/asm-powerpc/pgtable-ppc64.h31
-rw-r--r--include/asm-ppc/pgtable.h7
-rw-r--r--include/asm-s390/pgtable.h15
-rw-r--r--include/asm-x86_64/pgtable.h8
-rw-r--r--include/asm-xtensa/pgtable.h12
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
388static inline pte_t pte_mkyoung(pte_t pte) { (pte).pte |= _PAGE_ACCESSED; return pte; } 388static inline pte_t pte_mkyoung(pte_t pte) { (pte).pte |= _PAGE_ACCESSED; return pte; }
389static inline pte_t pte_mkwrite(pte_t pte) { (pte).pte &= ~_PAGE_WP; return pte; } 389static inline pte_t pte_mkwrite(pte_t pte) { (pte).pte &= ~_PAGE_WP; return pte; }
390 390
391static 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
398static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) 391static 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
398static inline int
399ptep_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
414static inline pte_t 398static inline pte_t
415ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) 399ptep_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
253static 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
258static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) 253static 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
450static 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
465extern spinlock_t pa_dbit_lock; 450extern spinlock_t pa_dbit_lock;
466 451
467struct mm_struct; 452struct 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
625static 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
632static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, 625static 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 */
300static 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
319static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, 296static 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
354static inline pte_t ptep_get_and_clear(struct mm_struct *mm, 323static 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
658static 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
665static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, 658static 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
672static inline int ptep_test_and_clear_dirty(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep)
673{
674 return 0;
675}
676
677static inline int
678ptep_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
685static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) 672static 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
285struct vm_area_struct; 285struct vm_area_struct;
286 286
287static 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
294static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) 287static 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
270static inline int
271ptep_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
281static inline pte_t 270static inline pte_t
282ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) 271ptep_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