Re: [PATCH] mm, debug: mm-introduce-vm_bug_on_mm-fix-fix.patch

From: Michal Hocko
Date: Wed Sep 24 2014 - 03:09:47 EST


On Tue 23-09-14 13:52:58, Andrew Morton wrote:
> On Tue, 23 Sep 2014 12:19:49 -0400 Valdis.Kletnieks@xxxxxx wrote:
>
> > On Tue, 23 Sep 2014 13:28:48 +0200, Michal Hocko said:
> > > And there is another one hitting during randconfig. The patch makes my
> > > eyes bleed
> >
> > Amen. But I'm not seeing a better fix either.
> >
> > > #if defined(CONFIG_NUMA_BALANCING) || defined(CONFIG_COMPACTION)
> > > - "tlb_flush_pending %d\n",
> > > + "tlb_flush_pending %d\n"
> > > #endif
> > > - mm, mm->mmap, mm->vmacache_seqnum, mm->task_size,
> > > + , mm, mm->mmap, mm->vmacache_seqnum, mm->task_size,
> >
> > I'm surprised that checkpatch doesn't explode on this. And I'm starting
> > a pool on how soon somebody submits a patch to "fix" this. :)
>
> It is all pretty godawful. We can eliminate the tricks with the comma
> separators by adding an always-there, does-nothing argument:

yes, this is safer if we have more conditional fields in mm_struct later
on. It is also less awful. Thanks!

>
> --- a/mm/debug.c~mm-debug-mm-introduce-vm_bug_on_mm-fix-fixpatch-fix
> +++ a/mm/debug.c
> @@ -197,7 +197,9 @@ void dump_mm(const struct mm_struct *mm)
> #if defined(CONFIG_NUMA_BALANCING) || defined(CONFIG_COMPACTION)
> "tlb_flush_pending %d\n"
> #endif
> - , mm, mm->mmap, mm->vmacache_seqnum, mm->task_size,
> + "%s", /* This is here to hold the comma */
> +
> + mm, mm->mmap, mm->vmacache_seqnum, mm->task_size,
> #ifdef CONFIG_MMU
> mm->get_unmapped_area,
> #endif
> @@ -218,16 +220,17 @@ void dump_mm(const struct mm_struct *mm)
> #ifdef CONFIG_MEMCG
> mm->owner,
> #endif
> - mm->exe_file
> + mm->exe_file,
> #ifdef CONFIG_MMU_NOTIFIER
> - , mm->mmu_notifier_mm
> + mm->mmu_notifier_mm,
> #endif
> #ifdef CONFIG_NUMA_BALANCING
> - , mm->numa_next_scan, mm->numa_scan_offset, mm->numa_scan_seq
> + mm->numa_next_scan, mm->numa_scan_offset, mm->numa_scan_seq,
> #endif
> #if defined(CONFIG_NUMA_BALANCING) || defined(CONFIG_COMPACTION)
> - , mm->tlb_flush_pending
> + mm->tlb_flush_pending,
> #endif
> + "" /* This is here to not have a comma! */
> );
>
> dump_flags(mm->def_flags, vmaflags_names,
> _
>

--
Michal Hocko
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/