)]}'
{
  "log": [
    {
      "commit": "446f24d1199e8a546ba7c97da3fbb9a505a94795",
      "tree": "42c44a565fbdd6f923e0c2403b1c62154acab1b2",
      "parents": [
        "a05342cbd62b7f6dacb8d71683d799f5e5e694b8"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Tue Apr 30 15:28:42 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 30 17:04:09 2013 -0700"
      },
      "message": "Kconfig: consolidate CONFIG_DEBUG_STRICT_USER_COPY_CHECKS\n\nThe help text for this config is duplicated across the x86, parisc, and\ns390 Kconfig.debug files.  Arnd Bergman noted that the help text was\nslightly misleading and should be fixed to state that enabling this\noption isn\u0027t a problem when using pre 4.4 gcc.\n\nTo simplify the rewording, consolidate the text into lib/Kconfig.debug\nand modify it there to be more explicit about when you should say N to\nthis config.\n\nAlso, make the text a bit more generic by stating that this option\nenables compile time checks so we can cover architectures which emit\nwarnings vs.  ones which emit errors.  The details of how an\narchitecture decided to implement the checks isn\u0027t as important as the\nconcept of compile time checking of copy_from_user() calls.\n\nWhile we\u0027re doing this, remove all the copy_from_user_overflow() code\nthat\u0027s duplicated many times and place it into lib/ so that any\narchitecture supporting this option can get the function for free.\n\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Helge Deller \u003cdeller@gmx.de\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2922585b93294d47172a765115e0dbc1bfe1be19",
      "tree": "acb4436987d24b2a3fb3cef02097eefbc4762bbf",
      "parents": [
        "446969084d33a4064a39d280806da642c54ba4ac"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 24 13:12:28 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 24 13:12:28 2012 -0700"
      },
      "message": "lib: Sparc\u0027s strncpy_from_user is generic enough, move under lib/\n\nTo use this, an architecture simply needs to:\n\n1) Provide a user_addr_max() implementation via asm/uaccess.h\n\n2) Add \"select GENERIC_STRNCPY_FROM_USER\" to their arch Kcnfig\n\n3) Remove the existing strncpy_from_user() implementation and symbol\n   exports their architecture had.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "446969084d33a4064a39d280806da642c54ba4ac",
      "tree": "0887795d96007b228733c9499bda1731d64e48fe",
      "parents": [
        "35c9646062eba15351c6d64ea0c02176e5cb66ac"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 23 20:12:50 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 24 13:10:05 2012 -0700"
      },
      "message": "kernel: Move REPEAT_BYTE definition into linux/kernel.h\n\nAnd make sure that everything using it explicitly includes\nthat header file.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "35c9646062eba15351c6d64ea0c02176e5cb66ac",
      "tree": "46b29964dfbf21e6757b5ab629c6f748897d34e5",
      "parents": [
        "4efcac3a244de86593a82ca4ed945e839eb4c5af"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 23 19:56:06 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 24 13:04:24 2012 -0700"
      },
      "message": "sparc: Increase portability of strncpy_from_user() implementation.\n\nHide details of maximum user address calculation in a new\nasm/uaccess.h interface named user_addr_max().\n\nProvide little-endian implementation in find_zero(), which should work\nbut can probably be improved.\n\nAbstrace alignment check behind IS_UNALIGNED() macro.\n\nKill double-semicolon, noticed by David Howells.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4efcac3a244de86593a82ca4ed945e839eb4c5af",
      "tree": "7456cbb6d71b3f92385d94cab546e2b93dc19c6a",
      "parents": [
        "ff06dffbc8abfc60d6a0332f058f1d1bb01abb31"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 23 19:20:20 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 23 19:20:20 2012 -0700"
      },
      "message": "sparc: Optimize strncpy_from_user() zero byte search.\n\nCompute a mask that will only have 0x80 in the bytes which\nhad a zero in them.  The formula is:\n\n\t~(((x \u0026 0x7f7f7f7f) + 0x7f7f7f7f) | x | 0x7f7f7f7f)\n\nIn the inner word iteration, we have to compute the \"x | 0x7f7f7f7f\"\npart, so we can reuse that in the above calculation.\n\nOnce we have this mask, we perform divide and conquer to find the\nhighest 0x80 location.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ff06dffbc8abfc60d6a0332f058f1d1bb01abb31",
      "tree": "0845d6acfaf8221fb5d6ae3281cb1c33a8212cff",
      "parents": [
        "29af0ebaa24d3078d7fd9747a49a763fe7f9ea3c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 22 17:53:19 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 22 23:32:27 2012 -0700"
      },
      "message": "sparc: Add full proper error handling to strncpy_from_user().\n\nLinus removed the end-of-address-space hackery from\nfs/namei.c:do_getname() so we really have to validate these edge\nconditions and cannot cheat any more (as x86 used to as well).\n\nMove to a common C implementation like x86 did.  And if both\nsrc and dst are sufficiently aligned we\u0027ll do word at a time\ncopies and checks as well.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fb34035e7b4bb3edc7c2dc0683cfe21f57a9574d",
      "tree": "ddde17e5690d77f4f61c6271fc8b6f520c746851",
      "parents": [
        "4ed5d5e4299f42438dd5ac6dcb1f2168ea4fb02a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 10 23:05:23 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 10 23:05:23 2009 -0800"
      },
      "message": "sparc: Use __builtin_object_size() to validate the buffer size for copy_from_user()\n\nThis mirrors x86 commit 9f0cf4adb6aa0bfccf675c938124e68f7f06349d\n(x86: Use __builtin_object_size() to validate the buffer size for copy_from_user())\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
