forked from luck/tmp_suning_uos_patched
mm/mmu_notifier.c: remove mmu_notifier_synchronize()
Contrary to its name, mmu_notifier_synchronize() does not synchronize the notifier's SRCU instance, but rather waits for RCU callbacks to finish. i.e. it invokes rcu_barrier(). The RCU documentation is quite clear on this matter, explicitly calling out that rcu_barrier() does not imply synchronize_rcu(). As there are no callers of mmu_notifier_synchronize() and it's unclear whether any user of mmu_notifier_call_srcu() will ever want to barrier on their callbacks, simply remove the function. Link: http://lkml.kernel.org/r/20181106134705.14197-1-sean.j.christopherson@intel.com Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Jérôme Glisse <jglisse@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
5eb570a8d9
commit
6a90a83f1d
|
@ -420,7 +420,6 @@ static inline void mmu_notifier_mm_destroy(struct mm_struct *mm)
|
||||||
|
|
||||||
extern void mmu_notifier_call_srcu(struct rcu_head *rcu,
|
extern void mmu_notifier_call_srcu(struct rcu_head *rcu,
|
||||||
void (*func)(struct rcu_head *rcu));
|
void (*func)(struct rcu_head *rcu));
|
||||||
extern void mmu_notifier_synchronize(void);
|
|
||||||
|
|
||||||
#else /* CONFIG_MMU_NOTIFIER */
|
#else /* CONFIG_MMU_NOTIFIER */
|
||||||
|
|
||||||
|
|
|
@ -35,13 +35,6 @@ void mmu_notifier_call_srcu(struct rcu_head *rcu,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mmu_notifier_call_srcu);
|
EXPORT_SYMBOL_GPL(mmu_notifier_call_srcu);
|
||||||
|
|
||||||
void mmu_notifier_synchronize(void)
|
|
||||||
{
|
|
||||||
/* Wait for any running method to finish. */
|
|
||||||
srcu_barrier(&srcu);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(mmu_notifier_synchronize);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This function can't run concurrently against mmu_notifier_register
|
* This function can't run concurrently against mmu_notifier_register
|
||||||
* because mm->mm_users > 0 during mmu_notifier_register and exit_mmap
|
* because mm->mm_users > 0 during mmu_notifier_register and exit_mmap
|
||||||
|
|
Loading…
Reference in New Issue
Block a user