diff options
| author | Paul Mundt <lethal@linux-sh.org> | 2011-01-14 10:06:31 +0300 |
|---|---|---|
| committer | Paul Mundt <lethal@linux-sh.org> | 2011-01-14 10:06:31 +0300 |
| commit | c488a4731abb53aa1bab9fccd8a7472083159bfd (patch) | |
| tree | db6d4a664a1e4b7685c1d2d79da63263f40adf7b /mm/mmu_notifier.c | |
| parent | 6d2ae89c36e2adab5cfa69fecb11290082817ac6 (diff) | |
| parent | bba958783b1b4cb0a9420f4e11082467132a334c (diff) | |
| download | linux-c488a4731abb53aa1bab9fccd8a7472083159bfd.tar.xz | |
Merge branch 'common/mmcif' into rmobile-latest
Diffstat (limited to 'mm/mmu_notifier.c')
| -rw-r--r-- | mm/mmu_notifier.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c index 438951d366f2..8d032de4088e 100644 --- a/mm/mmu_notifier.c +++ b/mm/mmu_notifier.c @@ -100,6 +100,26 @@ int __mmu_notifier_clear_flush_young(struct mm_struct *mm, return young; } +int __mmu_notifier_test_young(struct mm_struct *mm, + unsigned long address) +{ + struct mmu_notifier *mn; + struct hlist_node *n; + int young = 0; + + rcu_read_lock(); + hlist_for_each_entry_rcu(mn, n, &mm->mmu_notifier_mm->list, hlist) { + if (mn->ops->test_young) { + young = mn->ops->test_young(mn, mm, address); + if (young) + break; + } + } + rcu_read_unlock(); + + return young; +} + void __mmu_notifier_change_pte(struct mm_struct *mm, unsigned long address, pte_t pte) { |
