Message ID | 20210320093701.12829-5-linmiaohe@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Cleanup and fixup for mm/migrate.c | expand |
On 20.03.21 10:37, Miaohe Lin wrote: > It's more recommended to use helper function migrate_vma_collect_skip() to > skip the unexpected case and it also helps remove some duplicated codes. > Move migrate_vma_collect_skip() above migrate_vma_collect_hole() to avoid > compiler warning. > > Signed-off-by: Miaohe Lin <linmiaohe@huawei.com> > --- > mm/migrate.c | 28 +++++++++++----------------- > 1 file changed, 11 insertions(+), 17 deletions(-) > > diff --git a/mm/migrate.c b/mm/migrate.c > index 271081b014cb..3e169b72d7b2 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -2315,44 +2315,38 @@ int migrate_misplaced_transhuge_page(struct mm_struct *mm, > #endif /* CONFIG_NUMA */ > > #ifdef CONFIG_DEVICE_PRIVATE > -static int migrate_vma_collect_hole(unsigned long start, > +static int migrate_vma_collect_skip(unsigned long start, > unsigned long end, > - __always_unused int depth, > struct mm_walk *walk) > { > struct migrate_vma *migrate = walk->private; > unsigned long addr; > > - /* Only allow populating anonymous memory. */ > - if (!vma_is_anonymous(walk->vma)) { > - for (addr = start; addr < end; addr += PAGE_SIZE) { > - migrate->src[migrate->npages] = 0; > - migrate->dst[migrate->npages] = 0; > - migrate->npages++; > - } > - return 0; > - } > - > for (addr = start; addr < end; addr += PAGE_SIZE) { > - migrate->src[migrate->npages] = MIGRATE_PFN_MIGRATE; > migrate->dst[migrate->npages] = 0; > - migrate->npages++; > - migrate->cpages++; > + migrate->src[migrate->npages++] = 0; > } > > return 0; > } > > -static int migrate_vma_collect_skip(unsigned long start, > +static int migrate_vma_collect_hole(unsigned long start, > unsigned long end, > + __always_unused int depth, > struct mm_walk *walk) > { > struct migrate_vma *migrate = walk->private; > unsigned long addr; > > + /* Only allow populating anonymous memory. */ > + if (!vma_is_anonymous(walk->vma)) > + return migrate_vma_collect_skip(start, end, walk); > + > for (addr = start; addr < end; addr += PAGE_SIZE) { > + migrate->src[migrate->npages] = MIGRATE_PFN_MIGRATE; > migrate->dst[migrate->npages] = 0; > - migrate->src[migrate->npages++] = 0; > + migrate->npages++; > + migrate->cpages++; > } > > return 0; > Reviewed-by: David Hildenbrand <david@redhat.com>
diff --git a/mm/migrate.c b/mm/migrate.c index 271081b014cb..3e169b72d7b2 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -2315,44 +2315,38 @@ int migrate_misplaced_transhuge_page(struct mm_struct *mm, #endif /* CONFIG_NUMA */ #ifdef CONFIG_DEVICE_PRIVATE -static int migrate_vma_collect_hole(unsigned long start, +static int migrate_vma_collect_skip(unsigned long start, unsigned long end, - __always_unused int depth, struct mm_walk *walk) { struct migrate_vma *migrate = walk->private; unsigned long addr; - /* Only allow populating anonymous memory. */ - if (!vma_is_anonymous(walk->vma)) { - for (addr = start; addr < end; addr += PAGE_SIZE) { - migrate->src[migrate->npages] = 0; - migrate->dst[migrate->npages] = 0; - migrate->npages++; - } - return 0; - } - for (addr = start; addr < end; addr += PAGE_SIZE) { - migrate->src[migrate->npages] = MIGRATE_PFN_MIGRATE; migrate->dst[migrate->npages] = 0; - migrate->npages++; - migrate->cpages++; + migrate->src[migrate->npages++] = 0; } return 0; } -static int migrate_vma_collect_skip(unsigned long start, +static int migrate_vma_collect_hole(unsigned long start, unsigned long end, + __always_unused int depth, struct mm_walk *walk) { struct migrate_vma *migrate = walk->private; unsigned long addr; + /* Only allow populating anonymous memory. */ + if (!vma_is_anonymous(walk->vma)) + return migrate_vma_collect_skip(start, end, walk); + for (addr = start; addr < end; addr += PAGE_SIZE) { + migrate->src[migrate->npages] = MIGRATE_PFN_MIGRATE; migrate->dst[migrate->npages] = 0; - migrate->src[migrate->npages++] = 0; + migrate->npages++; + migrate->cpages++; } return 0;
It's more recommended to use helper function migrate_vma_collect_skip() to skip the unexpected case and it also helps remove some duplicated codes. Move migrate_vma_collect_skip() above migrate_vma_collect_hole() to avoid compiler warning. Signed-off-by: Miaohe Lin <linmiaohe@huawei.com> --- mm/migrate.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-)