[Intel-gfx] [PATCH 1/9] mm: move mmu_find_ops to mmu_notifier.c
Jesse Barnes
jbarnes at virtuousgeek.org
Fri Sep 4 09:58:55 PDT 2015
For use by other modules.
Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
---
drivers/misc/sgi-gru/grutlbpurge.c | 19 -------------------
include/linux/mmu_notifier.h | 8 ++++++++
mm/mmu_notifier.c | 19 +++++++++++++++++++
3 files changed, 27 insertions(+), 19 deletions(-)
diff --git a/drivers/misc/sgi-gru/grutlbpurge.c b/drivers/misc/sgi-gru/grutlbpurge.c
index 2129274..0f86892 100644
--- a/drivers/misc/sgi-gru/grutlbpurge.c
+++ b/drivers/misc/sgi-gru/grutlbpurge.c
@@ -275,25 +275,6 @@ static const struct mmu_notifier_ops gru_mmuops = {
.release = gru_release,
};
-/* Move this to the basic mmu_notifier file. But for now... */
-static struct mmu_notifier *mmu_find_ops(struct mm_struct *mm,
- const struct mmu_notifier_ops *ops)
-{
- struct mmu_notifier *mn, *gru_mn = NULL;
-
- if (mm->mmu_notifier_mm) {
- rcu_read_lock();
- hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list,
- hlist)
- if (mn->ops == ops) {
- gru_mn = mn;
- break;
- }
- rcu_read_unlock();
- }
- return gru_mn;
-}
-
struct gru_mm_struct *gru_register_mmu_notifier(void)
{
struct gru_mm_struct *gms;
diff --git a/include/linux/mmu_notifier.h b/include/linux/mmu_notifier.h
index 61cd67f..0a78f5e 100644
--- a/include/linux/mmu_notifier.h
+++ b/include/linux/mmu_notifier.h
@@ -215,6 +215,8 @@ extern void __mmu_notifier_invalidate_range_end(struct mm_struct *mm,
unsigned long start, unsigned long end);
extern void __mmu_notifier_invalidate_range(struct mm_struct *mm,
unsigned long start, unsigned long end);
+extern struct mmu_notifier *mmu_find_ops(struct mm_struct *mm,
+ const struct mmu_notifier_ops *ops);
static inline void mmu_notifier_release(struct mm_struct *mm)
{
@@ -425,6 +427,12 @@ static inline void mmu_notifier_mm_destroy(struct mm_struct *mm)
{
}
+static inline struct mmu_notifier *mmu_find_ops(struct mm_struct *mm,
+ struct mmu_notifier_ops *ops)
+{
+ return NULL;
+}
+
#define ptep_clear_flush_young_notify ptep_clear_flush_young
#define pmdp_clear_flush_young_notify pmdp_clear_flush_young
#define ptep_clear_flush_notify ptep_clear_flush
diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c
index 3b9b3d0..d978138 100644
--- a/mm/mmu_notifier.c
+++ b/mm/mmu_notifier.c
@@ -389,6 +389,25 @@ void mmu_notifier_unregister_no_release(struct mmu_notifier *mn,
}
EXPORT_SYMBOL_GPL(mmu_notifier_unregister_no_release);
+struct mmu_notifier *mmu_find_ops(struct mm_struct *mm,
+ const struct mmu_notifier_ops *ops)
+{
+ struct mmu_notifier *mn, *tmp_mn = NULL;
+
+ if (mm->mmu_notifier_mm) {
+ rcu_read_lock();
+ hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list,
+ hlist)
+ if (mn->ops == ops) {
+ tmp_mn = mn;
+ break;
+ }
+ rcu_read_unlock();
+ }
+ return tmp_mn;
+}
+EXPORT_SYMBOL_GPL(mmu_find_ops);
+
static int __init mmu_notifier_init(void)
{
return init_srcu_struct(&srcu);
--
1.9.1
More information about the Intel-gfx
mailing list