)]}'
{
  "log": [
    {
      "commit": "b3c97528689619fc66569b30bf83d09d9929521a",
      "tree": "91dc53590deab88c9bf255c2b5cbd74bdbc36de1",
      "parents": [
        "aa02cd2d9bd1e24a230bd66a0a741b984d03915a"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Feb 13 15:03:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 13 16:21:18 2008 -0800"
      },
      "message": "include/linux: Remove all users of FASTCALL() macro\n\nFASTCALL() is always expanded to empty, remove it.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Harvey Harrison \u003charvey.harrison@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": "0ccf831cbee94df9c5006dd46248c0f07847dd7c",
      "tree": "4de8d53c51dc4aff80f35a95cdd185229f0df79e",
      "parents": [
        "96cf49a2c13e8dcf442abaadf6645f6a1fb3ae92"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Feb 04 22:27:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "lockdep: annotate epoll\n\nOn Sat, 2008-01-05 at 13:35 -0800, Davide Libenzi wrote:\n\n\u003e I remember I talked with Arjan about this time ago. Basically, since 1)\n\u003e you can drop an epoll fd inside another epoll fd 2) callback-based wakeups\n\u003e are used, you can see a wake_up() from inside another wake_up(), but they\n\u003e will never refer to the same lock instance.\n\u003e Think about:\n\u003e\n\u003e \tdfd \u003d socket(...);\n\u003e \tefd1 \u003d epoll_create();\n\u003e \tefd2 \u003d epoll_create();\n\u003e \tepoll_ctl(efd1, EPOLL_CTL_ADD, dfd, ...);\n\u003e \tepoll_ctl(efd2, EPOLL_CTL_ADD, efd1, ...);\n\u003e\n\u003e When a packet arrives to the device underneath \"dfd\", the net code will\n\u003e issue a wake_up() on its poll wake list. Epoll (efd1) has installed a\n\u003e callback wakeup entry on that queue, and the wake_up() performed by the\n\u003e \"dfd\" net code will end up in ep_poll_callback(). At this point epoll\n\u003e (efd1) notices that it may have some event ready, so it needs to wake up\n\u003e the waiters on its poll wait list (efd2). So it calls ep_poll_safewake()\n\u003e that ends up in another wake_up(), after having checked about the\n\u003e recursion constraints. That are, no more than EP_MAX_POLLWAKE_NESTS, to\n\u003e avoid stack blasting. Never hit the same queue, to avoid loops like:\n\u003e\n\u003e \tepoll_ctl(efd2, EPOLL_CTL_ADD, efd1, ...);\n\u003e \tepoll_ctl(efd3, EPOLL_CTL_ADD, efd2, ...);\n\u003e \tepoll_ctl(efd4, EPOLL_CTL_ADD, efd3, ...);\n\u003e \tepoll_ctl(efd1, EPOLL_CTL_ADD, efd4, ...);\n\u003e\n\u003e The code \"if (tncur-\u003ewq \u003d\u003d wq || ...\" prevents re-entering the same\n\u003e queue/lock.\n\nSince the epoll code is very careful to not nest same instance locks\nallow the recursion.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.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": "1411d5a7fbe7dce1568b6f0a94c7cbc69eed1bfe",
      "tree": "c69fa1370eeb40d43c26444db61a853162683771",
      "parents": [
        "294d5cc233d81ec4aec77ebc60dc5752a3d0082a"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Dec 06 12:00:00 2007 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Dec 06 17:40:14 2007 -0500"
      },
      "message": "Add wait_event_killable\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "e64d66c8edf11629aa203328daf898775ee27dd4",
      "tree": "3b91bfac6774079eff7707214645f75a1484f20a",
      "parents": [
        "6d8982d9b8f4b771754335f1398e406cc72003c3"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Dec 06 17:34:36 2007 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Dec 06 17:34:36 2007 -0500"
      },
      "message": "wait: Use TASK_NORMAL\n\nAlso move wake_up_locked() to be with the related functions\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "0fec171cdbd7763ef86cbaccb91f3708de6a9003",
      "tree": "cfbc2617b6cf2542699172ab430ecc97ef1f2d3e",
      "parents": [
        "9761eea8516d1ff2c7b185e283c5d81cfc307acb"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:52:01 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:52:01 2007 +0200"
      },
      "message": "sched: clean up sleep_on() APIs\n\nclean up the sleep_on() APIs:\n\n - do not use fastcall\n - replace fragile macro magic with proper inline functions\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7259f0d05d595b73ef312a082e628627c6414969",
      "tree": "6227c5e3cd0c31fa80c7a35113007caaf70bf3b6",
      "parents": [
        "70812522b847bdb8fabee963191734f5fa3143f3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun Oct 29 22:46:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 30 12:08:40 2006 -0800"
      },
      "message": "[PATCH] lockdep: annotate DECLARE_WAIT_QUEUE_HEAD\n\nkernel: INFO: trying to register non-static key.\nkernel: the code is fine but needs lockdep annotation.\nkernel: turning off the locking correctness validator.\nkernel:  [\u003cc04051ed\u003e] show_trace_log_lvl+0x58/0x16a\nkernel:  [\u003cc04057fa\u003e] show_trace+0xd/0x10\nkernel:  [\u003cc0405913\u003e] dump_stack+0x19/0x1b\nkernel:  [\u003cc043b1e2\u003e] __lock_acquire+0xf0/0x90d\nkernel:  [\u003cc043bf70\u003e] lock_acquire+0x4b/0x6b\nkernel:  [\u003cc061472f\u003e] _spin_lock_irqsave+0x22/0x32\nkernel:  [\u003cc04363d3\u003e] prepare_to_wait+0x17/0x4b\nkernel:  [\u003cf89a24b6\u003e] lpfc_do_work+0xdd/0xcc2 [lpfc]\nkernel:  [\u003cc04361b9\u003e] kthread+0xc3/0xf2\nkernel:  [\u003cc0402005\u003e] kernel_thread_helper+0x5/0xb\n\nAnother case of non-static lockdep keys; duplicate the paradigm set by\nDECLARE_COMPLETION_ONSTACK and introduce DECLARE_WAIT_QUEUE_HEAD_ONSTACK.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: Markus Lidel \u003cmarkus.lidel@shadowconnect.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "21d71f513b6221f482ed6ad45e05f073ae67f319",
      "tree": "4b890613d46adce1391be4c5c954f5042968ba85",
      "parents": [
        "92eb7a2f28d551acedeb5752263267a64b1f5ddf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 10 04:45:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:25 2006 -0700"
      },
      "message": "[PATCH] uninline init_waitqueue_head()\n\nallyesconfig vmlinux size delta:\n\n  text            data    bss     dec          filename\n  20736884        6073834 3075176 29885894     vmlinux.before\n  20721009        6073966 3075176 29870151     vmlinux.after\n\n~18 bytes per callsite, 15K of text size (~0.1%) saved.\n\n(as an added bonus this also removes a lockdep annotation.)\n\nSigned-off-by: 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": "eb4542b98c81e22e08587b747b21986a45360999",
      "tree": "e983cc095333c11bed51950ed39ad3a51d140398",
      "parents": [
        "243c7621aac4ed1aa79524c9a1cecf7c05a28124"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:07 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate waitqueues\n\nCreate one lock class for all waitqueue locks in the kernel.  Has no effect on\nnon-lockdep kernels.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e4d919188554a77c798a267e098059bc9aa39726",
      "tree": "bb5e47e09f5d107db44358ad668988f5ae768ade",
      "parents": [
        "9cebb5526833059f327d237a032422c762378b2a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:02 2006 -0700"
      },
      "message": "[PATCH] lockdep: locking init debugging improvement\n\nLocking init improvement:\n\n - introduce and use __SPIN_LOCK_UNLOCKED for array initializations,\n   to pass in the name string of locks, used by debugging\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "8c65b4a60450590e79a28e9717ceffa9e4debb3f",
      "tree": "e0e42b5faee0a1c44746a36d9df7a8fbb2a2c24c",
      "parents": [
        "6fdcc2162285a8fc96ab12ff85086c37bceaa494"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Mon Nov 07 00:59:43 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:41 2005 -0800"
      },
      "message": "[PATCH] fix remaining missing includes\n\nFix more include file problems that surfaced since I submitted the previous\nfix-missing-includes.patch.  This should now allow not to include sched.h\nfrom module.h, which is done by a followup patch.\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c43dc2fd885b5658cfd7cedb7bcca20910c517a4",
      "tree": "98b723badf4a71c9dbf04cfd0babcb02ac577982",
      "parents": [
        "63e6880918e75dcb92d60aff218a76e063a471ef"
      ],
      "author": {
        "name": "Benjamin LaHaise",
        "email": "bcrl@kvack.org",
        "time": "Thu Jun 23 00:10:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:34 2005 -0700"
      },
      "message": "[PATCH] aio: make wait_queue -\u003etask -\u003eprivate\n\nIn the upcoming aio_down patch, it is useful to store a private data\npointer in the kiocb\u0027s wait_queue.  Since we provide our own wake up\nfunction and do not require the task_struct pointer, it makes sense to\nconvert the task pointer into a generic private pointer.\n\nSigned-off-by: Benjamin LaHaise \u003cbenjamin.c.lahaise@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7e43c84e3e5423ae72ae31e4cd7bbccfd1605194",
      "tree": "b414129c41bdefb4e8b5fd98b0a014fc2c2aff91",
      "parents": [
        "187a1a94d629621d1471b42308e63573b1150773"
      ],
      "author": {
        "name": "blaisorblade@yahoo.it",
        "email": "blaisorblade@yahoo.it",
        "time": "Wed May 25 01:31:42 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue May 24 17:05:20 2005 -0700"
      },
      "message": "[PATCH] Cleanup DEFINE_WAIT\n\nUse LIST_HEAD_INIT rather than doing it by hand in DEFINE_WAIT.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\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"
    }
  ]
}
