)]}'
{
  "log": [
    {
      "commit": "ed2d265d1266736bd294332d7f649003943ae36e",
      "tree": "860e5b7bb72933e4a9abacdc2f2d75a0e6254e32",
      "parents": [
        "f1d38e423a697b7aa06e12d3ca4753bcc1aa3531",
        "6c03438edeb5c359af35f060ea016ca65671c269"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "message": "Merge tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/bug.h\u003e cleanup from Paul Gortmaker:\n \"The changes shown here are to unify linux\u0027s BUG support under the one\n  \u003clinux/bug.h\u003e file.  Due to historical reasons, we have some BUG code\n  in bug.h and some in kernel.h -- i.e.  the support for BUILD_BUG in\n  linux/kernel.h predates the addition of linux/bug.h, but old code in\n  kernel.h wasn\u0027t moved to bug.h at that time.  As a band-aid, kernel.h\n  was including \u003casm/bug.h\u003e to pseudo link them.\n\n  This has caused confusion[1] and general yuck/WTF[2] reactions.  Here\n  is an example that violates the principle of least surprise:\n\n      CC      lib/string.o\n      lib/string.c: In function \u0027strlcat\u0027:\n      lib/string.c:225:2: error: implicit declaration of function \u0027BUILD_BUG_ON\u0027\n      make[2]: *** [lib/string.o] Error 1\n      $\n      $ grep linux/bug.h lib/string.c\n      #include \u003clinux/bug.h\u003e\n      $\n\n  We\u0027ve included \u003clinux/bug.h\u003e for the BUG infrastructure and yet we\n  still get a compile fail! [We\u0027ve not kernel.h for BUILD_BUG_ON.] Ugh -\n  very confusing for someone who is new to kernel development.\n\n  With the above in mind, the goals of this changeset are:\n\n  1) find and fix any include/*.h files that were relying on the\n     implicit presence of BUG code.\n  2) find and fix any C files that were consuming kernel.h and hence\n     relying on implicitly getting some/all BUG code.\n  3) Move the BUG related code living in kernel.h to \u003clinux/bug.h\u003e\n  4) remove the asm/bug.h from kernel.h to finally break the chain.\n\n  During development, the order was more like 3-4, build-test, 1-2.  But\n  to ensure that git history for bisect doesn\u0027t get needless build\n  failures introduced, the commits have been reorderd to fix the problem\n  areas in advance.\n\n\t[1]  https://lkml.org/lkml/2012/1/3/90\n\t[2]  https://lkml.org/lkml/2012/1/17/414\"\n\nFix up conflicts (new radeon file, reiserfs header cleanups) as per Paul\nand linux-next.\n\n* tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  kernel.h: doesn\u0027t explicitly use bug.h, so don\u0027t include it.\n  bug: consolidate BUILD_BUG_ON with other bug code\n  BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n  bug.h: add include of it to various implicit C users\n  lib: fix implicit users of kernel.h for TAINT_WARN\n  spinlock: macroize assert_spin_locked to avoid bug.h dependency\n  x86: relocate get/set debugreg fcns to include/asm/debugreg.\n"
    },
    {
      "commit": "187f1882b5b0748b3c4c22274663fdb372ac0452",
      "tree": "36283f258cf65f03599a045d48bb05d0ec27f3f9",
      "parents": [
        "50af5ead3b44ccf8bd2b4d2a50c1b610f557c480"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Nov 23 20:12:59 2011 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Mar 04 17:54:34 2012 -0500"
      },
      "message": "BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n\nIf a header file is making use of BUG, BUG_ON, BUILD_BUG_ON, or any\nother BUG variant in a static inline (i.e. not in a #define) then\nthat header really should be including \u003clinux/bug.h\u003e and not just\nexpecting it to be implicitly present.\n\nWe can make this change risk-free, since if the files using these\nheaders didn\u0027t have exposure to linux/bug.h already, they would have\nbeen causing compile failures/warnings.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "5189fa19a4b2b4c3bec37c3a019d446148827717",
      "tree": "968ba4d4dea7375cfedaf5f1e22c1885a8ea003b",
      "parents": [
        "c8e252586f8d5de906385d8cf6385fee289a825e"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Mar 02 10:43:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 02 11:38:15 2012 -0800"
      },
      "message": "regset: Return -EFAULT, not -EIO, on host-side memory fault\n\nThere is only one error code to return for a bad user-space buffer\npointer passed to a system call in the same address space as the\nsystem call is executed, and that is EFAULT.  Furthermore, the\nlow-level access routines, which catch most of the faults, return\nEFAULT already.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c8e252586f8d5de906385d8cf6385fee289a825e",
      "tree": "11bf3ac4f0d0b3961fcf1c98ee5cd1824ebd5614",
      "parents": [
        "1f033c1a6ec1a6815e9c4507d83eb20161163c37"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Mar 02 10:43:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 02 11:38:15 2012 -0800"
      },
      "message": "regset: Prevent null pointer reference on readonly regsets\n\nThe regset common infrastructure assumed that regsets would always\nhave .get and .set methods, but not necessarily .active methods.\nUnfortunately people have since written regsets without .set methods.\n\nRather than putting in stub functions everywhere, handle regsets with\nnull .get or .set methods explicitly.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5bde4d181793be84351bc21c256d8c71cfcd313a",
      "tree": "58c1c534ef5af5f425de61532b8aa5d24048136f",
      "parents": [
        "b9d36d5d000294a128f7f174fe67623a10e29d61"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Jan 30 13:31:47 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:47 2008 +0100"
      },
      "message": "x86: user_regset user-copy helpers\n\nThis defines two new inlines in linux/regset.h, for use in arch_ptrace\nimplementations and the like.  These provide simplified wrappers for using\nthe user_regset interfaces to copy thread regset data into the caller\u0027s\nuser-space memory.  The inlines are trivial, but make the common uses in\nplaces such as ptrace implementation much more concise, easier to read, and\nless prone to code-copying errors.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "bae3f7c39dee5951bcbedeaedb6744f882a00173",
      "tree": "b11d7246f1933f80c33c1a5cff6291ab142e87dc",
      "parents": [
        "4206d3aa1978e44f58bfa4e1c9d8d35cbf19c187"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Jan 30 13:31:45 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:45 2008 +0100"
      },
      "message": "x86: user_regset helpers\n\nThis adds some inlines to linux/regset.h intended for arch code to use in\nits user_regset get and set functions.  These make it pretty easy to deal\nwith the interface\u0027s optional kernel-space or user-space pointers and its\ngeneralized access to a part of the register data at a time.\n\nIn simple cases where the internal data structure matches the exported\nlayout (core dump format), a get function can be nothing but a call to\nuser_regset_copyout, and a set function a call to user_regset_copyin.\n\nIn other cases the exported layout is usually made up of a few pieces each\nstored contiguously in a different internal data structure.  These helpers\nmake it straightforward to write a get or set function by processing each\ncontiguous chunk of the data in order.  The start_pos and end_pos arguments\nare always constants, so these inlines collapse to a small amount of code.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "bdf88217b70dbb18c4ee27a6c497286e040a6705",
      "tree": "79909bf3ef3f778f63c8cb2d5d22cd1d22a18c86",
      "parents": [
        "0ddc9cc8fdfe3df7a90557e66069e3da2c584725"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Jan 30 13:31:44 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:44 2008 +0100"
      },
      "message": "x86: user_regset header\n\nThe new header \u003clinux/regset.h\u003e defines the types struct user_regset and\nstruct user_regset_view, with some associated declarations.  This new set\nof interfaces will become the standard way for arch code to expose\nuser-mode machine-specific state.  A single set of entry points into arch\ncode can do all the low-level work in one place to fill the needs of core\ndumps, ptrace, and any other user-mode debugging facilities that might come\nalong in the future.\n\nFor existing arch code to adapt to the user_regset interfaces, each arch\ncan work from the code it already has to support core files and ptrace.\nThe formats you want for user_regset are the core file formats.  The only\nwrinkle in adapting old ptrace implementation code as user_regset get and\nset functions is that these functions can be called on current as well as\non another task_struct that is stopped and switched out as for ptrace.\nFor some kinds of machine state, you may have to load it directly from CPU\nregisters or otherwise differently for current than for another thread.\n(Your core dump support already handles this in elf_core_copy_regs for\ncurrent and elf_core_copy_task_regs for other tasks, so just check there.)\nThe set function should also be made to work on current in case that\nentails some special cases, though this was never required before for\nptrace.  Adding this flexibility covers the arch needs to open the door to\nmore sophisticated new debugging facilities that don\u0027t always need to\ncontext-switch to do every little thing.\n\nThe copyin/copyout helper functions (in a later patch) relieve the arch\ncode of most of the cumbersome details of the flexible get/set interfaces.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    }
  ]
}
