)]}'
{
  "log": [
    {
      "commit": "5336377d6225959624146629ce3fc88ee8ecda3d",
      "tree": "571b9db75d1ba50faa1e399509563f367fd5694f",
      "parents": [
        "2f6b3aa7a563d05453c4d73ccf88191aee84333f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 05 11:29:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 05 11:29:27 2010 -0700"
      },
      "message": "modules: Fix module_bug_list list corruption race\n\nWith all the recent module loading cleanups, we\u0027ve minimized the code\nthat sits under module_mutex, fixing various deadlocks and making it\npossible to do most of the module loading in parallel.\n\nHowever, that whole conversion totally missed the rather obscure code\nthat adds a new module to the list for BUG() handling.  That code was\ndoubly obscure because (a) the code itself lives in lib/bugs.c (for\ndubious reasons) and (b) it gets called from the architecture-specific\n\"module_finalize()\" rather than from generic code.\n\nCalling it from arch-specific code makes no sense what-so-ever to begin\nwith, and is now actively wrong since that code isn\u0027t protected by the\nmodule loading lock any more.\n\nSo this commit moves the \"module_bug_{finalize,cleanup}()\" calls away\nfrom the arch-specific code, and into the generic code - and in the\nprocess protects it with the module_mutex so that the list operations\nare now safe.\n\nFuture fixups:\n - move the module list handling code into kernel/module.c where it\n   belongs.\n - get rid of \u0027module_bug_list\u0027 and just use the regular list of modules\n   (called \u0027modules\u0027 - imagine that) that we already create and maintain\n   for other reasons.\n\nReported-and-tested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "863a6049202412a6d655d052eb1c45ca7dd74a83",
      "tree": "9550c1f6c484460cb646f4472558512ac8a9f149",
      "parents": [
        "e2e7e093259d4c6b73b432122974393d6fcdfc2a"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Tue Aug 10 18:03:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:22 2010 -0700"
      },
      "message": "lib/bug.c: add oops end marker to WARN implementation\n\nWe are missing the oops end marker for the exception based WARN implementation\nin lib/bug.c. This is useful for logfile analysis tools.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e2e7e093259d4c6b73b432122974393d6fcdfc2a",
      "tree": "d8a5ff294a21c074724539f4fc8f9b7783ae96b4",
      "parents": [
        "c7ff0d9c92435e836e13aaa8d0e56d4000424bcc"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Tue Aug 10 18:03:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:22 2010 -0700"
      },
      "message": "lib/bug.c: make WARN implementation match the kernel/panic.c one\n\nThere are a few issues with the exception based WARN implementation in\nlib/bug.c:\n\n- Inconsistent printk flags. The \"cut here\" line is printed at KERN_EMERG, so\n  the console and all logged in users see the single line:\n\n------------[ cut here ]------------\n\n  for each WARN. Fix this so we print everything at KERN_WARNING to match the\n  kernel/panic.c version.\n\n- The lib/bug.c WARN would print \"Badness at\". Change it to match the\n  kernel/panic.c version which prints \"WARNING: at\".\n\n- Print the list of modules, similar to kernel/panic.c of modules, similar to\n  kernel/panic.c\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2be05273a1744d175bf4b67f6665637bb9ac7a8",
      "tree": "c0b6333fbc7a1834bfc0eec86dd204b1daacf1b4",
      "parents": [
        "8954da1f82a468deeeae3683252b5440e7f4ccbe"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Sat Apr 03 19:34:56 2010 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Wed May 19 08:36:48 2010 +0100"
      },
      "message": "panic: Allow warnings to set different taint flags\n\nWARN() is used in some places to report firmware or hardware bugs that\nare then worked-around.  These bugs do not affect the stability of the\nkernel and should not set the flag for TAINT_WARN.  To allow for this,\nadd WARN_TAINT() and WARN_TAINT_ONCE() macros that take a taint number\nas argument.\n\nArchitectures that implement warnings using trap instructions instead\nof calls to warn_slowpath_*() now implement __WARN_TAINT(taint)\ninstead of __WARN().\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nAcked-by: Helge Deller \u003cdeller@gmx.de\u003e\nTested-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "b93a531e315e97ef00367099e6b5f19651936e20",
      "tree": "231e6d626fbf85dd80d7cbac49a9c9a14282f898",
      "parents": [
        "85072bd55219231b8ca5d9d3fa3492eb4fa6635f"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Tue Dec 16 11:40:27 2008 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 16 18:40:32 2008 +0100"
      },
      "message": "allow bug table entries to use relative pointers (and use it on x86-64)\n\nImpact: reduce bug table size\n\nThis allows reducing the bug table size by half. Perhaps there are\nother 64-bit architectures that could also make use of this.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "da9eac8990dc614ab4756f2a3d84870b675f1f1e",
      "tree": "6b2361df995b9e895fec50f9e8f9c00190a53754",
      "parents": [
        "c4a2d7fbec3029c8891a3ad5fceec2992096a3b7"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 04 09:59:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 04 10:40:05 2008 -0700"
      },
      "message": "lib: taint kernel in common report_bug() WARN path.\n\nCommit 95b570c9cef3b12356454c7112571b7e406b4b51 (\"Taint kernel after\nWARN_ON(condition)\") introduced a TAINT_WARN that was implemented for\nall architectures using the generic warn_on_slowpath(), which excluded\nany architecture that set HAVE_ARCH_WARN_ON.\n\nAs all of the architectures that implement their own WARN_ON() all go\nthrough the report_bug() path (specifically handling BUG_TRAP_TYPE_WARN),\ntaint the kernel there as well for consistency.\n\nTested on avr32 and sh. Also relevant for s390, parisc, and powerpc.\n\nSigned-off-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "608e2619682e951f525b08e7a48669a3c0263b41",
      "tree": "034ec1a626c776da201c6664a0ac8b2ec0934167",
      "parents": [
        "94bed2a9c4ae980838003f5d32681eef794ecc28"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Sun Jul 15 23:41:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:51 2007 -0700"
      },
      "message": "generic bug: use show_regs() instead of dump_stack()\n\nThe current generic bug implementation has a call to dump_stack() in case a\nWARN_ON(whatever) gets hit.  Since report_bug(), which calls dump_stack(),\ngets called from an exception handler we can do better: just pass the\npt_regs structure to report_bug() and pass it to show_regs() in case of a\nwarning.  This will give more debug informations like register contents,\netc...  In addition this avoids some pointless lines that dump_stack()\nemits, since it includes a stack backtrace of the exception handler which\nis of no interest in case of a warning.  E.g.  on s390 the following lines\nare currently always present in a stack backtrace if dump_stack() gets\ncalled from report_bug():\n\n [\u003c000000000001517a\u003e] show_trace+0x92/0xe8)\n [\u003c0000000000015270\u003e] show_stack+0xa0/0xd0\n [\u003c00000000000152ce\u003e] dump_stack+0x2e/0x3c\n [\u003c0000000000195450\u003e] report_bug+0x98/0xf8\n [\u003c0000000000016cc8\u003e] illegal_op+0x1fc/0x21c\n [\u003c00000000000227d6\u003e] sysc_return+0x0/0x10\n\nAcked-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nAcked-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7664c5a1da4711bb6383117f51b94c8dc8f3f1cd",
      "tree": "79a2e2a4626c66a411488b5ceb554b011d862a7d",
      "parents": [
        "c48f70c3d046f021b1c22438604ef2a583380eca"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Fri Dec 08 02:36:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:39 2006 -0800"
      },
      "message": "[PATCH] Generic BUG implementation\n\nThis patch adds common handling for kernel BUGs, for use by architectures as\nthey wish.  The code is derived from arch/powerpc.\n\nThe advantages of having common BUG handling are:\n - consistent BUG reporting across architectures\n - shared implementation of out-of-line file/line data\n - implement CONFIG_DEBUG_BUGVERBOSE consistently\n\nThis means that in inline impact of BUG is just the illegal instruction\nitself, which is an improvement for i386 and x86-64.\n\nA BUG is represented in the instruction stream as an illegal instruction,\nwhich has file/line information associated with it.  This extra information is\nstored in the __bug_table section in the ELF file.\n\nWhen the kernel gets an illegal instruction, it first confirms it might\npossibly be from a BUG (ie, in kernel mode, the right illegal instruction).\nIt then calls report_bug().  This searches __bug_table for a matching\ninstruction pointer, and if found, prints the corresponding file/line\ninformation.  If report_bug() determines that it wasn\u0027t a BUG which caused the\ntrap, it returns BUG_TRAP_TYPE_NONE.\n\nSome architectures (powerpc) implement WARN using the same mechanism; if the\nillegal instruction was the result of a WARN, then report_bug(Q) returns\nCONFIG_DEBUG_BUGVERBOSE; otherwise it returns BUG_TRAP_TYPE_BUG.\n\nlib/bug.c keeps a list of loaded modules which can be searched for __bug_table\nentries.  The architecture must call\nmodule_bug_finalize()/module_bug_cleanup() from its corresponding\nmodule_finalize/cleanup functions.\n\nUnsetting CONFIG_DEBUG_BUGVERBOSE will reduce the kernel size by some amount.\nAt the very least, filename and line information will not be recorded for each\nbut, but architectures may decide to store no extra information per BUG at\nall.\n\nUnfortunately, gcc doesn\u0027t have a general way to mark an asm() as noreturn, so\narchitectures will generally have to include an infinite loop (or similar) in\nthe BUG code, so that gcc knows execution won\u0027t continue beyond that point.\ngcc does have a __builtin_trap() operator which may be useful to achieve the\nsame effect, unfortunately it cannot be used to actually implement the BUG\nitself, because there\u0027s no way to get the instruction\u0027s address for use in\ngenerating the __bug_table entry.\n\n[randy.dunlap@oracle.com: Handle BUG\u003dn, GENERIC_BUG\u003dn to prevent build errors]\n[bunk@stusta.de: include/linux/bug.h must always #include \u003clinux/module.h]\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Hugh Dickens \u003chugh@veritas.com\u003e\nCc: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
