Messages in this thread Patch in this message | | | Date | Tue, 11 Dec 2018 15:19:09 -0500 | From | Jerome Glisse <> | Subject | Re: [PATCH] mm/mmu_notifier: fix mmu_notifier_range_init warning |
| |
On Tue, Dec 11, 2018 at 09:04:43PM +0100, Arnd Bergmann wrote: > 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")
What about changing migrate.c (i actualy tried to do that everywhere in the patchset but i missed that spot) So we avoid one useless variable on such configuration:
diff --git a/mm/migrate.c b/mm/migrate.c index f02bb4b22c1a..883fce631f47 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -2701,7 +2701,6 @@ static void migrate_vma_pages(struct migrate_vma *migrate) const unsigned long npages = migrate->npages; const unsigned long start = migrate->start; struct vm_area_struct *vma = migrate->vma; - struct mm_struct *mm = vma->vm_mm; struct mmu_notifier_range range; unsigned long addr, i; bool notified = false; @@ -2724,8 +2723,8 @@ static void migrate_vma_pages(struct migrate_vma *migrate) if (!notified) { notified = true; - mmu_notifier_range_init(&range, mm, addr, - migrate->end, + mmu_notifier_range_init(&range, vma->vm_mm, + addr, migrate->end, MMU_NOTIFY_CLEAR); mmu_notifier_invalidate_range_start(&range); }
> Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > 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 >
| |