)]}'
{
  "log": [
    {
      "commit": "f756d5e256059018d753f0ba79980ebeb87a1bc0",
      "tree": "e96ae0117aaf6dea19dad88079c3229f679c1948",
      "parents": [
        "945f390f02ce44a13aefc6d9449c99f33c9286a5"
      ],
      "author": {
        "name": "Nathan Lynch",
        "email": "ntl@pobox.com",
        "time": "Sun Jan 08 01:05:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:08 2006 -0800"
      },
      "message": "[PATCH] fix workqueue oops during cpu offline\n\nUse first_cpu(cpu_possible_map) for the single-thread workqueue case.  We\nused to hardcode 0, but that broke on systems where !cpu_possible(0) when\nworkqueue_struct-\u003ecpu_workqueue_struct was changed from a static array to\nalloc_percpu.\n\nCommit id bce61dd49d6ba7799be2de17c772e4c701558f14 (\"Fix hardcoded cpu\u003d0 in\nworkqueue for per_cpu_ptr() calls\") fixed that for Ben\u0027s funky sparc64\nsystem, but it regressed my Power5.  Offlining cpu 0 oopses upon the next\ncall to queue_work for a single-thread workqueue, because now we try to\nmanipulate per_cpu_ptr(wq-\u003ecpu_wq, 1), which is uninitialized.\n\nSo we need to establish an unchanging \"slot\" for single-thread workqueues\nwhich will have a valid percpu allocation.  Since alloc_percpu keys off of\ncpu_possible_map, which must not change after initialization, make this\nslot \u003d\u003d first_cpu(cpu_possible_map).\n\nSigned-off-by: Nathan Lynch \u003cntl@pobox.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "676121fcb66c861804e38d94214fd5670a1ef595",
      "tree": "7b0f9d34efd5e1cb9b6b595aedcd9419942b5055",
      "parents": [
        "9fa37fd1627ec804e57ae0388555719b03b39f20"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@debian.org",
        "time": "Sun Jan 08 01:03:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:54 2006 -0800"
      },
      "message": "[PATCH] Unchecked alloc_percpu() return in __create_workqueue()\n\n__create_workqueue() not checking return of alloc_percpu()\n\nNULL dereference was possible.\n\nSigned-off-by: Ben Collins \u003cbcollins@ubuntu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "15316ba81aee6775d6079fb46c66c801989e7d10",
      "tree": "c6190bdcc6e15fd8b5657a5932313e296b475577",
      "parents": [
        "48db57f8ff10eb09ab887ccb6150b0da0c7be24e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun Jan 08 01:00:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:40 2006 -0800"
      },
      "message": "[PATCH] add schedule_on_each_cpu()\n\nswap migration\u0027s isolate_lru_page() currently uses an IPI to notify other\nprocessors that the lru caches need to be drained if the page cannot be\nfound on the LRU.  The IPI interrupt may interrupt a processor that is just\nprocessing lru requests and cause a race condition.\n\nThis patch introduces a new function run_on_each_cpu() that uses the\nkeventd() to run the LRU draining on each processor.  Processors disable\npreemption when dealing the LRU caches (these are per processor) and thus\nexecuting LRU draining from another process is safe.\n\nThanks to Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e for finding this race\ncondition.\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": "bce61dd49d6ba7799be2de17c772e4c701558f14",
      "tree": "a8fd75afc85ffef3c9af0bafa1989d7a14e1a187",
      "parents": [
        "ee500f274914653a7d3dfca7d0140a3d21658e32"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@debian.org",
        "time": "Mon Nov 28 13:43:56 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:23 2005 -0800"
      },
      "message": "[PATCH] Fix hardcoded cpu\u003d0 in workqueue for per_cpu_ptr() calls\n\nTracked this down on an Ultra Enterprise 3000.  It\u0027s a 6-way machine.  Odd\nthing about this machine (and it\u0027s good for finding bugs like this) is that\nthe CPU id\u0027s are not 0 based.  For instance, on my machine the CPU\u0027s are\n6/7/10/11/14/15.\n\nThis caused some NULL pointer dereference in kernel/workqueue.c because for\nsingle_threaded workqueue\u0027s, it hardcoded the cpu to 0.\n\nI changed the 0\u0027s to any_online_cpu(cpu_online_mask), which cpumask.h\nclaims is \"First cpu in mask\".  So this fits the same usage.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a4c4af7c8dc1eccdfb8c57e1684f08179b4407e6",
      "tree": "210773f292da3ba85818402f1945ee7b14ba8c71",
      "parents": [
        "cc658cfe3c66a6124b5a8db90cdcdd440201b1dc"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Nov 07 00:58:38 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:29 2005 -0800"
      },
      "message": "[PATCH] cpu hoptlug: avoid usage of smp_processor_id() in preemptible code\n\nReplace smp_processor_id() with any_online_cpu(cpu_online_map) in order to\navoid lots of \"BUG: using smp_processor_id() in preemptible [00000001]\ncode:...\" messages in case taking a cpu online fails.\n\nAll the traces start at the last notifier_call_chain(...) in kernel/cpu.c.\nSince we hold the cpu_control semaphore it shouldn\u0027t be any problem to access\ncpu_online_map.\n\nThe reason why cpu_up failed is simply that the cpu that was supposed to be\ntaken online wasn\u0027t even there.  That is because on s390 we never know when a\nnew cpu comes and therefore cpu_possible_map consists of only ones and doesn\u0027t\nreflect reality.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "89ada67917f516212452443a56b9fd3b65b74dc7",
      "tree": "00986fd653bf1973a70ae894f503b3b2352943b5",
      "parents": [
        "d61780c0d384939ef31c46b47442854d5def4623"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun Oct 30 15:01:59 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:18 2005 -0800"
      },
      "message": "[PATCH] Use alloc_percpu to allocate workqueues locally\n\nThis patch makes the workqueus use alloc_percpu instead of an array.  The\nworkqueues are placed on nodes local to each processor.\n\nThe workqueue structure can grow to a significant size on a system with\nlots of processors if this patch is not applied.  64 bit architectures with\nall debugging features enabled and configured for 512 processors will not\nbe able to boot without this patch.\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": "dd3927105b6f65afb7dac17682172cdfb86d3f00",
      "tree": "5cf282aff500cad23b9d7e13dc19b2b2d31e1ce6",
      "parents": [
        "640e803376b9c4072f69fec42e304c974a631298"
      ],
      "author": {
        "name": "Pekka J Enberg",
        "email": "penberg@cs.Helsinki.FI",
        "time": "Tue Sep 06 15:18:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:45 2005 -0700"
      },
      "message": "[PATCH] introduce and use kzalloc\n\nThis patch introduces a kzalloc wrapper and converts kernel/ to use it.  It\nsaves a little program text.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\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"
    },
    {
      "commit": "230649da7cb73914b8b2a1ffc802a2951e970454",
      "tree": "ea18d1246118221640d1aebc89d6f1ba11b4869c",
      "parents": [
        "b80068543794864f533163c586be2a1a9880a65d"
      ],
      "author": {
        "name": "Mika Kukkonen",
        "email": "mikukkon@gmail.com",
        "time": "Tue Sep 06 15:17:17 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:28 2005 -0700"
      },
      "message": "[PATCH] create_workqueue_thread() signedness fix\n\nWith \"-W -Wno-unused -Wno-sign-compare\" I get the following compile warning:\n\n  CC      kernel/workqueue.o\nkernel/workqueue.c: In function `workqueue_cpu_callback\u0027:\nkernel/workqueue.c:504: warning: ordered comparison of pointer with integer zero\n\nOn error create_workqueue_thread() returns NULL, not negative pointer, so\nfollowing trivial patch suggests itself.\n\nSigned-off-by: Mika Kukkonen \u003cmikukkon@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "606867443764edac5a2c542f2fa0a12ef7a7c7fd",
      "tree": "61110afaef5e8be41be940815a8bd6065e32c5da",
      "parents": [
        "3462b925414a146d4c2252de97d20f89218d1ffb"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Wed Aug 10 11:29:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Aug 10 11:55:19 2005 -0700"
      },
      "message": "[PATCH] remove name length check in a workqueue\n\nWe have a chek in there to make sure that the name won\u0027t overflow\ntask_struct.comm[], but it\u0027s triggering for scsi with lots of HBAs, only\nscsi is using single-threaded workqueues which don\u0027t append the \"/%d\"\nanyway.\n\nAll too hard.  Just kill the BUG_ON.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n\n[ kthread_create() uses vsnprintf() and limits the thing, so no\n  actual overflow can actually happen regardless ]\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "81ddef77bb774e771db8588b937665cd38f40cee",
      "tree": "5e89b0f6bb47a43b3b00d30a5e1e22db727b5047",
      "parents": [
        "9ffb7146f0aa9c0070cda3d8701b0a89e34913d1"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Sat Apr 16 15:23:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:23:59 2005 -0700"
      },
      "message": "[PATCH] re-export cancel_rearming_delayed_workqueue\n\nThis was unexported by Arjan because we have no current users.\n\nHowever, during a conversion from tasklets to workqueues of the parisc led\nfunctions, we ran across a case where this was needed.  In particular, the\nopen coded equivalent of cancel_rearming_delayed_workqueue was implemented\nincorrectly, which is, I think, all the evidence necessary that this is a\nuseful API.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.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"
    }
  ]
}
