)]}'
{
  "log": [
    {
      "commit": "b77eb35e64745ebe82bdcf03123d5c66961253a1",
      "tree": "da740d3319be00806765e567a457b4a64c2036d1",
      "parents": [
        "d95b39c3909237a945447453c9b1026bd6bbed62"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Sun Oct 14 14:13:58 2007 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 15 14:29:48 2007 -0400"
      },
      "message": "SAA9730: Fix build\n\nFix build breakage by the recent statistics cleanup in cset\n09f75cd7bf13720738e6a196cc0107ce9a5bd5a0.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\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": "82a0244df8165b0345cde5258afe176c12dd1e99",
      "tree": "9398519160e3d783e483ada9623483bedadac0c6",
      "parents": [
        "b947dd4b62a6adfd78292319a9d2e6396c1fb064"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki / 吉藤英明",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Tue Jul 17 13:46:00 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jul 18 18:29:38 2007 -0400"
      },
      "message": "SAA9730: Handle multicast frames.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n\n--\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "8c7b7faaa630fef7f68d8728cee1cce398cc9697",
      "tree": "844c5c5aad361b7c1e24f8d0b8f3195c4a4ad816",
      "parents": [
        "a7ab4b501f9b8a9dc4d5cee542db67b6ccd1088b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 10 22:08:12 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 10 22:08:12 2007 -0700"
      },
      "message": "[NET]: Kill eth_copy_and_sum().\n\nIt hasn\u0027t \"summed\" anything in over 7 years, and it\u0027s\njust a straight mempcy ala skb_copy_to_linear_data()\nso just get rid of it.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4c13eb6657fe9ef7b4dc8f1a405c902e9e5234e0",
      "tree": "d338fad7a61824d8c14c079c0be437ea4ad83f01",
      "parents": [
        "029720f15dcd3c6c16824177cfc486083b229411"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 17:40:23 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:30 2007 -0700"
      },
      "message": "[ETH]: Make eth_type_trans set skb-\u003edev like the other *_type_trans\n\nOne less thing for drivers writers to worry about.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "69a43ac0cf40577157111bbe25500e2b98e801ea",
      "tree": "dcdd02c325441b3f18506f54210147bfed750f03",
      "parents": [
        "6f6881b846e3d97ee15f6ab1f6529cd1cc2f4c28"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue Mar 20 12:40:09 2007 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Mar 23 01:48:34 2007 -0400"
      },
      "message": "SAA9730: Fix large pile of warnings\n\nThe SAA9730 driver doesn\u0027t quite grok what the difference between an ioport\nand memory mapped I/O is.  It just happened to work on the one Linux\nsystem the SAA9730 happens to spend it\u0027s misserable existence on.\n\ndrivers/net/saa9730.c: In function \u0027evm_saa9730_enable_lan_int\u0027:\ndrivers/net/saa9730.c:68: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:70: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:72: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027evm_saa9730_disable_lan_int\u0027:\ndrivers/net/saa9730.c:78: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:80: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027evm_saa9730_clear_lan_int\u0027:\ndrivers/net/saa9730.c:85: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027evm_saa9730_block_lan_int\u0027:\ndrivers/net/saa9730.c:91: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027evm_saa9730_unblock_lan_int\u0027:\ndrivers/net/saa9730.c:97: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027show_saa9730_regs\u0027:\ndrivers/net/saa9730.c:150: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027lan_saa9730_allocate_buffers\u0027:\ndrivers/net/saa9730.c:292: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:295: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:302: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:305: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:312: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027lan_saa9730_cam_load\u0027:\ndrivers/net/saa9730.c:329: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:332: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027lan_saa9730_mii_init\u0027:\ndrivers/net/saa9730.c:369: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:395: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:403: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:410: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:432: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027lan_saa9730_control_init\u0027:\ndrivers/net/saa9730.c:470: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:474: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:478: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:484: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:487: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:490: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:493: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027lan_saa9730_stop\u0027:\ndrivers/net/saa9730.c:505: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:508: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:510: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027lan_saa9730_dma_init\u0027:\ndrivers/net/saa9730.c:536: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027lan_saa9730_start\u0027:\ndrivers/net/saa9730.c:556: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:560: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:564: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:567: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027lan_saa9730_tx\u0027:\ndrivers/net/saa9730.c:590: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027lan_saa9730_rx\u0027:\ndrivers/net/saa9730.c:664: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:729: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027lan_saa9730_write\u0027:\ndrivers/net/saa9730.c:848: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c: In function \u0027lan_saa9730_set_multicast\u0027:\ndrivers/net/saa9730.c:943: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\ndrivers/net/saa9730.c:949: warning: passing argument 2 of \u0027outl\u0027 makes integer from pointer without a cast\n\nFixed by using writel instead of outl.  42 warnings less.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\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": "299176206b266f204be859adf9e66efd06628ab2",
      "tree": "e25d9ee1c43940e00e70124a18d869a75de543ab",
      "parents": [
        "5243a37b7991c85e3ea3afb6e3e13eea7ec2927d"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Aug 19 17:48:59 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Aug 19 17:48:59 2006 -0400"
      },
      "message": "drivers/net: Remove deprecated use of pci_module_init()\n\nFrom: Michal Piotrowski \u003cmichal.k.k.piotrowski@gmail.com\u003e\n\nSigned-off-by: Michal Piotrowski \u003cmichal.k.k.piotrowski@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "05d9c84dfbbb654f60d98d465b58d4c68222ef1c",
      "tree": "721025a8eab0b818f4e5eba19001cba521560220",
      "parents": [
        "62ff0d0a0769f08806d3f50449a78f17420971e8"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Wed Nov 09 17:10:05 2005 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Fri Nov 11 08:31:35 2005 -0500"
      },
      "message": "[PATCH] SAA9730: Driver overhaul\n\n o Try to work around some of the undocumented \"features\" of the SAA9730\n o Use netdev_priv() instead of the previous broken mechanism to allocate\n   the private data structure.\n o Try to make sure we don\u0027t leak resources on exit.\n o No more need to call SET_MODULE_OWNER in 2.6.\n o Use pci_free_consistent instead of homegrown architecture-specific\n   allocation.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n\n drivers/net/saa9730.c |  531 +++++++++++++++++++++++---------------------------\n 1 files changed, 249 insertions(+), 282 deletions(-)\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "62ff0d0a0769f08806d3f50449a78f17420971e8",
      "tree": "7a4908b104b68ffaf602d0659f73f1c315aa4b00",
      "parents": [
        "7a33e45a2498460d6daa20a1740d3185798d6026"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Wed Nov 09 16:44:02 2005 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Fri Nov 11 08:31:35 2005 -0500"
      },
      "message": "[PATCH] SAA9730: Whitespace cleanup.\n\nKill trailing whitespace, replace leading whitespace with tabs.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n\n drivers/net/saa9730.c |   98 +++++++++++++++++++++++++-------------------------\n 1 files changed, 49 insertions(+), 49 deletions(-)\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "b4558ea93d66a43f7990d26f145fd4c54a01c9bf",
      "tree": "70aa8ba4864f8ee994b7f5278f5045af6a646d34",
      "parents": [
        "7380a78a973a8109c13cb0e47617c456b6f6e1f5"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Fri Oct 28 16:53:13 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Fri Oct 28 16:53:13 2005 -0400"
      },
      "message": "drivers/net: Remove pointless checks for NULL prior to calling kfree()\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"
    }
  ]
}
