On 05/10/2016, 05:43 AM, Gavin Guo wrote: > From: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> > > commit e4f674229ce63dac60be0c4ddfb5ef8d1225d30d upstream > > I recently added a patch to let folks pass a "reason" string dump_page() > which gets dumped out along with the page's data. This essentially > saves the bug-reader a trip in to the source to figure out why we > BUG_ON()'d. > > The new VM_BUG_ON_PAGE() passes in NULL for "reason". It seems like we > might as well pass the BUG_ON() condition if we have it. This will > bloat kernels a bit with ~160 new strings, but this is all under a > debugging option anyway. > > page:ffffea0008560280 count:1 mapcount:0 mapping:(null) index:0x0 > page flags: 0xbfffc0000000001(locked) > page dumped because: VM_BUG_ON_PAGE(PageLocked(page)) > ------------[ cut here ]------------ > kernel BUG at /home/davehans/linux.git/mm/filemap.c:464! > invalid opcode: 0000 [#1] SMP > CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.14.0+ #251 > Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 > ... > > [akpm@xxxxxxxxxxxxxxxxxxxx: include stringify.h] > Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> > Acked-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> > Acked-by: Davidlohr Bueso <davidlohr@xxxxxx> > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> > [fixes the conflict and includes the VM_BUG_ON_PAGE] > Signed-off-by: Gavin Guo <gavin.guo@xxxxxxxxxxxxx> > --- > include/linux/mmdebug.h | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/include/linux/mmdebug.h b/include/linux/mmdebug.h > index 580bd587d916..fa387ca7218c 100644 > --- a/include/linux/mmdebug.h > +++ b/include/linux/mmdebug.h > @@ -1,10 +1,19 @@ > #ifndef LINUX_MM_DEBUG_H > #define LINUX_MM_DEBUG_H 1 > > +#include <linux/stringify.h> > #ifdef CONFIG_DEBUG_VM > #define VM_BUG_ON(cond) BUG_ON(cond) > +#define VM_BUG_ON_PAGE(cond, page) \ > + do { \ > + if (unlikely(cond)) { \ > + dump_page(page, "VM_BUG_ON_PAGE(" __stringify(cond)")");\ But dump_page in 3.12 accepts only one parameter. And this is not the commit which actually added VM_BUG_ON_PAGE. The one which did, included also dump_page prototype in this header. Instead, I would just change VM_BUG_ON_PAGE to VM_BUG_ON in the second patch. thanks, -- js suse labs -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html