)]}'
{
  "log": [
    {
      "commit": "13c07b0286d340275f2d97adf085cecda37ede37",
      "tree": "1171b73c8261ddc0c47817f765c470260c8d2699",
      "parents": [
        "12870da5c3ace563902babdfa10d824fdbd4ce88"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 12 22:06:55 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 12 22:06:55 2011 -0800"
      },
      "message": "linux/log2.h: Fix rounddown_pow_of_two(1)\n\nExactly like roundup_pow_of_two(1), the rounddown version was buggy for\nthe case of a compile-time constant \u00271\u0027 argument.  Probably because it\noriginated from the same code, sharing history with the roundup version\nfrom before the bugfix (for that one, see commit 1a06a52ee1b0: \"Fix\nroundup_pow_of_two(1)\").\n\nHowever, unlike the roundup version, the fix for rounddown is to just\nremove the broken special case entirely.  It\u0027s simply not needed - the\ngeneric code\n\n    1UL \u003c\u003c ilog2(n)\n\ndoes the right thing for the constant \u00271\u0027 argment too.  The only reason\nroundup needed that special case was because rounding up does so by\nsubtracting one from the argument (and then adding one to the result)\ncausing the obvious problems with \"ilog2(0)\".\n\nBut rounddown doesn\u0027t do any of that, since ilog2() naturally truncates\n(ie \"rounds down\") to the right rounded down value.  And without the\nilog2(0) case, there\u0027s no reason for the special case that had the wrong\nvalue.\n\ntl;dr: rounddown_pow_of_two(1) should be 1, not 0.\n\nAcked-by: Dmitry Torokhov \u003cdtor@vmware.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de9330d13eac1f331e63ab1d18c506365b0151f3",
      "tree": "67fc0eb97f706d8cb39485dba50da9f9918c3f3f",
      "parents": [
        "582539e5a0480f1e00e3b9ffbe50bd5b2f59a16f"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Wed Feb 06 01:36:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:03 2008 -0800"
      },
      "message": "log2.h: Define order_base_2() macro for convenience.\n\nGiven a number of places in the tree that need to calculate this value\nexplicitly, might as well just create a macro for it.\n\n(akpm: must be implemented as a macro for callee typeof() usage)\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b311e921b385b5a848f0806df16276aca1ecae07",
      "tree": "957947e319b23150ddbbf7db52f9bdd24b6cdba5",
      "parents": [
        "d9aacccf457d07d729cfc7bf20ff0c7428357a9f"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Tue Oct 16 23:29:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:56 2007 -0700"
      },
      "message": "Add a \"rounddown_pow_of_two\" routine to log2.h\n\nTo go along with the existing \"roundup_pow_of_two\" routine, add one for\nrounding down since that operation appears to crop up on a regular basis in\nthe source tree.\n\n[m.kozlowski@tuxland.pl: fix unbalanced parentheses]\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a06a52ee1b0cdb65222474ba6186f3991df68b0",
      "tree": "91ce623fbfdd72e32fa0001d7ba611bb6c7de50f",
      "parents": [
        "18963c01b8abf381f102752ce024c3582a716125"
      ],
      "author": {
        "name": "Rolf Eike Beer",
        "email": "eike-kernel@sf-tec.de",
        "time": "Thu May 17 23:56:56 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 18 20:46:30 2007 -0700"
      },
      "message": "Fix roundup_pow_of_two(1)\n\n1 is a power of two, therefore roundup_pow_of_two(1) should return 1. It does\nin case the argument is a variable but in case it\u0027s a constant it behaves\nwrong and returns 0. Probably nobody ever did it so this was never noticed.\n\nSigned-off-by: Rolf Eike Beer \u003ceike-kernel@sf-tec.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6fb189c2a4f3bea4936127355903dae2b4104e34",
      "tree": "4d3bd6f8ae53662379fc26869a036e68e5d24961",
      "parents": [
        "728f0bbd68e98d6a5d6a17aece000d9a3e24f075"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Sat Feb 17 19:17:37 2007 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Feb 17 19:17:37 2007 +0100"
      },
      "message": "Correct trivial typo in log2.h.\n\nSingle typo correction in include/linux/log2.h.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "63c2f782e8f6aafbc11b14b2cb291b3dc9fc217d",
      "tree": "cbcd1f138a886529ec62a21c5dd4b2c87581058d",
      "parents": [
        "7df2457db83bc922fcc8b462526b77f1ffe8c84b"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Tue Jan 30 06:06:00 2007 -0500"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Feb 07 14:03:19 2007 +1100"
      },
      "message": "[POWERPC] Add \"is_power_of_2\" checking to log2.h.\n\nAdd the inline function \"is_power_of_2()\" to log2.h, where the value\nzero is *not* considered to be a power of two.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nAcked-by: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "312a0c170945b49f319960afd2e492c05f9dd551",
      "tree": "f3c122cc65d18bc647b45d89b3a8d0fb8492422b",
      "parents": [
        "f0d1b0b30d250a07627ad8b9fbbb5c7cc08422e8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Dec 08 02:37:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:51 2006 -0800"
      },
      "message": "[PATCH] LOG2: Alter roundup_pow_of_two() so that it can use a ilog2() on a constant\n\nAlter roundup_pow_of_two() so that it can make use of ilog2() on a constant to\nproduce a constant value, retaining the ability for an arch to override it in\nthe non-const case.\n\nThis permits the function to be used to initialise variables.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f0d1b0b30d250a07627ad8b9fbbb5c7cc08422e8",
      "tree": "0aa5379150574374351fb92af7881a48dbfcf2ce",
      "parents": [
        "b3d7ae5f47a58a9f7b152deeaf7daa1fc558a8f1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Dec 08 02:37:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:51 2006 -0800"
      },
      "message": "[PATCH] LOG2: Implement a general integer log2 facility in the kernel\n\nThis facility provides three entry points:\n\n\tilog2()\t\tLog base 2 of unsigned long\n\tilog2_u32()\tLog base 2 of u32\n\tilog2_u64()\tLog base 2 of u64\n\nThese facilities can either be used inside functions on dynamic data:\n\n\tint do_something(long q)\n\t{\n\t\t...;\n\t\ty \u003d ilog2(x)\n\t\t...;\n\t}\n\nOr can be used to statically initialise global variables with constant values:\n\n\tunsigned n \u003d ilog2(27);\n\nWhen performing static initialisation, the compiler will report \"error:\ninitializer element is not constant\" if asked to take a log of zero or of\nsomething not reducible to a constant.  They treat negative numbers as\nunsigned.\n\nWhen not dealing with a constant, they fall back to using fls() which permits\nthem to use arch-specific log calculation instructions - such as BSR on\nx86/x86_64 or SCAN on FRV - if available.\n\n[akpm@osdl.org: MMC fix]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Wojtek Kaniewski \u003cwojtekka@toxygen.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
