The macro version of mmu_notifier_range_init() for CONFIG_MMU_NOTIFIER=n
does not evaluate all its arguments, leading to a warning in one case:

mm/migrate.c: In function 'migrate_vma_pages':
mm/migrate.c:2711:20: error: unused variable 'mm' [-Werror=unused-variable]
  struct mm_struct *mm = vma->vm_mm;

Pass down the 'mm' as into the inline function as well so gcc can
see why the variable exists.

Fixes: 137d92bd73b1 ("mm/mmu_notifier: use structure for 
invalidate_range_start/end calls v2")
Signed-off-by: Arnd Bergmann <[email protected]>
---
 include/linux/mmu_notifier.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/include/linux/mmu_notifier.h b/include/linux/mmu_notifier.h
index 29f7b9670ba3..b13ea00ded5d 100644
--- a/include/linux/mmu_notifier.h
+++ b/include/linux/mmu_notifier.h
@@ -476,6 +476,7 @@ struct mmu_notifier_range {
 };
 
 static inline void _mmu_notifier_range_init(struct mmu_notifier_range *range,
+                                           struct mm_struct *mm,
                                            unsigned long start,
                                            unsigned long end)
 {
@@ -484,7 +485,7 @@ static inline void _mmu_notifier_range_init(struct 
mmu_notifier_range *range,
 }
 
 #define mmu_notifier_range_init(range, mm, start, end, event) \
-       _mmu_notifier_range_init(range, start, end)
+       _mmu_notifier_range_init(range, mm, start, end)
 
 
 static inline int mm_has_notifiers(struct mm_struct *mm)
-- 
2.20.0

Reply via email to