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

From: Andrew Morton <[email-masked]>
Date: Tue, 23 Sep 2014 13:52:58 -0700

On Tue, 23 Sep 2014 12:19:49 -0400 [email-masked] 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:

--- 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,
_