)]}'
{
  "log": [
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "110f82d7a2e0ff5a17617a9672f1ccb7e44bc0c6",
      "tree": "64387d5a82eccf8156b746a2c42c2e81e9d34b91",
      "parents": [
        "abe94c756c08d50566c09a65b9c7fe72f83071c5"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jan 18 22:36:49 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Feb 01 21:51:28 2010 +0100"
      },
      "message": "firewire: net: fix panic in fwnet_write_complete\n\nIn the transmit path of firewire-net (IPv4 over 1394), the following\nrace condition may occur:\n  - The networking soft IRQ inserts a datagram into the 1394 async\n    request transmit DMA.\n  - The 1394 async transmit completion tasklet runs to finish cleaning\n    up (unlink datagram from list of pending ones, release skb and\n    outbound 1394 transaction object) --- before the networking soft IRQ\n    had a chance to proceed and add the datagram to the list of pending\n    datagrams.\n\nThis caused a panic in the 1394 async transmit completion tasklet when\nit dereferenced unitialized list heads:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d15077\n\nThe fix is to add checks in the tx soft IRQ and in the tasklet to\ndetermine which of these two is the last referrer to the transaction\nobject.  Then handle the cleanup of the object by the last referrer\nrather than assuming that the tasklet is always the last one.\n\nThere is another similar race:  Between said tasklet and fwnet_close,\ni.e. at ifdown.  However, that race is much less likely to occur in\npractice and shall be fixed in a separate update.\n\nReported-by: Илья Басин \u003cbasinilya@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "451f14439847db302e5104c44458b2dbb4b1829d",
      "tree": "697046c4438806c37c5b0835dc71b7fdd35b8a92",
      "parents": [
        "6ce9e7b5fe3195d1ae6e3a0753d4ddcac5cd699e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Aug 31 06:34:50 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 02 23:07:36 2009 -0700"
      },
      "message": "drivers: Kill now superfluous -\u003elast_rx stores\n\nThe generic packet receive code takes care of setting\nnetdev-\u003elast_rx when necessary, for the sake of the\nbonding ARP monitor.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Neil Horman \u003cnhorman@txudriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0fc0b732eaa38beb93a6fb62f77c7bd9622c76ec",
      "tree": "2423b134116c16f027ebeae7954c098f27d6e619",
      "parents": [
        "daf09de817353f18bb81a23a023d429cfd258e62"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Sep 02 01:03:33 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 02 01:03:33 2009 -0700"
      },
      "message": "netdev: drivers should make ethtool_ops const\n\nNo need to put ethtool_ops in data, they should be const.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "424efe9caf6047ffbcd6b383ff4d2347254aabf1",
      "tree": "d0ed516baa5b452ed8bc3a88fbd061f6e415bfb9",
      "parents": [
        "6518bbb803fe02b15a3211c8db2afdff0ac4f808"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Aug 31 19:50:51 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 01 01:13:40 2009 -0700"
      },
      "message": "netdev: convert pseudo drivers to netdev_tx_t\n\nThese are all drivers that don\u0027t touch real hardware.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "00635b8ee2b5650fd01f5602ecfa289db336b570",
      "tree": "cac06b270ad4ad7f4171c3b47206ebb9bb035428",
      "parents": [
        "b01b4babbf204443b5a846a7494546501614cefc"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 16 22:35:32 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 16 22:48:09 2009 +0200"
      },
      "message": "firewire: net: better FIFO address range check and rcodes\n\nThe AR req handler should not check the generation; higher level code\nis the better place to handle bus generation changes.  The target node\nID just needs to be checked for not being the \"all nodes\" address; in\nthis case don\u0027t handle the request and don\u0027t respond.\n\nUse Address_Error and Type_Error rcodes as appropriate.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b01b4babbf204443b5a846a7494546501614cefc",
      "tree": "7488129b4e41cde0b614d8f999064fc33fd211ca",
      "parents": [
        "d645f4dad056a98089df904294f66b96d04e91b6"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 16 20:43:55 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 16 22:48:09 2009 +0200"
      },
      "message": "firewire: net: fix card driver reloading\n\nFix some problems from \"firewire: net: allow for unordered unit\ndiscovery\":\n  - fwnet_remove was missing a list_del, causing fwnet_probe to crash if\n    called after fwnet_remove, e.g. if firewire-ohci was unloaded and\n    reloaded.\n  - fwnet_probe should set its new_netdev flag only if it actually\n    allocated a net_device.\n  - Use dev_set_drvdata and dev_get_drvdata instead of deprecated direct\n    access to device.driver_data.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1337f8535ac1f41915d9e8aa03d5a3edf2f7c0a5",
      "tree": "87e11b5184d1a5df659d90fb4cd48183043b247f",
      "parents": [
        "156ce867a6725ea8a24b452469a6dc9f3fa6a161"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 11:47:44 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 14:26:29 2009 +0200"
      },
      "message": "firewire: net: adjust net_device ops\n\nThe .ndo_tx_timeout callback is currently without function; delete it.\nGive .watchdog_timeo a proper time value; lower it to 2 seconds.\n\nDecrease the .tx_queue_len from 1000 (as in Ethernet card drivers) to 10\nbecause we have only 64 transaction labels available, and responders\nmight have further limits of their AR req contexts.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "156ce867a6725ea8a24b452469a6dc9f3fa6a161",
      "tree": "826d820ed5e2d2155747999ef9f0c87adcc258bc",
      "parents": [
        "5a124d382ea5c97be43c779e4f481455e0287654"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 11:46:57 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 14:26:29 2009 +0200"
      },
      "message": "firewire: net: remove unused code\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5a124d382ea5c97be43c779e4f481455e0287654",
      "tree": "d77069fe1456932f4ce2872dc6b1f963cb8662c5",
      "parents": [
        "f91e3bd842ec6f5cea245993926ee8ff26250467"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 11:45:27 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 14:26:29 2009 +0200"
      },
      "message": "firewire: net: allow for unordered unit discovery\n\nDecouple the creation and destruction of the net_device from the order\nof discovery and removal of nodes with RFC 2734 unit directories since\nthere is no reliable order.  The net_device is now created when the\nfirst RFC 2734 unit on a card is discovered, and destroyed when the last\nRFC 2734 unit on a card went away.  This includes all remote units as\nwell as the local unit, which is therefore tracked as a peer now too.\n\nAlso, locking around the list of peers is slightly extended to guard\nagainst peer removal.  As a side effect, fwnet_peer.pdg_lock has become\nsuperfluous and is deleted.\n\nPeer data (max_rec, speed, node ID, generation) are updated more\ncarefully.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "f91e3bd842ec6f5cea245993926ee8ff26250467",
      "tree": "c7b66078c862a85fdc7d21bc2eb61f9c32a530ca",
      "parents": [
        "b9530fd6c3f057bda258c8e2631ad1a25959f4a2"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 07 22:57:53 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 14:26:29 2009 +0200"
      },
      "message": "firewire: net: style changes\n\nChange names of types, variables, functions.\nOmit debug code.\nUse get_unaligned*, put_unaligned*.\nAnnotate big endian data.\nHandle errors in __init.\nChange whitespace.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b9530fd6c3f057bda258c8e2631ad1a25959f4a2",
      "tree": "509bc37394a27822b0a98b940f38d4c0401a4a6a",
      "parents": [
        "c76acec6d55107b652a37c90b36c00bc8b04dabb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 07 22:57:53 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 14:26:29 2009 +0200"
      },
      "message": "firewire: net: add Kconfig item, rename driver\n\nThe driver is now called firewire-net.  It might implement the transport\nof other networking protocols in the future, notably IPv6 per RFC 3146.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c76acec6d55107b652a37c90b36c00bc8b04dabb",
      "tree": "f51f4cea0bd006352bc636586717d009e24ef3c3",
      "parents": [
        "1e626fdcef61460dc75fe7377f38bb019722b848"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Mon May 18 13:08:06 2009 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 14:26:28 2009 +0200"
      },
      "message": "firewire: add IPv4 support\n\nImplement IPv4 over IEEE 1394 as per RFC 2734 for the newer firewire\nstack.  This feature has only been present in the older ieee1394 stack\nvia the eth1394 driver.\n\nStill to do:\n  - fix ipv4_priv and ipv4_node lifetime logic\n  - fix determination of speeds and max payloads\n  - fix bus reset handling\n  - fix unaligned memory accesses\n  - fix coding style\n  - further testing/ improvement of fragment reassembly\n  - perhaps multicast support\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (rebased, copyright note, changelog)\n"
    }
  ]
}
