)]}'
{
  "log": [
    {
      "commit": "95ae6b228f814fc0528d0506ee9f18ac333d6851",
      "tree": "d5287f3dee478e1bd5fa79e63192447c5bc91e92",
      "parents": [
        "9e0064a5456fd75fd7c70f6f3692c7f732f91a65"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 15 04:04:31 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 15 22:06:05 2010 -0700"
      },
      "message": "ipv4: ip_ptr cleanups\n\ndev-\u003eip_ptr is protected by rtnl and rcu.\n\nYet some places dont use appropriate primitives and/or locking rules.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "884c06f4777c598ea7bf4fbc7557ff2fca066f63",
      "tree": "1b36f8f0f00e02f3f1110df3d8f5bfbe5e189eee",
      "parents": [
        "ad01b7d480a4a135f974afd5c617c417e0b0542f"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Tue Aug 24 02:01:05 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 25 16:36:48 2010 -0700"
      },
      "message": "plip: remove superflous return\n\nThis return isn\u0027t reachable and it obscures the goto on the line before.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a4b770972b8f819e408d7cc3ae9637e15bff62f6",
      "tree": "62e3c413b084c106d750cf6cc0701709cde30100",
      "parents": [
        "21ce849ba5cc178740c6532ba3dded852296ad91"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri May 14 00:19:28 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 14 00:19:28 2010 -0700"
      },
      "message": "drivers/net: Remove unnecessary returns from void function()s\n\nThis patch removes from drivers/net/ all the unnecessary\nreturn; statements that precede the last closing brace of\nvoid functions.\n\nIt does not remove the returns that are immediately\npreceded by a label as gcc doesn\u0027t like that.\n\nIt also does not remove null void functions with return.\n\nDone via:\n$ grep -rP --include\u003d*.[ch] -l \"return;\\n}\" net/ | \\\n  xargs perl -i -e \u0027local $/ ; while (\u003c\u003e) { s/\\n[ \\t\\n]+return;\\n}/\\n}/g; print; }\u0027\n\nwith some cleanups by hand.\n\nCompile tested x86 allmodconfig only.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ae5dc342ac78d7a42965fd1f323815f6f5ef2c1",
      "tree": "d1955a7639e99832590df26466a34d5786a880ae",
      "parents": [
        "2b0b05ddc04b6d45e71cd36405df512075786f1e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon May 10 05:01:31 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 10 05:01:31 2010 -0700"
      },
      "message": "net: trans_start cleanups\n\nNow that core network takes care of trans_start updates, dont do it\nin drivers themselves, if possible. Drivers can avoid one cache miss\n(on dev-\u003etrans_start) in their start_xmit() handler.\n\nExceptions are NETIF_F_LLTX drivers\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "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": "8e95a2026f3b43f7c3d676adaccd2de9532e8dcc",
      "tree": "3733318168cd512480b6db58c5c16d1c8847f0b7",
      "parents": [
        "3454f835837609d60b29a266e3bd9d701073b060"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Dec 03 07:58:21 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 13:18:01 2009 -0800"
      },
      "message": "drivers/net: Move \u0026\u0026 and || to end of previous line\n\nOnly files where David Miller is the primary git-signer.\nwireless, wimax, ixgbe, etc are not modified.\n\nCompile tested x86 allyesconfig only\nNot all files compiled (not x86 compatible)\n\nAdded a few \u003e 80 column lines, which I ignored.\nExisting checkpatch complaints ignored.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "da8120355e80ddaf534adb8ed910871d97512d56",
      "tree": "9958a6c33e29b5af5faccf6650e98729151618a2",
      "parents": [
        "c86ae82605ef92594a0de809a8c588ae955fed63",
        "7fefe6a88494b00b151b5ca7bb84daaa781bbca7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 16 20:21:24 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 16 20:21:24 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/wireless/orinoco/main.c\n"
    },
    {
      "commit": "635ecaa70e862f85f652581305fe0074810893be",
      "tree": "ea69b5944526e1dd8f11edd7892134f06a177299",
      "parents": [
        "240c102d9c54fee7fdc87a4ef2fabc7eb539e00a"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Thu Jul 09 17:59:01 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 12 14:20:04 2009 -0700"
      },
      "message": "netdev: restore MTU change operation\n\nalloc_etherdev() used to install a default implementation of this\noperation, but it must now be explicitly installed in struct\nnet_device_ops.\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "240c102d9c54fee7fdc87a4ef2fabc7eb539e00a",
      "tree": "f176b03249adbb1e3e495a8657cbc864ac76a71c",
      "parents": [
        "f2ba025b2036e52a176cddcf91b15ac2b10c644a"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Thu Jul 09 17:54:35 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 12 14:20:02 2009 -0700"
      },
      "message": "netdev: restore MAC address set and validate operations\n\nalloc_etherdev() used to install default implementations of these\noperations, but they must now be explicitly installed in struct\nnet_device_ops.\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ed106549d17474ca17a16057f4c0ed4eba5a7ca",
      "tree": "b98c09081509b3a9757339b6b66779e4126dfa29",
      "parents": [
        "0e8635a8e1f2d4a9e1bfc6c3b21419a5921e674f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jun 23 06:03:08 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 05 19:16:04 2009 -0700"
      },
      "message": "net: use NETDEV_TX_OK instead of 0 in ndo_start_xmit() functions\n\nThis patch is the result of an automatic spatch transformation to convert\nall ndo_start_xmit() return values of 0 to NETDEV_TX_OK.\n\nSome occurences are missed by the automatic conversion, those will be\nhandled in a seperate patch.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5b548140225c6bbbbd560551dd1048b2c0ce58be",
      "tree": "9306a37dbca0095ca6d88e0b0ab297bcb2dc5ae8",
      "parents": [
        "5b2c4b972c0226406361f83b747eb5cdab51e68e"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Jun 12 06:22:29 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 13 01:18:50 2009 -0700"
      },
      "message": "net: use symbolic values for ndo_start_xmit() return codes\n\nConvert magic values 1 and -1 to NETDEV_TX_BUSY and NETDEV_TX_LOCKED respectively.\n\n0 (NETDEV_TX_OK) is not changed to keep the noise down, except in very few cases\nwhere its in direct proximity to one of the other values.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed8cf436caccb7f464135b0a9eba0e7624299826",
      "tree": "1be27752908fc5f7411be6e05b3294abd49155cf",
      "parents": [
        "04fb5f735e70a27f7dd06a5e349c003fd5d4bfa2"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Jan 07 17:26:48 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 07 17:26:48 2009 -0800"
      },
      "message": "plip: update to net_device_ops\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dac499f912abd5838fa3501efdcd0f23d5f4fc29",
      "tree": "e637b9941f223ebf8b4279520b5cc35081d8ca21",
      "parents": [
        "a08b32df1417146b1a4c43e641ec1177da51896c"
      ],
      "author": {
        "name": "Hannes Eder",
        "email": "hannes@hanneseder.net",
        "time": "Thu Dec 25 23:56:45 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 25 23:56:45 2008 -0800"
      },
      "message": "drivers/net: fix sparse warnings: make symbols static\n\nFix this sparse warnings:\n\n  drivers/net/3c523.c:350:6: warning: symbol \u0027alloc586\u0027 was not declared. Should it be static?\n  drivers/net/cs89x0.c:1029:14: warning: symbol \u0027reset_chip\u0027 was not declared. Should it be static?\n  drivers/net/eepro.c:1399:1: warning: symbol \u0027read_eeprom\u0027 was not declared. Should it be static?\n  drivers/net/plip.c:1020:5: warning: symbol \u0027plip_hard_header_cache\u0027 was not declared. Should it be static?\n  drivers/net/s2io.c:5116:6: warning: symbol \u0027do_s2io_store_unicast_mc\u0027 was not declared. Should it be static?\n  drivers/net/smc9194.c:767:12: warning: symbol \u0027smc_findirq\u0027 was not declared. Should it be static?\n\nSigned-off-by: Hannes Eder \u003channes@hanneseder.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e4c3c13cb4c4985cb62cf28677fc0ace69a8d69f",
      "tree": "3e944ccdee5669f517803ed3ab7475c75a35e69a",
      "parents": [
        "2705d4f87c068552f45e5d6feaa5c468a312f761"
      ],
      "author": {
        "name": "Hannes Eder",
        "email": "hannes@hanneseder.net",
        "time": "Thu Dec 25 23:55:35 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 25 23:55:35 2008 -0800"
      },
      "message": "drivers/net: fix sparse warnings: make do-while a compound statement\n\nWhile at it insert some extra curly braces and fix formatting.\n\nFix this sparse warnings:\n\n  drivers/net/atp.c:811:8: warning: do-while statement is not a compound statement\n  drivers/net/atp.c:813:8: warning: do-while statement is not a compound statement\n  drivers/net/atp.c:815:11: warning: do-while statement is not a compound statement\n  drivers/net/atp.c:817:11: warning: do-while statement is not a compound statement\n  drivers/net/plip.c:642:4: warning: do-while statement is not a compound statement\n  drivers/net/plip.c:647:4: warning: do-while statement is not a compound statement\n  drivers/net/plip.c:820:4: warning: do-while statement is not a compound statement\n  drivers/net/plip.c:825:4: warning: do-while statement is not a compound statement\n  drivers/net/starfire.c:886:3: warning: do-while statement is not a compound statement\n\nSigned-off-by: Hannes Eder \u003channes@hanneseder.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9de6d99a7559d20f7ababd1cacdc61ee5315f3c1",
      "tree": "b9fc437aef58fbe2a0bdee4e6235940b38f0b5d0",
      "parents": [
        "8865c418caf4e9dd2c24bdfae3a5a4106e143e60"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Dec 03 22:19:52 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 03 22:19:52 2008 -0800"
      },
      "message": "netdev: remove pathetic compile-command lines\n\n-m486, -O6 are partircularly amusing.\n\nRemove some other useless lines near as well.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4cf1653aa90c6320dc8032443b5e322820aa28b1",
      "tree": "7920008d3f953defdcda8c81d39da963290d93ad",
      "parents": [
        "454d7c9b14e20fd1949e2686e9de4a2926e01476"
      ],
      "author": {
        "name": "Wang Chen",
        "email": "wangchen@cn.fujitsu.com",
        "time": "Wed Nov 12 23:38:14 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 12 23:38:14 2008 -0800"
      },
      "message": "netdevice: safe convert to netdev_priv() #part-2\n\nWe have some reasons to kill netdev-\u003epriv:\n1. netdev-\u003epriv is equal to netdev_priv().\n2. netdev_priv() wraps the calculation of netdev-\u003epriv\u0027s offset, obviously\n   netdev_priv() is more flexible than netdev-\u003epriv.\nBut we cann\u0027t kill netdev-\u003epriv, because so many drivers reference to it\ndirectly.\n\nThis patch is a safe convert for netdev-\u003epriv to netdev_priv(netdev).\nSince all of the netdev-\u003epriv is only for read.\nBut it is too big to be sent in one mail.\nI split it to 4 parts and make every part smaller than 100,000 bytes,\nwhich is max size allowed by vger.\n\nSigned-off-by: Wang Chen \u003cwangchen@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "babcda74e9d96bb58fd9c6c5112dbdbff169e695",
      "tree": "fcbe5e70f1fff01ad49504171e964c387a5ad7f8",
      "parents": [
        "ab2910921064b657610a3b501358a305e13087ea"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 03 21:11:17 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 03 21:11:17 2008 -0800"
      },
      "message": "drivers/net: 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\nDrivers need not do it any more.\n\nSome cases had to be skipped over because the drivers\nwere making use of the -\u003elast_rx value themselves.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cabce28ec0a0ae3d0ddfa4461f0e8be94ade9e46",
      "tree": "d40f357c77bf99a33b9b81123b2c3149adf3717d",
      "parents": [
        "a9edadbf790d72adf6ebed476cb5caf7743e7e4a"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mikulas@artax.karlin.mff.cuni.cz",
        "time": "Tue Apr 01 01:22:45 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 01 11:16:04 2008 -0700"
      },
      "message": "plip: replace spin_lock_irq with spin_lock_irqsave in irq context\n\nPlip uses spin_lock_irq/spin_unlock_irq in its IRQ handler (called from\nparport IRQ handler), the latter enables interrupts without parport\nsubsystem IRQ handler expecting it.\n\nThe bug can be seen if you compile kernel with lock dependency checking\nand use plip --- it produces a warning.\n\nThis patch changes it to spin_lock_irqsave/spin_lock_irqrestore, so that\nit doesn\u0027t enable interrupts when already disabled.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01f31ac8289200e1cab4d100ce991cebe5731360",
      "tree": "7fb3245d3e4797cf1f622836166c266328fa7197",
      "parents": [
        "07b270eab52433e3f61c298eb5ff9d9a668c2458"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias.kaehlcke@gmail.com",
        "time": "Thu Dec 13 16:03:00 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:07:20 2008 -0800"
      },
      "message": "PLIP driver: convert the semaphore killed_timer_sem to completion\n\nSigned-off-by: Matthias Kaehlcke \u003cmatthias.kaehlcke@gmail.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "cdb32706f6948238ed6d1d85473c64c27366e9e9",
      "tree": "bc8b267a0b861bbafae9c384cf80a03e14db8bbd",
      "parents": [
        "f6ce5cca74b8681fdf1d7307edc66a7213b43f6f"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mikulas@artax.karlin.mff.cuni.cz",
        "time": "Thu Nov 22 21:26:01 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Nov 26 19:39:01 2007 -0800"
      },
      "message": "plip: fix parport_register_device name parameter\n\nPlip passes a string \"name\" that is allocated on stack to\nparport_register_device.  parport_register_device holds the pointer to\n\"name\" and when the registering function exits, it points nowhere.\n\nOn some machine, this bug causes bad names to appear in /proc, such as\n/proc/sys/dev/parport/parport0/devices/T^/�X^/�, on others, the plip\nproc node is completely missing.\n\nThe patch also fixes documentation to note this requirement.\n\nSigned-off-by: Mikulas Patocka \u003cmikulas@artax.karlin.mff.cuni.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6ce5cca74b8681fdf1d7307edc66a7213b43f6f",
      "tree": "0ac74f5244ab0ea0ad07823dc1af848c4571accc",
      "parents": [
        "64d0793109a98abcc2f4bf0c7d8b000fd220cdcd"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mikulas@artax.karlin.mff.cuni.cz",
        "time": "Thu Nov 22 21:19:39 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Nov 26 19:37:31 2007 -0800"
      },
      "message": "plip: use netif_rx_ni() for packet receive\n\nnetif_rx is meant to be called from interrupts because it doesn\u0027t wake\nup ksoftirqd.  For calling from outside interrupts, netif_rx_ni exists.\n\nThis fixes plip to use netif_rx_ni.  It fixes the infamous error \"NOHZ:\nlocal_softirq_panding 08\" that happens on some machines with NOHZ and\nplip --- it is caused by the fact that softirq is pending and ksoftirqd\nis sleeping.\n\nSigned-off-by: Mikulas Patocka \u003cmikulas@artax.karlin.mff.cuni.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5712cb3d81566893c3b14e24075cf48ec5c35d00",
      "tree": "8258fb24a0c5130e8c0cad16d2d9395941be3ed7",
      "parents": [
        "f230d1010ad0dcd71d9ca8ea6864afac49c5aa9b"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 19 02:54:26 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 23 19:53:16 2007 -0400"
      },
      "message": "[PARPORT] Remove unused \u0027irq\u0027 argument from parport irq functions\n\nNone of the drivers with a struct pardevice\u0027s -\u003eirq_func() hook ever\nused the \u0027irq\u0027 argument passed to it, so remove it.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "3b04ddde02cf1b6f14f2697da5c20eca5715017f",
      "tree": "9da1341a5a399a507b5ea6bf5a3047506b8d8f8f",
      "parents": [
        "b95cce3576813ac3f86bafa6b5daaaaf7574b0fe"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Tue Oct 09 01:40:57 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:52 2007 -0700"
      },
      "message": "[NET]: Move hardware header operations out of netdevice.\n\nSince hardware header operations are part of the protocol class\nnot the device instance, make them into a separate object and\nsave memory.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "09f75cd7bf13720738e6a196cc0107ce9a5bd5a0",
      "tree": "4c85b0b395abe7f88c87162fc22570e5de255cb1",
      "parents": [
        "ff8ac60948ba819b89e9c87083e8050fc2f89999"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Oct 03 17:41:50 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:51:16 2007 -0700"
      },
      "message": "[NET] drivers/net: statistics cleanup #1 -- save memory and shrink code\n\nWe now have struct net_device_stats embedded in struct net_device,\nand the default -\u003eget_stats() hook does the obvious thing for us.\n\nRun through drivers/net/* and remove the driver-local storage of\nstatistics, and driver-local -\u003eget_stats() hook where applicable.\n\nThis was just the low-hanging fruit in drivers/net; plenty more drivers\nremain to be updated.\n\n[ Resolved conflicts with napi_struct changes and fix sunqe build\n  regression... -DaveM ]\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "10d024c1b2fd58af8362670d7d6e5ae52fc33353",
      "tree": "dbfb03c539986e2c1270385eb0083aaf0dfca8ab",
      "parents": [
        "596c5c97431eab8465739c169401ea611127b9ad"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Sep 17 13:11:17 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:51:13 2007 -0700"
      },
      "message": "[NET]: Nuke SET_MODULE_OWNER macro.\n\nIt\u0027s been a useless no-op for long enough in 2.6 so I figured it\u0027s time to\nremove it.  The number of people that could object because they\u0027re\nmaintaining unified 2.4 and 2.6 drivers is probably rather small.\n\n[ Handled drivers added by netdev tree and some missed IRDA cases... -DaveM ]\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "98e399f82ab3a6d863d1d4a7ea48925cc91c830e",
      "tree": "5f84043aeec1ec27c2e8e6cc25b5d2e6c3d07343",
      "parents": [
        "31713c333ddbb66d694829082620b69b71c4b09a"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 19 15:33:04 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:41 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_mac_header()\n\nFor the places where we need a pointer to the mac header, it is still legal to\ntouch skb-\u003emac.raw directly if just adding to, subtracting from or setting it\nto another layer header.\n\nThis one also converts some more cases to skb_reset_mac_header() that my\nregex missed as it had no spaces before nor after \u0027\u003d\u0027, ugh.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c4028958b6ecad064b1a6303a6a5906d4fe48d73",
      "tree": "1c4c89652c62a75da09f9b9442012007e4ac6250",
      "parents": [
        "65f27f38446e1976cc98fd3004b110fedcddd189"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "message": "WorkStruct: make allyesconfig\n\nFix up for make allyesconfig.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "c31f28e778ab299a5035ea2bda64f245b8915d7c",
      "tree": "92d1070b0ae0c3528ab2c8787c4402fd8adf5a5f",
      "parents": [
        "86d91bab4806191a8126502d80d729c2a4765ebe"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 06 14:56:04 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 06 14:56:04 2006 -0400"
      },
      "message": "drivers/net: eliminate irq handler impossible checks, needless casts\n\n- Eliminate check for irq handler \u0027dev_id\u003d\u003dNULL\u0027 where the\n  condition never occurs.\n\n- Eliminate needless casts to/from void*\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7d12e780e003f93433d49ce78cfedf4b4c52adc5",
      "tree": "6748550400445c11a306b132009f3001e3525df8",
      "parents": [
        "da482792a6d1a3fbaaa25fae867b343fb4db3246"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Oct 05 14:55:46 2006 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Thu Oct 05 15:10:12 2006 +0100"
      },
      "message": "IRQ: Maintain regs pointer globally rather than passing to IRQ handlers\n\nMaintain a per-CPU global \"struct pt_regs *\" variable which can be used instead\nof passing regs around manually through all ~1800 interrupt handlers in the\nLinux kernel.\n\nThe regs pointer is used in few places, but it potentially costs both stack\nspace and code to pass it around.  On the FRV arch, removing the regs parameter\nfrom all the genirq function results in a 20% speed up of the IRQ exit path\n(ie: from leaving timer_interrupt() to leaving do_IRQ()).\n\nWhere appropriate, an arch may override the generic storage facility and do\nsomething different with the variable.  On FRV, for instance, the address is\nmaintained in GR28 at all times inside the kernel as part of general exception\nhandling.\n\nHaving looked over the code, it appears that the parameter may be handed down\nthrough up to twenty or so layers of functions.  Consider a USB character\ndevice attached to a USB hub, attached to a USB controller that posts its\ninterrupts through a cascaded auxiliary interrupt controller.  A character\ndevice driver may want to pass regs to the sysrq handler through the input\nlayer which adds another few layers of parameter passing.\n\nI\u0027ve build this code with allyesconfig for x86_64 and i386.  I\u0027ve runtested the\nmain part of the code on FRV and i386, though I can\u0027t test most of the drivers.\nI\u0027ve also done partial conversion for powerpc and MIPS - these at least compile\nwith minimal configurations.\n\nThis will affect all archs.  Mostly the changes should be relatively easy.\nTake do_IRQ(), store the regs pointer at the beginning, saving the old one:\n\n\tstruct pt_regs *old_regs \u003d set_irq_regs(regs);\n\nAnd put the old one back at the end:\n\n\tset_irq_regs(old_regs);\n\nDon\u0027t pass regs through to generic_handle_irq() or __do_IRQ().\n\nIn timer_interrupt(), this sort of change will be necessary:\n\n\t-\tupdate_process_times(user_mode(regs));\n\t-\tprofile_tick(CPU_PROFILING, regs);\n\t+\tupdate_process_times(user_mode(get_irq_regs()));\n\t+\tprofile_tick(CPU_PROFILING);\n\nI\u0027d like to move update_process_times()\u0027s use of get_irq_regs() into itself,\nexcept that i386, alone of the archs, uses something other than user_mode().\n\nSome notes on the interrupt handling in the drivers:\n\n (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in\n     the input_dev struct.\n\n (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does\n     something different depending on whether it\u0027s been supplied with a regs\n     pointer or not.\n\n (*) Various IRQ handler function pointers have been moved to type\n     irq_handler_t.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n(cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)\n"
    },
    {
      "commit": "6aa20a2235535605db6d6d2bd850298b2fe7f31e",
      "tree": "df0b855043407b831d57f2f2c271f8aab48444f4",
      "parents": [
        "7a291083225af6e22ffaa46b3d91cfc1a1ccaab4"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 13 13:24:59 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 13 13:24:59 2006 -0400"
      },
      "message": "drivers/net: Trim trailing whitespace\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f71e130966ba429dbd24be08ddbcdf263df9a5ad",
      "tree": "523f10c926012f520c47894811b94944a7793fd5",
      "parents": [
        "c499ec24c31edf270e777a868ffd0daddcfe7ebd"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Fri Mar 03 21:33:57 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Mar 03 21:33:57 2006 -0500"
      },
      "message": "Massive net driver const-ification.\n"
    },
    {
      "commit": "6a85081d1c3ab7935c3ade8f4b2700a860d6fb2e",
      "tree": "73cae3b34825a7ca26bf86cd0baf031ed652ccb4",
      "parents": [
        "6a19b41b35bf45fc27a46dccf26005b3f44c1aa1"
      ],
      "author": {
        "name": "Marko Kohtala",
        "email": "marko.kohtala@gmail.com",
        "time": "Fri Jan 06 00:19:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:58 2006 -0800"
      },
      "message": "[PATCH] parport: include fixes\n\nSmall cleanup of includes meant for older implementation.\n\nSigned-off-by: Marko Kohtala \u003cmarko.kohtala@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "77933d7276ee8fa0e2947641941a6f7a100a327b",
      "tree": "e3a42724642410f5257c794a71b34642092eedd5",
      "parents": [
        "03e259a9cdbd0583e71468293aaa1ccadbdaeff1"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl@dif.dk",
        "time": "Wed Jul 27 11:46:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 27 16:26:20 2005 -0700"
      },
      "message": "[PATCH] clean up inline static vs static inline\n\n`gcc -W\u0027 likes to complain if the static keyword is not at the beginning of\nthe declaration.  This patch fixes all remaining occurrences of \"inline\nstatic\" up with \"static inline\" in the entire kernel tree (140 occurrences in\n47 files).\n\nWhile making this change I came across a few lines with trailing whitespace\nthat I also fixed up, I have also added or removed a blank line or two here\nand there, but there are no functional changes in the patch.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab611487d8ada506e511d2b8f22fb8e7be9939b9",
      "tree": "caa87031e209e8845f84209b69c6c8225def945f",
      "parents": [
        "84531c24f27b02daa8e54e2bb6dc74a730fdf0a5"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Jul 12 12:08:43 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 12 12:08:43 2005 -0700"
      },
      "message": "[NET]: __be\u0027ify *_type_trans()\n\ntr_type_trans(), hippi_type_trans() left as-is.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\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"
    }
  ]
}
