diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /mm/mmu_notifier.c | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
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, | |||
100 | return young; | 100 | return young; |
101 | } | 101 | } |
102 | 102 | ||
103 | int __mmu_notifier_test_young(struct mm_struct *mm, | ||
104 | unsigned long address) | ||
105 | { | ||
106 | struct mmu_notifier *mn; | ||
107 | struct hlist_node *n; | ||
108 | int young = 0; | ||
109 | |||
110 | rcu_read_lock(); | ||
111 | hlist_for_each_entry_rcu(mn, n, &mm->mmu_notifier_mm->list, hlist) { | ||
112 | if (mn->ops->test_young) { | ||
113 | young = mn->ops->test_young(mn, mm, address); | ||
114 | if (young) | ||
115 | break; | ||
116 | } | ||
117 | } | ||
118 | rcu_read_unlock(); | ||
119 | |||
120 | return young; | ||
121 | } | ||
122 | |||
103 | void __mmu_notifier_change_pte(struct mm_struct *mm, unsigned long address, | 123 | void __mmu_notifier_change_pte(struct mm_struct *mm, unsigned long address, |
104 | pte_t pte) | 124 | pte_t pte) |
105 | { | 125 | { |