)]}'
{
  "log": [
    {
      "commit": "94bfa3b6692c7a3f6f119596724204ec975d3ef0",
      "tree": "4c59cc890ed6fa0f1922416e6cbb7c87ecc8c3dc",
      "parents": [
        "f3b577dec1f2ce32d2db6d2ca6badff7002512af"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jun 07 17:09:45 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 23 06:50:45 2010 -0700"
      },
      "message": "idr: fix RCU lockdep splat in idr_get_next()\n\nConvert to rcu_dereference_raw() given that many callers may have many\ndifferent locking models.\n\nLocated-by: Miles Lane \u003cmiles.lane@gmail.com\u003e\nTested-by: Miles Lane \u003cmiles.lane@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "2dcb22b346be7b7b7e630a8970d69cf3f1111ec1",
      "tree": "971c295dc21e37d92d7cf62335edd046ab5e9a83",
      "parents": [
        "79a6cdeb7eb54e3d2d4bb9fc5f0231b057882a87"
      ],
      "author": {
        "name": "Imre Deak",
        "email": "imre.deak@nokia.com",
        "time": "Wed May 26 14:43:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:48 2010 -0700"
      },
      "message": "idr: fix backtrack logic in idr_remove_all\n\nCurrently idr_remove_all will fail with a use after free error if\nidr::layers is bigger than 2, which on 32 bit systems corresponds to items\nmore than 1024.  This is due to stepping back too many levels during\nbacktracking.  For simplicity let\u0027s assume that IDR_BITS\u003d1 -\u003e we have 2\nnodes at each level below the root node and each leaf node stores two IDs.\n (In reality for 32 bit systems IDR_BITS\u003d5, with 32 nodes at each sub-root\nlevel and 32 IDs in each leaf node).  The sequence of freeing the nodes at\nthe moment is as follows:\n\nlayer\n1 -\u003e                       a(7)\n2 -\u003e            b(3)                  c(5)\n3 -\u003e        d(1)   e(2)           f(4)    g(6)\n\nUntil step 4 things go fine, but then node c is freed, whereas node g\nshould be freed first.  Since node c contains the pointer to node g we\u0027ll\nhave a use after free error at step 6.\n\nHow many levels we step back after visiting the leaf nodes is currently\ndetermined by the msb of the id we are currently visiting:\n\nStep\n1.          node d with IDs 0,1 is freed, current ID is advanced to 2.\n            msb of the current ID bit 1. This means we need to step back\n            1 level to node b and take the next sibling, node e.\n2-3.        node e with IDs 2,3 is freed, current ID is 4, msb is bit 2.\n            This means we need to step back 2 levels to node a, freeing\n            node b on the way.\n4-5.        node f with IDs 4,5 is freed, current ID is 6, msb is still\n            bit 2. This means we again need to step back 2 levels to node\n            a and free c on the way.\n6.          We should visit node g, but its pointer is not available as\n            node c was freed.\n\nThe fix changes how we determine the number of levels to step back.\nInstead of deducting this merely from the msb of the current ID, we should\nreally check if advancing the ID causes an overflow to a bit position\ncorresponding to a given layer.  In the above example overflow from bit 0\nto bit 1 should mean stepping back 1 level.  Overflow from bit 1 to bit 2\nshould mean stepping back 2 levels and so on.\n\nThe fix was tested with IDs up to 1 \u003c\u003c 20, which corresponds to 4 layers\non 32 bit systems.\n\nSigned-off-by: Imre Deak \u003cimre.deak@nokia.com\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.34.1]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "329f9052dbadf6f4afe2231668bd00c579a4aa10",
      "tree": "e080a5c70df40f3ae8cf28a95a3267757668ab97",
      "parents": [
        "395b228858778d3c44f7c413693a6acaa8bb62dc",
        "220bf991b0366cc50a94feede3d7341fa5710ee4"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Fri Mar 26 14:55:59 2010 +0000"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Fri Mar 26 14:55:59 2010 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\tdrivers/mtd/nand/sh_flctl.c\n\nMaxim\u0027s patch to initialise sysfs attributes depends on the patch which\nactually adds sysfs_attr_init().\n"
    },
    {
      "commit": "a7790532f5b7358c33a6b1834dc2b318de209f31",
      "tree": "0ceb9e24b3f54cb5c8453fb5a218e2a94a0f1cce",
      "parents": [
        "2764fb4244cc1bc08df3667924ca4a972e90ac70",
        "60b341b778cc2929df16c0a504c91621b3c6a4ad"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Fri Feb 26 19:04:15 2010 +0000"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Fri Feb 26 19:06:24 2010 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nThe SmartMedia FTL code depends on new kfifo bits from 2.6.33\n"
    },
    {
      "commit": "4d1ee80f3a7df7fe9cdec26e651e6201c45b10d4",
      "tree": "e2535ffd1732761d1655bba81758c7e8a6df6c28",
      "parents": [
        "cbfe93e9cedfcd59689bad9e67f57ef67545e5a0"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Fri Jan 29 20:59:17 2010 +0000"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Thu Feb 25 11:54:51 2010 +0000"
      },
      "message": "idr: export idr_get_next()\n\nidr_get_next() was accidentally not exported when added.  It is about\nto be used by mtdcore, which may be built as a module.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "96be753af91fc9d582450a84722f6a6721d218ad",
      "tree": "20c1a87a5eab53bfbbd5ffb6954de06ca0af11dd",
      "parents": [
        "2676a58c980b7ef076cc9bbff3fd8c9d2d5417ea"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Feb 22 17:04:55 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 10:34:51 2010 +0100"
      },
      "message": "idr: Apply lockdep-based diagnostics to rcu_dereference() uses\n\nBecause idr can be used with any of a number of locks or with\nany flavor of RCU, just disable the lockdep-based diagnostics.\nIf idr needs diagnostics, the check expression will need to be\npassed into the relevant idr primitives as an additional\nargument.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c1266887105-1528-11-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d2e7276b6b5e4bc2148891a056d5862c5314342d",
      "tree": "0013ab5f52d700dae771dcedf3f0f333486be5b6",
      "parents": [
        "701188374b6f1ef9cf7e4dce4a2e69ef4c0012ac"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 22 12:44:19 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 22 19:50:34 2010 -0800"
      },
      "message": "idr: fix a critical misallocation bug, take#2\n\nThis is retry of reverted 859ddf09743a8cc680af33f7259ccd0fd36bfe9d\n(\"idr: fix a critical misallocation bug\") which contained two bugs.\n\n* pa[idp-\u003elayers] should be cleared even if it\u0027s not used by\n  sub_alloc() because it\u0027s used by mark idr_mark_full().\n\n* The original condition check also assigned pa[l] to p which the new\n  code didn\u0027t do thus leaving p pointing at the wrong layer.\n\nBoth problems have been fixed and the idr code has received good amount\ntesting using userland testing setup where simple bitmap allocator is\nrun parallel to verify the result of idr allocation.\n\nThe bug this patch fixes is caused by sub_alloc() optimization path\nbypassing out-of-room condition check and restarting allocation loop\nwith starting value higher than maximum allowed value.  For detailed\ndescription, please read commit message of 859ddf09.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nBased-on-patch-from: Eric Paris \u003ceparis@redhat.com\u003e\nReported-by: Eric Paris \u003ceparis@redhat.com\u003e\nTested-by: Stefan Lippers-Hollmann \u003cs.l-h@gmx.de\u003e\nTested-by: Serge Hallyn \u003cserue@us.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": "6f14a668f1a8b715a6e855f4e32705e54a6e86a1",
      "tree": "3583162191f16c1d622fe1f6872870e6ae3fbfe8",
      "parents": [
        "e9e70bc14ea5974e21f5baecf95a123844c412b9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 04 17:57:37 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 04 16:03:41 2010 -0800"
      },
      "message": "idr: revert misallocation bug fix\n\nCommit 859ddf09743a8cc680af33f7259ccd0fd36bfe9d tried to fix\nmisallocation bug but broke full bit marking by not clearing\npa[idp-\u003elayers] and also is causing X failures due to lookup failure\nin drm code.  The cause of the latter hasn\u0027t been found yet.  Revert\nthe fix for now.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "859ddf09743a8cc680af33f7259ccd0fd36bfe9d",
      "tree": "fa8c7a23acd3fc43d0bd969aaf696d7935fd3b12",
      "parents": [
        "1a45dcfe2525e9432cb4aba461d4994fc2befe42"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 02 13:43:58 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 02 18:11:21 2010 -0800"
      },
      "message": "idr: fix a critical misallocation bug\n\nEric Paris located a bug in idr.  With IDR_BITS of 6, it grows to three\nlayers when id 4096 is first allocated.  When that happens, idr wraps\nincorrectly and searches the idr array ignoring the high bits.  The\nfollowing test code from Eric demonstrates the bug nicely.\n\n#include \u003clinux/idr.h\u003e\n#include \u003clinux/kernel.h\u003e\n#include \u003clinux/module.h\u003e\n\nstatic DEFINE_IDR(test_idr);\n\nint init_module(void)\n{\n\tint ret, forty95, forty96;\n\tvoid *addr;\n\n\t/* add 2 entries both with 4095 as the start address */\nagain1:\n\tif (!idr_pre_get(\u0026test_idr, GFP_KERNEL))\n\t\treturn -ENOMEM;\n\tret \u003d idr_get_new_above(\u0026test_idr, (void *)4095, 4095, \u0026forty95);\n\tif (ret) {\n\t\tif (ret \u003d\u003d -EAGAIN)\n\t\t\tgoto again1;\n\t\treturn ret;\n\t}\n\tif (forty95 !\u003d 4095)\n\t\tprintk(KERN_ERR \"hmmm, forty95\u003d%d\\n\", forty95);\n\nagain2:\n\tif (!idr_pre_get(\u0026test_idr, GFP_KERNEL))\n\t\treturn -ENOMEM;\n\tret \u003d idr_get_new_above(\u0026test_idr, (void *)4096, 4095, \u0026forty96);\n\tif (ret) {\n\t\tif (ret \u003d\u003d -EAGAIN)\n\t\t\tgoto again2;\n\t\treturn ret;\n\t}\n\tif (forty96 !\u003d 4096)\n\t\tprintk(KERN_ERR \"hmmm, forty96\u003d%d\\n\", forty96);\n\n\t/* try to find the 2 entries, noticing that 4096 broke */\n\taddr \u003d idr_find(\u0026test_idr, forty95);\n\tif ((int)addr !\u003d forty95)\n\t\tprintk(KERN_ERR \"hmmm, after find forty95\u003d%d addr\u003d%d\\n\", forty95, (int)addr);\n\taddr \u003d idr_find(\u0026test_idr, forty96);\n\tif ((int)addr !\u003d forty96)\n\t\tprintk(KERN_ERR \"hmmm, after find forty96\u003d%d addr\u003d%d\\n\", forty96, (int)addr);\n\t/* really weird, the entry which should be at 4096 is actually at 0!! */\n\taddr \u003d idr_find(\u0026test_idr, 0);\n\tif ((int)addr)\n\t\tprintk(KERN_ERR \"found an entry at id\u003d0 for addr\u003d%d\\n\", (int)addr);\n\n\tidr_remove(\u0026test_idr, forty95);\n\tidr_remove(\u0026test_idr, forty96);\n\n\treturn 0;\n}\n\nvoid cleanup_module(void)\n{\n}\n\nMODULE_AUTHOR(\"Eric Paris \u003ceparis@redhat.com\u003e\");\nMODULE_DESCRIPTION(\"Simple idr test\");\nMODULE_LICENSE(\"GPL\");\n\nThis happens because when sub_alloc() back tracks it doesn\u0027t always do it\nstep-by-step while the over-the-limit detection assumes step-by-step\nbacktracking.  The logic in sub_alloc() looks like the following.\n\n  restart:\n    clear pa[top level + 1] for end cond detection\n    l \u003d top level\n    while (true) {\n\tsearch for empty slot at this level\n\tif (not found) {\n\t    push id to the next possible value\n\t    l++\nA:\t    if (pa[l] is clear)\n\t        failed, return asking caller to grow the tree\n\t    if (going up 1 level gives more slots to search)\n\t        continue the while loop above with the incremented l\n\t    else\nC:\t        goto restart\n\t}\n\tadjust id accordingly to the found slot\n\tif (l \u003d\u003d 0)\n\t    return found id;\n\tcreate lower level if not there yet\n\trecord pa[l] and l--\n    }\n\nTest A is the fail exit condition but this assumes that failure is\npropagated upwared one level at a time but the B optimization path breaks\nthe assumption and restarts the whole thing with a start value which is\nabove the possible limit with the current layers.  sub_alloc() assumes the\nstart id value is inside the limit when called and test A is the only exit\ncondition check, so it ends up searching for empty slot while ignoring\nhigh set bit.\n\nSo, for 4095-\u003e4096 test, level0 search fails but pa[1] contains a valid\npointer.  However, going up 1 level wouldn\u0027t give any more empty slot so\nit takes C and when the whole thing restarts nobody notices the high bit\nset beyond the top level.\n\nThis patch fixes the bug by changing the fail exit condition check to full\nid limit check.\n\nBased-on-patch-from: Eric Paris \u003ceparis@redhat.com\u003e\nReported-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94e2bd688820aed72b4f8092f88c2ccf64e003de",
      "tree": "988de1817ec5ebe40dc6f2901eb86987876c517f",
      "parents": [
        "65cb76baa1058d17d51ce948b697cdbd5dc97421"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Fri Oct 16 15:20:49 2009 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:48 2009 +0100"
      },
      "message": "tree-wide: fix some typos and punctuation in comments\n\nfix some typos and punctuation in comments\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "38460b48d06440de46b34cb778bd6c4855030754",
      "tree": "8f3362a446b5b03879f715c3f7279e70842bcca9",
      "parents": [
        "313e924c0852943e67335fad9d2608701f0dfe8e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "cgroup: CSS ID support\n\nPatch for Per-CSS(Cgroup Subsys State) ID and private hierarchy code.\n\nThis patch attaches unique ID to each css and provides following.\n\n - css_lookup(subsys, id)\n   returns pointer to struct cgroup_subysys_state of id.\n - css_get_next(subsys, id, rootid, depth, foundid)\n   returns the next css under \"root\" by scanning\n\nWhen cgroup_subsys-\u003euse_id is set, an id for css is maintained.\n\nThe cgroup framework only parepares\n\t- css_id of root css for subsys\n\t- id is automatically attached at creation of css.\n\t- id is *not* freed automatically. Because the cgroup framework\n\t  don\u0027t know lifetime of cgroup_subsys_state.\n\t  free_css_id() function is provided. This must be called by subsys.\n\nThere are several reasons to develop this.\n\t- Saving space .... For example, memcg\u0027s swap_cgroup is array of\n\t  pointers to cgroup. But it is not necessary to be very fast.\n\t  By replacing pointers(8bytes per ent) to ID (2byes per ent), we can\n\t  reduce much amount of memory usage.\n\n\t- Scanning without lock.\n\t  CSS_ID provides \"scan id under this ROOT\" function. By this, scanning\n\t  css under root can be written without locks.\n\t  ex)\n\t  do {\n\t\trcu_read_lock();\n\t\tnext \u003d cgroup_get_next(subsys, id, root, \u0026found);\n\t\t/* check sanity of next here */\n\t\tcss_tryget();\n\t\trcu_read_unlock();\n\t\tid \u003d found + 1\n\t } while(...)\n\nCharacteristics:\n\t- Each css has unique ID under subsys.\n\t- Lifetime of ID is controlled by subsys.\n\t- css ID contains \"ID\" and \"Depth in hierarchy\" and stack of hierarchy\n\t- Allowed ID is 1-65535, ID 0 is UNUSED ID.\n\nDesign Choices:\n\t- scan-by-ID v.s. scan-by-tree-walk.\n\t  As /proc\u0027s pid scan does, scan-by-ID is robust when scanning is done\n\t  by following kind of routine.\n\t  scan -\u003e rest a while(release a lock) -\u003e conitunue from interrupted\n\t  memcg\u0027s hierarchical reclaim does this.\n\n\t- When subsys-\u003euse_id is set, # of css in the system is limited to\n\t  65535.\n\n[bharata@linux.vnet.ibm.com: remove rcu_read_lock() from css_get_next()]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.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": "1b23336ad98b3666c216617227c7767cd60a22be",
      "tree": "8743554370742f55d993bfd6b5a281f81bc4dd0b",
      "parents": [
        "260219cc48cfb22486e5d0d706c978228a080d63"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Mar 10 12:55:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 10 15:55:11 2009 -0700"
      },
      "message": "idr: make idr_remove_all() do removal -before- free_layer()\n\nFix a problem in the IDR system, where an idr_remove_all() hands a data\nelement to call_rcu() (via free_layer()) before making that data element\ninaccessible to new readers.  This is very bad, and results in readers\nstill having a reference to this data element at the end of the grace\nperiod.\n\nTests on large machines that concurrently map and unmap user-space memory\nwithin the same multithreaded process result in crashes within about five\nminutes.  Applying this patch increases the kernel\u0027s longevity to the\nthree-to-eight-hour range.\n\nThere appear to be other similar problems in idr_get_empty_slot() and\nsub_remove(), but I fixed the easy one in idr_remove_all() first.  It is\ntherefore no surprise that failures still occur.\n\nLocated-by: Milton Miller II \u003cmiltonm@austin.ibm.com\u003e\nTested-by: Milton Miller II \u003cmiltonm@austin.ibm.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b019e99016f3a692ba45bf68fba73a402d7c01a",
      "tree": "a419c318c550dd2edaa03185477e162e0c7d8e77",
      "parents": [
        "5da7f3d71e243ef5c464967581414d29c72bab75"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Jan 15 13:51:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:40 2009 -0800"
      },
      "message": "lib/idr.c: use kmem_cache_zalloc() for the idr_layer cache\n\nDavid points out that the idr_remove_all() function returns unused slabs\nto the kmem cache, but needs to zero them first or else they will be\nuninitialized upon next use.  This causes crashes which have been observed\nin the firewire subsystem.\n\nHe fixed this by zeroing the object before freeing it in idr_remove_all().\n\nBut we agree that simply removing the constructor and zeroing the object\nat allocation time is simpler than relying upon slab constructor machinery\nand might even be faster.\n\nThis problem was introduced by \"idr: make idr_remove rcu-safe\" (commit\ncf481c20c476ad2c0febdace9ce23f5a4db19582), which was first released in\n2.6.27.\n\nThere are no known codesites which trigger this bug in 2.6.27 or 2.6.28.\nThe post-2.6.28 firewire changes are the only known triggerer.\n\nThere might of course be not-yet-discovered triggerers in 2.6.27 and\n2.6.28, and there might be out-of-tree triggerers which are added to those\nkernel versions.  I\u0027ll let the -stable guys decide whether they want to\nbackport this fix.\n\nReported-by: David Moore \u003cdcm@acm.org\u003e\nCc: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nCc: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Kristian Hgsberg \u003ckrh@redhat.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b098161b4d0231f7dc5306111d576c0bfe0c8eba",
      "tree": "4b95f05b5f50bd219943f4bd6b200ccde806a38b",
      "parents": [
        "45ce80fb6b6f9594d1396d44dd7e7c02d596fef8"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jan 15 13:51:00 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:37 2009 -0800"
      },
      "message": "idr: fix wrong kernel-doc\n\nidr_get_new_above() and ida_get_new_above() return an id in the range of\n@staring_id ... 0x7fffffff, not 0 ... 0x7fffffff.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "711a49a07f84f914aac26a52143f6e7526571143",
      "tree": "3ca4f774f868c1884bc6dc416ea68aa7b8666ef7",
      "parents": [
        "c7f8d6f6b5d121e5f7408119661ca29fc4661c10"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Wed Dec 10 18:17:06 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 13:34:33 2008 -0800"
      },
      "message": "lib/idr.c: Fix bug introduced by RCU fix\n\nThe last patch to lib/idr.c caused a bug if idr_get_new_above() was\ncalled on an empty idr.\n\nUsually, nodes stay on the same layer.  New layers are added to the top\nof the tree.\n\nThe exception is idr_get_new_above() on an empty tree: In this case, the\nnew root node is first added on layer 0, then moved upwards.  p-\u003elayer\nwas not updated.\n\nAs usual: You shall never rely on the source code comments, they will\nonly mislead you.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ff2d39b91aec3dcae951afa982059e3dd9b49dc",
      "tree": "8d480975d95adf85f3a87dd478e36e4ac0b0edd0",
      "parents": [
        "1d678f365dae28420fa7329a2a35390b3582678d"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Mon Dec 01 13:14:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 19:55:25 2008 -0800"
      },
      "message": "lib/idr.c: fix rcu related race with idr_find\n\n2nd part of the fixes needed for\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11796.\n\nWhen the idr tree is either grown or shrunk, then the update to the number\nof layers and the top pointer were not atomic.  This race caused crashes.\n\nThe attached patch fixes that by replicating the layers counter in each\nlayer, thus idr_find doesn\u0027t need idp-\u003elayers anymore.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Clement Calmels \u003ccboulte@gmail.com\u003e\nCc: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51cc50685a4275c6a02653670af9f108a64e01cf",
      "tree": "819d47bd2b0c8a9d1835d863853804b0a0242b97",
      "parents": [
        "d91958815d214ea365b98cbff6215383897edcb6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jul 25 19:45:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "SL*B: drop kmem cache argument from constructor\n\nKmem cache passed to constructor is only needed for constructors that are\nthemselves multiplexeres.  Nobody uses this \"feature\", nor does anybody uses\npassed kmem cache in non-trivial way, so pass only pointer to object.\n\nNon-trivial places are:\n\tarch/powerpc/mm/init_64.c\n\tarch/powerpc/mm/hugetlbpage.c\n\nThis is flag day, yes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\n[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]\n[akpm@linux-foundation.org: fix mm/slab.c]\n[akpm@linux-foundation.org: fix ubifs]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf481c20c476ad2c0febdace9ce23f5a4db19582",
      "tree": "4c46587ad6da3b40d9e7f2db93514f4d9045bc99",
      "parents": [
        "f9c46d6ea5ce138a886c3a0f10a46130afab75f5"
      ],
      "author": {
        "name": "Nadia Derbey",
        "email": "Nadia.Derbey@bull.net",
        "time": "Fri Jul 25 01:48:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:42 2008 -0700"
      },
      "message": "idr: make idr_remove rcu-safe\n\nIntroduce the free_layer() routine: it is the one that actually frees memory\nafter a grace period has elapsed.\n\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nReviewed-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Jim Houston \u003cjim.houston@comcast.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@gmail.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9c46d6ea5ce138a886c3a0f10a46130afab75f5",
      "tree": "1eedc2428866fb0b3f9f864e52ffb6eaf00911a4",
      "parents": [
        "3219b3b7456d5cf15ba7b1fe7b1bcf15ce8840e2"
      ],
      "author": {
        "name": "Nadia Derbey",
        "email": "Nadia.Derbey@bull.net",
        "time": "Fri Jul 25 01:48:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:42 2008 -0700"
      },
      "message": "idr: make idr_find rcu-safe\n\nMake idr_find rcu-safe: it can now be called inside an rcu_read critical\nsection.\n\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nReviewed-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Jim Houston \u003cjim.houston@comcast.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@gmail.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3219b3b7456d5cf15ba7b1fe7b1bcf15ce8840e2",
      "tree": "a7743ab2924063ff1b5dca4d835e760c8d4c7edf",
      "parents": [
        "944ca05c7b4972f2ebf37262e0f4933d178ad6db"
      ],
      "author": {
        "name": "Nadia Derbey",
        "email": "Nadia.Derbey@bull.net",
        "time": "Fri Jul 25 01:48:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:42 2008 -0700"
      },
      "message": "idr: make idr_get_new* rcu-safe\n\nMake the idr_get_new* routines rcu-safe.\n\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nReviewed-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Jim Houston \u003cjim.houston@comcast.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@gmail.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "944ca05c7b4972f2ebf37262e0f4933d178ad6db",
      "tree": "5fb7558b8247bb56b7c1781808e7eaf08e8fff4e",
      "parents": [
        "f098ad655f4dd8e3da98ffbeda9cedcc4459c01a"
      ],
      "author": {
        "name": "Nadia Derbey",
        "email": "Nadia.Derbey@bull.net",
        "time": "Fri Jul 25 01:47:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:41 2008 -0700"
      },
      "message": "idr: error checking factorization\n\nDo some code factorization in the return code analysis.\n\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Jim Houston \u003cjim.houston@comcast.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@gmail.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f098ad655f4dd8e3da98ffbeda9cedcc4459c01a",
      "tree": "c94831a25240a3257b77cdb93ec1469e3d4faf85",
      "parents": [
        "4ae537892ab9858f71c78701f4651ad1ca531a1b"
      ],
      "author": {
        "name": "Nadia Derbey",
        "email": "Nadia.Derbey@bull.net",
        "time": "Fri Jul 25 01:47:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:41 2008 -0700"
      },
      "message": "idr: fix a printk call\n\nFix the incomplete printk call.\n\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nReviewed-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Jim Houston \u003cjim.houston@comcast.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@gmail.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ae537892ab9858f71c78701f4651ad1ca531a1b",
      "tree": "c40baaaff4edc958d0fc642104a17c5a98b049de",
      "parents": [
        "2027d1abc25ff770cc3bc936abd33570ce85d85a"
      ],
      "author": {
        "name": "Nadia Derbey",
        "email": "Nadia.Derbey@bull.net",
        "time": "Fri Jul 25 01:47:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:41 2008 -0700"
      },
      "message": "idr: rename some of the idr APIs internal routines\n\nThis is a trivial patch that renames:\n\n   . alloc_layer to get_from_free_list since it idr_pre_get that actually\n     allocates memory.\n   . free_layer to move_to_free_list since memory is not actually freed there.\n\nThis makes things more clear for the next patches.\n\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nReviewed-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Jim Houston \u003cjim.houston@comcast.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@gmail.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af8e2a4cb9b3e14b919ae1cd4012825aefddbeb0",
      "tree": "8910da8632172a09437db0bb5860234daefd894f",
      "parents": [
        "7793bfcfccc91d036d61618d90baf2be3d76e710"
      ],
      "author": {
        "name": "Nadia Derbey",
        "email": "Nadia.Derbey@bull.net",
        "time": "Thu May 01 04:34:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:04:00 2008 -0700"
      },
      "message": "idr: fix idr_remove()\n\nThe return inside the loop makes us free only a single layer.\n\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Jim Houston \u003cjim.houston@comcast.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "199f0ca514f9c17668eec4f935c4ba24cd789f85",
      "tree": "54406e3eb5be58e3350d8f60a64ac78ec3990f97",
      "parents": [
        "801678c5a3b4c79236970bcca27c733f5559e0d1"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Apr 29 01:03:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:25 2008 -0700"
      },
      "message": "idr: create idr_layer_cache at boot time\n\nAvoid a possible kmem_cache_create() failure by creating idr_layer_cache\nunconditionary at boot time rather than creating it on-demand when idr_init()\nis called the first time.\n\nThis change also enables us to eliminate the check every time idr_init() is\ncalled.\n\n[akpm@linux-foundation.org: rename init_id_cache() to idr_init_cache()]\n[akpm@linux-foundation.org: fix alpha build]\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ba9b9d0ba0a49d91fa6417c7510ee36f48cf957",
      "tree": "191b4f45f926e44b882b1e87a9a85dc12230b892",
      "parents": [
        "b811c202a0edadaac7242ab834fe7ba409978ae7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 23:25:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "Slab API: remove useless ctor parameter and reorder parameters\n\nSlab constructors currently have a flags parameter that is never used.  And\nthe order of the arguments is opposite to other slab functions.  The object\npointer is placed before the kmem_cache pointer.\n\nConvert\n\n        ctor(void *object, struct kmem_cache *s, unsigned long flags)\n\nto\n\n        ctor(struct kmem_cache *s, void *object)\n\nthroughout the kernel\n\n[akpm@linux-foundation.org: coupla fixes]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ba253313d014364a9b87b6fa975ce2fc9759aa6",
      "tree": "b6f7b222b980d7a28e8d73d6cf939454a77205b1",
      "parents": [
        "b4482a4b2e2ff5ed96d8d16d72e83e75064062c5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sun Oct 14 19:35:50 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Oct 14 12:41:52 2007 -0700"
      },
      "message": "more low-hanging fruits - kernel, fs, lib signedness\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ace06dc68db13f7f82f9341fdef89502f0bb217",
      "tree": "a19c36e9387ac8e225c4de490c423923549b2e59",
      "parents": [
        "c9b3febc5b9c55a76b838c977b078195ec8bb95e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Jul 31 00:39:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 31 15:39:42 2007 -0700"
      },
      "message": "idr_remove_all: kill unused variable\n\n\"error\" is always equal to 0.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "23936cc0b5d89619c34c2dab11d8cf3d6f7ca028",
      "tree": "506ec36cc37d3bc7dbf0ca68d1b271f9247fa458",
      "parents": [
        "96d7fa421e6424ad9ef6d1d039375dc2edb63fe8"
      ],
      "author": {
        "name": "Kristian Hoegsberg",
        "email": "krh@redhat.com",
        "time": "Sun Jul 15 23:37:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:34 2007 -0700"
      },
      "message": "lib: add idr_remove_all\n\nRemove all ids from the given idr tree.  idr_destroy() only frees up\nunused, cached idp_layers, but this function will remove all id mappings\nand leave all idp_layers unused.\n\nA typical clean-up sequence for objects stored in an idr tree, will use\nidr_for_each() to free all objects, if necessay, then idr_remove_all() to\nremove all ids, and idr_destroy() to free up the cached idr_layers.\n\nSigned-off-by: Kristian Hoegsberg \u003ckrh@redhat.com\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96d7fa421e6424ad9ef6d1d039375dc2edb63fe8",
      "tree": "ba8a8200bda4576e1e4dcce2ff27a7a7a94723a2",
      "parents": [
        "de7d4f0e1172a72277d660fa0be59654ea02bed0"
      ],
      "author": {
        "name": "Kristian Hoegsberg",
        "email": "krh@redhat.com",
        "time": "Sun Jul 15 23:37:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:34 2007 -0700"
      },
      "message": "lib: add idr_for_each()\n\nThis patch adds an iterator function for the idr data structure.  Compared\nto just iterating through the idr with an integer and idr_find, this\niterator is (almost, but not quite) linear in the number of elements, as\nopposed to the number of integers in the range covered by the idr.  This\nmakes a difference for sparse idrs, but more importantly, it\u0027s a nicer way\nto iterate through the elements.\n\nThe drm subsystem is moving to idr for tracking contexts and drawables, and\nwith this change, we can use the idr exclusively for tracking these\nresources.\n\n[akpm@linux-foundation.org: fix comment]\nSigned-off-by: Kristian Hoegsberg \u003ckrh@redhat.com\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72dba584b695d8bc8c1a50ed54ad4cba7c62314d",
      "tree": "b0938ea773953f869b22101bb021e5710d0a0fec",
      "parents": [
        "e33ac8bdb0c84fe7afd2c45537b763faf28c589e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 03:45:13 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:03 2007 -0700"
      },
      "message": "ida: implement idr based id allocator\n\nImplement idr based id allocator.  ida is used the same way idr is\nused but lacks id -\u003e ptr translation and thus consumes much less\nmemory.  struct ida_bitmap is attached as leaf nodes to idr tree which\nis managed by the idr code.  Each ida_bitmap is 128bytes long and\ncontains slightly less than a thousand slots.\n\nida is more aggressive with releasing extra resources acquired using\nida_pre_get().  After every successful id allocation, ida frees one\nreserved idr_layer if possible.  Reserved ida_bitmap is not freed\nautomatically but only one ida_bitmap is reserved and it\u0027s almost\nalways used right away.  Under most circumstances, ida won\u0027t hold on\nto memory for too long which isn\u0027t actively used.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e33ac8bdb0c84fe7afd2c45537b763faf28c589e",
      "tree": "36b48600d7d0a5042042b51ed242bc57a7592025",
      "parents": [
        "7aae6dd80e265aa9402ed507caaff4a5dba55069"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 03:45:12 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:03 2007 -0700"
      },
      "message": "idr: separate out idr_mark_full()\n\nSeparate out idr_mark_full() from sub_alloc() and make marking the\nallocated slot full the responsibility of idr_get_new_above_int().\n\nAllocation part of idr_get_new_above_int() is renamed to\nidr_get_empty_slot().  New idr_get_new_above_int() allocates a slot\nusing the function, install the user pointer and marks it full using\nidr_mark_full().\n\nThis change doesn\u0027t introduce any behavior change.  This will be\nused by ida.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7aae6dd80e265aa9402ed507caaff4a5dba55069",
      "tree": "b6b2e4d4942fd199768f6df6b0694a886e8c4375",
      "parents": [
        "dc0afa8388972a9ed7c2203cc46d8df1a4713f65"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 03:45:12 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:02 2007 -0700"
      },
      "message": "idr: fix obscure bug in allocation path\n\nIn sub_alloc(), when bitmap search fails, it goes up one level to\ncontinue search.  This is done by updating the id cursor and searching\nthe upper level again.  If the cursor was at the end of the upper\nlevel, we need to go further than that.\n\nThis wasn\u0027t implemented and when that happens the part of the cursor\nwhich indexes into the upper level wraps and sub_alloc() ends up\nsearching the wrong bitmap.  It allocates id which doesn\u0027t match the\nactual slot.\n\nThis patch fixes this by restarting from the top if the search needs\nto go higher than one level.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "72fd4a35a824331d7a0f4168d7576502d95d34b3",
      "tree": "be27880bc36b7f62e8044a88b8744a35c5317714",
      "parents": [
        "262086cf5b5343c2b81c97b1c606058e921859df"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Sat Feb 10 01:45:59 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:32 2007 -0800"
      },
      "message": "[PATCH] Numerous fixes to kernel-doc info in source files.\n\nA variety of (mostly) innocuous fixes to the embedded kernel-doc content in\nsource files, including:\n\n  * make multi-line initial descriptions single line\n  * denote some function names, constants and structs as such\n  * change erroneous opening \u0027/*\u0027 to \u0027/**\u0027 in a few places\n  * reword some text for clarity\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c259cc281255bdb30ceba190bfd7f37e3ae3fc85",
      "tree": "395028450ca91c441eab243186f5015fe5d6e3d4",
      "parents": [
        "6fbe82a952790c634ea6035c223a01a81377daf1"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Fri Jul 14 00:24:23 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:54 2006 -0700"
      },
      "message": "[PATCH] Convert idr\u0027s internal locking to _irqsave variant\n\nCurrently, the code in lib/idr.c uses a bare spin_lock(\u0026idp-\u003elock) to do\ninternal locking.  This is a nasty trap for code that might call idr\nfunctions from different contexts; for example, it seems perfectly\nreasonable to call idr_get_new() from process context and idr_remove() from\ninterrupt context -- but with the current locking this would lead to a\npotential deadlock.\n\nThe simplest fix for this is to just convert the idr locking to use\nspin_lock_irqsave().\n\nIn particular, this fixes a very complicated locking issue detected by\nlockdep, involving the ib_ipoib driver\u0027s priv-\u003elock and dev-\u003e_xmit_lock,\nwhich get involved with the ib_sa module\u0027s query_idr.lock.\n\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e,\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5806f07cd2c32920d5105e0f9ff3117338f34eec",
      "tree": "65242ea629a19308656a3090fee6b513dfa0f723",
      "parents": [
        "c51c2752491e5e771de6c8861a85ba46752d7888"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Jun 26 00:27:19 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:34 2006 -0700"
      },
      "message": "[PATCH] lib: add idr_replace\n\nThis patch adds idr_replace() to replace an existing pointer in a single\noperation.\n\nDevice-mapper will use this to update the pointer it stored against a given\nid.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1eec00565d849ceda67f425e089c3233e3ef2ca2",
      "tree": "83f5bb133755ddde28772e64b99ff0cfd701f0d7",
      "parents": [
        "a45219483e2894af3c07f959cbd4edb4575b4f8c"
      ],
      "author": {
        "name": "Sonny Rao",
        "email": "sonny@burdell.org",
        "time": "Sun Jun 25 05:49:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:26 2006 -0700"
      },
      "message": "[PATCH] fix race in idr code\n\nI ran into a bug where the kernel died in the idr code:\n\ncpu 0x1d: Vector: 300 (Data Access) at [c000000b7096f710]\n    pc: c0000000001f8984: .idr_get_new_above_int+0x140/0x330\n    lr: c0000000001f89b4: .idr_get_new_above_int+0x170/0x330\n    sp: c000000b7096f990\n   msr: 800000000000b032\n   dar: 0\n dsisr: 40010000\n  current \u003d 0xc000000b70d43830\n  paca    \u003d 0xc000000000556900\n    pid   \u003d 2022, comm \u003d hwup\n1d:mon\u003e t\n[c000000b7096f990] c0000000000d2ad8 .expand_files+0x2e8/0x364 (unreliable)\n[c000000b7096faa0] c0000000001f8bf8 .idr_get_new_above+0x18/0x68\n[c000000b7096fb20] c00000000002a054 .init_new_context+0x5c/0xf0\n[c000000b7096fbc0] c000000000049dc8 .copy_process+0x91c/0x1404\n[c000000b7096fcd0] c00000000004a988 .do_fork+0xd8/0x224\n[c000000b7096fdc0] c00000000000ebdc .sys_clone+0x5c/0x74\n[c000000b7096fe30] c000000000008950 .ppc_clone+0x8/0xc\n"
    },
    {
      "commit": "e15ae2dd3e436552293e122a5163019e7a0fa450",
      "tree": "cc6b18dd364329faa07c39c77ac133b61a8befc7",
      "parents": [
        "850b9247926693454f71e819883f4dc06184e25f"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Sun Oct 30 15:02:14 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:19 2005 -0800"
      },
      "message": "[PATCH] Whitespace and CodingStyle cleanup for lib/idr.c\n\nCleanup trailing whitespace, blank lines, CodingStyle issues etc, for\nlib/idr.c\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd4f2df24bc23e6b8fc069765b425c7dacf52347",
      "tree": "f7e993817030747c5e1000d46685ebd2eef11085",
      "parents": [
        "6daa0e28627abf362138244a620a821a9027d816"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:18:50 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:47 2005 -0700"
      },
      "message": "[PATCH] gfp_t: lib/*\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8d3b35914aa54232b27e6a2b57d84092aadc5e86",
      "tree": "809be8fad6743a751964677e68c5c01af3198e4b",
      "parents": [
        "c0fef676bbd75e711711ed3ff5bebb7bfd1bdb00"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Oct 23 12:57:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 23 16:38:39 2005 -0700"
      },
      "message": "[PATCH] inotify/idr leak fix\n\nFix a bug which was reported and diagnosed by\nStefan Jones \u003cstefan.jones@churchillrandoms.co.uk\u003e\n\nIDR trees include a cache of idr_layer objects.  There\u0027s no way to destroy\nthis cache, so when we discard an overall idr tree we end up leaking some\nmemory.\n\nAdd and use idr_destroy() for this.  v9fs and infiniband also need to use\nidr_destroy() to avoid leaks.\n\nOr, we make the cache global, like radix_tree_preload().  Which is probably\nbetter.  Later.\n\nCc: Eric Van Hensbergen \u003cericvh@ericvh.myip.org\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Robert Love \u003crml@novell.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7c657f2f25d50c602df9291bc6242b98fc090759",
      "tree": "5e1ae11c320ea00488b33224cc982d0be2d986d6",
      "parents": [
        "755528c860b05fcecda1c88a2bdaffcb50760a7f"
      ],
      "author": {
        "name": "John McCutchan",
        "email": "ttb@tentacle.dhs.org",
        "time": "Fri Aug 26 14:02:04 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Aug 26 11:32:57 2005 -0700"
      },
      "message": "[PATCH] Document idr_get_new_above() semantics, update inotify\n\nThere is an off by one problem with idr_get_new_above.\n\nThe comment and function name suggest that it will return an id \u003e\nstarting_id, but it actually returned an id \u003e\u003d starting_id, and kernel\ncallers other than inotify treated it as such.\n\nThe patch below fixes the comment, and fixes inotifys usage.  The\nfunction name still doesn\u0027t match the behaviour, but it never did.\n\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "589777eab7360894b7ca1c4ba9d252e03b51225b",
      "tree": "d32b8dadc4dc52e81d2b9ffbd03d100b168b41fa",
      "parents": [
        "3a845099b20e81fb678521f034bbdcd69208da4e"
      ],
      "author": {
        "name": "Zaur Kambarov",
        "email": "kambarov@berkeley.edu",
        "time": "Tue Jun 21 17:14:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:12 2005 -0700"
      },
      "message": "[PATCH] coverity: idr_get_new_above_int() overrun fix\n\nThis patch fixes overrun of array pa:\n92   \t\tstruct idr_layer *pa[MAX_LEVEL];\n\nin\n\n98   \t\tl \u003d idp-\u003elayers;\n99   \t\tpa[l--] \u003d NULL;\n\nby passing idp-\u003elayers, set in\n202  \t\tidp-\u003elayers \u003d layers;\nto function  sub_alloc in\n203  \t\tv \u003d sub_alloc(idp, ptr, \u0026id);\n\nSigned-off-by: Zaur Kambarov \u003czkambarov@coverity.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
