lkml.org 
[lkml]   [2018]   [Dec]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] mm/mmu_notifier: fix mmu_notifier_range_init warning
    On Tue, Dec 11, 2018 at 01:12:54PM -0800, David Rientjes wrote:
    > On Tue, 11 Dec 2018, Jerome Glisse wrote:
    >
    > > 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);
    > > }
    >
    > Wouldn't it be better to just declare mmu_notifier_range_init() as a
    > static inline function rather than a #define to avoid this warning?

    The define trick is use to drop the event parameter so that we do not
    need to define the event value for CONFIG_MMU_NOTIFIER=n case.

    Cheers,
    Jérôme

    \
     
     \ /
      Last update: 2018-12-11 22:37    [W:9.442 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site