)]}'
{
  "log": [
    {
      "commit": "e7557af56a576762a655f1aaaded253ad14c5958",
      "tree": "7594980090f4c6b8fcfe1be554d94096b9d80db3",
      "parents": [
        "f940964901aa69e28ce729d7614061d014184472"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Sat Mar 28 15:38:31 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 28 23:55:58 2009 -0700"
      },
      "message": "netpoll: store local and remote ip in net-endian\n\nAllows for the removal of byteswapping in some places and\nthe removal of HIPQUAD (replaced by %pI4).\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d1c76af9e2434fac3add561e26c61b06503de986",
      "tree": "cbedc7c96c4b7db3d7a5a8300117804c5e0230d9",
      "parents": [
        "afece1c6587010cc81d1a43045c855774e8234a3"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Mar 16 10:50:02 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 16 10:50:02 2009 -0700"
      },
      "message": "GRO: Move netpoll checks to correct location\n\nAs my netpoll fix for net doesn\u0027t really work for net-next, we\nneed this update to move the checks into the right place.  As it\nstands we may pass freed skbs to netpoll_receive_skb.\n\nThis patch also introduces a netpoll_rx_on function to avoid GRO\ncompletely if we\u0027re invoked through netpoll.  This might seem\nparanoid but as netpoll may have an external receive hook it\u0027s\nbetter to be safe than sorry.  I don\u0027t think we need this for\n2.6.29 though since there\u0027s nothing immediately broken by it.\n\nThis patch also moves the GRO_* return values to netdevice.h since\nVLAN needs them too (I tried to avoid this originally but alas\nthis seems to be the easiest way out).  This fixes a bug in VLAN\nwhere it continued to use the old return value 2 instead of the\ncorrect GRO_DROP.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d565b0a1a9b6ee7dff46e1f68b26b526ac11ae50",
      "tree": "3526815ab2b60c37f474c25ad1d8fb207644efcc",
      "parents": [
        "1a881f27c50b4fbd6858a8696a189263621136b0"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Dec 15 23:38:52 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 15 23:38:52 2008 -0800"
      },
      "message": "net: Add Generic Receive Offload infrastructure\n\nThis patch adds the top-level GRO (Generic Receive Offload) infrastructure.\nThis is pretty similar to LRO except that this is protocol-independent.\nInstead of holding packets in an lro_mgr structure, they\u0027re now held in\nnapi_struct.\n\nFor drivers that intend to use this, they can set the NETIF_F_GRO bit and\ncall napi_gro_receive instead of netif_receive_skb or just call netif_rx.\nThe latter will call napi_receive_skb automatically.  When napi_gro_receive\nis used, the driver must either call napi_complete/napi_rx_complete, or\ncall napi_gro_flush in softirq context if the driver uses the primitives\n__napi_complete/__napi_rx_complete.\n\nProtocols will set the gro_receive and gro_complete function pointers in\norder to participate in this scheme.\n\nIn addition to the packet, gro_receive will get a list of currently held\npackets.  Each packet in the list has a same_flow field which is non-zero\nif it is a potential match for the new packet.  For each packet that may\nmatch, they also have a flush field which is non-zero if the held packet\nmust not be merged with the new packet.\n\nOnce gro_receive has determined that the new skb matches a held packet,\nthe held packet may be processed immediately if the new skb cannot be\nmerged with it.  In this case gro_receive should return the pointer to\nthe existing skb in gro_list.  Otherwise the new skb should be merged into\nthe existing packet and NULL should be returned, unless the new skb makes\nit impossible for any further merges to be made (e.g., FIN packet) where\nthe merged skb should be returned.\n\nWhenever the skb is merged into an existing entry, the gro_receive\nfunction should set NAPI_GRO_CB(skb)-\u003esame_flow.  Note that if an skb\nmerely matches an existing entry but can\u0027t be merged with it, then\nthis shouldn\u0027t be set.\n\nIf gro_receive finds it pointless to hold the new skb for future merging,\nit should set NAPI_GRO_CB(skb)-\u003eflush.\n\nHeld packets will be flushed by napi_gro_flush which is called by\nnapi_complete and napi_rx_complete.\n\nCurrently held packets are stored in a singly liked list just like LRO.\nThe list is limited to a maximum of 8 entries.  In future, this may be\nexpanded to use a hash table to allow more flows to be held for merging.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d9452e9f81e997cbd0c9bface8d2c2a4b064cc3e",
      "tree": "6f0ea6264fa359293cc6093fff763305d4c0e9f4",
      "parents": [
        "ec9b6add7d81f902f6094e71f595da4a362f3348"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 04 12:28:49 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 04 12:28:49 2008 -0800"
      },
      "message": "[NETPOLL]: Revert two bogus cleanups that broke netconsole.\n\nBased upon a report by Andrew Morton and code analysis done\nby Jarek Poplawski.\n\nThis reverts 33f807ba0d9259e7c75c7a2ce8bd2787e5b540c7 (\"[NETPOLL]:\nKill NETPOLL_RX_DROP, set but never tested.\")  and\nc7b6ea24b43afb5749cb704e143df19d70e23dea (\"[NETPOLL]: Don\u0027t need\nrx_flags.\").\n\nThe rx_flags did get tested for zero vs. non-zero and therefore we do\nneed those tests and that code which sets NETPOLL_RX_DROP et al.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c7b6ea24b43afb5749cb704e143df19d70e23dea",
      "tree": "e46281225b1cec008b5a65ece47b8d5f1a8d7abd",
      "parents": [
        "33f807ba0d9259e7c75c7a2ce8bd2787e5b540c7"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Mon Nov 19 19:37:09 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:18 2008 -0800"
      },
      "message": "[NETPOLL]: Don\u0027t need rx_flags.\n\nThe rx_flags variable is redundant. Turning rx on/off is done\nvia setting the rx_np pointer.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0953864160bdd28dfe45fd46fa462b4d2d53cb96",
      "tree": "fcc3be7c24858b4606d6eeafee2292a58d84c6a4",
      "parents": [
        "5106930bd6b57402205e3de54dae9476e215b622"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Mon Nov 19 19:23:29 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:17 2008 -0800"
      },
      "message": "[NETPOLL]: no need to store local_mac\n\nThe local_mac is managed by the network device, no need to keep a\nspare copy and all the management problems that could cause.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0bcc1816188e570bde1d56a208996660f2633ae0",
      "tree": "8104c0b0c54a93a510b4b9b50a45cbaabad245f4",
      "parents": [
        "b5427c27173e128dda1541bd9d3b05df79af5882"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "satyam@infradead.org",
        "time": "Fri Aug 10 15:35:05 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:06 2007 -0700"
      },
      "message": "[NET] netconsole: Support dynamic reconfiguration using configfs\n\nBased upon initial work by Keiichi Kii \u003ck-keiichi@bx.jp.nec.com\u003e.\n\nThis patch introduces support for dynamic reconfiguration (adding, removing\nand/or modifying parameters of netconsole targets at runtime) using a\nuserspace interface exported via configfs.  Documentation is also updated\naccordingly.\n\nIssues and brief design overview:\n\n(1) Kernel-initiated creation / destruction of kernel objects is not\n    possible with configfs -- the lifetimes of the \"config items\" is managed\n    exclusively from userspace.  But netconsole must support boot/module\n    params too, and these are parsed in kernel and hence netpolls must be\n    setup from the kernel.  Joel Becker suggested to separately manage the\n    lifetimes of the two kinds of netconsole_target objects -- those created\n    via configfs mkdir(2) from userspace and those specified from the\n    boot/module option string.  This adds complexity and some redundancy here\n    and also means that boot/module param-created targets are not exposed\n    through the configfs namespace (and hence cannot be updated / destroyed\n    dynamically).  However, this saves us from locking / refcounting\n    complexities that would need to be introduced in configfs to support\n    kernel-initiated item creation / destroy there.\n\n(2) In configfs, item creation takes place in the call chain of the\n    mkdir(2) syscall in the driver subsystem.  If we used an ioctl(2) to\n    create / destroy objects from userspace, the special userspace program is\n    able to fill out the structure to be passed into the ioctl and hence\n    specify attributes such as local interface that are required at the time\n    we set up the netpoll.  For configfs, this information is not available at\n    the time of mkdir(2).  So, we keep all newly-created targets (via\n    configfs) disabled by default.  The user is expected to set various\n    attributes appropriately (including the local network interface if\n    required) and then write(2) \"1\" to the \"enabled\" attribute.  Thus,\n    netpoll_setup() is then called on the set parameters in the context of\n    _this_ write(2) on the \"enabled\" attribute itself.  This design enables\n    the user to reconfigure existing netconsole targets at runtime to be\n    attached to newly-come-up interfaces that may not have existed when\n    netconsole was loaded or when the targets were actually created.  All this\n    effectively enables us to get rid of custom ioctls.\n\n(3) Ultra-paranoid configfs attribute show() and store() operations, with\n    sanity and input range checking, using only safe string primitives, and\n    compliant with the recommendations in Documentation/filesystems/sysfs.txt.\n\n(4) A new function netpoll_print_options() is created in the netpoll API,\n    that just prints out the configured parameters for a netpoll structure.\n    netpoll_parse_options() is modified to use that and it is also exported to\n    be used from netconsole.\n\nSigned-off-by: Satyam Sharma \u003csatyam@infradead.org\u003e\nAcked-by: Keiichi Kii \u003ck-keiichi@bx.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bea3348eef27e6044b6161fd04c3152215f96411",
      "tree": "f0990b263e5ce42505d290a4c346fe990bcd4c33",
      "parents": [
        "dde4e47e8fe333a5649a3fa0e7db1fa7c08d6158"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Wed Oct 03 16:41:36 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:45 2007 -0700"
      },
      "message": "[NET]: Make NAPI polling independent of struct net_device objects.\n\nSeveral devices have multiple independant RX queues per net\ndevice, and some have a single interrupt doorbell for several\nqueues.\n\nIn either case, it\u0027s easier to support layouts like that if the\nstructure representing the poll is independant from the net\ndevice itself.\n\nThe signature of the -\u003epoll() call back goes from:\n\n\tint foo_poll(struct net_device *dev, int *budget)\n\nto\n\n\tint foo_poll(struct napi_struct *napi, int budget)\n\nThe caller is returned the number of RX packets processed (or\nthe number of \"NAPI credits\" consumed if you want to get\nabstract).  The callee no longer messes around bumping\ndev-\u003equota, *budget, etc. because that is all handled in the\ncaller upon return.\n\nThe napi_struct is to be embedded in the device driver private data\nstructures.\n\nFurthermore, it is the driver\u0027s responsibility to disable all NAPI\ninstances in it\u0027s -\u003estop() device close handler.  Since the\nnapi_struct is privatized into the driver\u0027s private data structures,\nonly the driver knows how to get at all of the napi_struct instances\nit may have per-device.\n\nWith lots of help and suggestions from Rusty Russell, Roland Dreier,\nMichael Chan, Jeff Garzik, and Jamal Hadi Salim.\n\nBug fixes from Thomas Graf, Roland Dreier, Peter Zijlstra,\nJoseph Fannin, Scott Wood, Hans J. Koch, and Michael Chan.\n\n[ Ported to current tree and all drivers converted.  Integrated\n  Stephen\u0027s follow-on kerneldoc additions, and restored poll_list\n  handling to the old style to fix mutual exclusion issues.  -DaveM ]\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6d5aefb8eaa38e44b5b8cf60c812aceafc02d924",
      "tree": "8945fd66a5f8a32f4daecf9799635ec5d7f86348",
      "parents": [
        "9db73724453a9350e1c22dbe732d427e2939a5c9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 05 19:36:26 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Tue Dec 05 19:36:26 2006 +0000"
      },
      "message": "WorkQueue: Fix up arch-specific work items where possible\n\nFix up arch-specific work items where possible to use the new work_struct and\ndelayed_work structs.\n\nThree places that enqueue bits of their stack and then return have been marked\nwith #error as this is not permitted.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "bf6bce71eae386dbc37f93af7e5ad173450d9945",
      "tree": "e068d1314dc1a3eb8e2cb26123814ddf939472ff",
      "parents": [
        "5de4a473bda49554e4e9bd93b78f43c49a7ea69c"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Oct 26 15:46:56 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:38 2006 -0800"
      },
      "message": "netpoll header cleanup\n\nAs Steve left netpoll beast, hopefully not to return soon.\nHe noticed that the header was messy. He straightened it\nup and polished it a little, then waved goodbye.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\n"
    },
    {
      "commit": "5de4a473bda49554e4e9bd93b78f43c49a7ea69c",
      "tree": "13a74efb896968e8b535561d5024e3cc8a2f19cc",
      "parents": [
        "2bdfe0baeca0e2750037b8fba71905c00ac3c515"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Oct 26 15:46:55 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:37 2006 -0800"
      },
      "message": "netpoll queue cleanup\n\nThe beast had a long and not very happy history. At one\npoint, a friend (netdump) had asked that he open up a little.\nWell, the friend was long gone now, and the beast had\nthis dangling piece hanging (netpoll_queue).\n\nIt wasn\u0027t hard to stitch the netpoll_queue back in\nwhere it belonged and make everything tidy.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\n"
    },
    {
      "commit": "2bdfe0baeca0e2750037b8fba71905c00ac3c515",
      "tree": "feb34f19d0f280fe4b54bc49e49ab05ea7f085c7",
      "parents": [
        "6c43ff18f91e54aa7555d8ae4f26eab7da5bce68"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Oct 26 15:46:54 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:36 2006 -0800"
      },
      "message": "netpoll retry cleanup\n\nThe netpoll beast was still not happy. If the beast got\nclogged pipes, it tended to stare blankly off in space\nfor a long time.\n\nThe problem couldn\u0027t be completely fixed because the\nbeast talked with irq\u0027s disabled. But it could be made\nless painful and shorter.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\n"
    },
    {
      "commit": "b6cd27ed33886a5ffaf0925a6d98e13e18e8a1af",
      "tree": "9657515409d89b8b43134e0a29f7c3730901277c",
      "parents": [
        "93ec2c723e3f8a216dde2899aeb85c648672bc6b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Oct 26 15:46:51 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:33 2006 -0800"
      },
      "message": "netpoll per device txq\n\nWhen the netpoll beast got really busy, it tended to clog\nthings, so it stored them for later. But the beast was putting\nall it\u0027s skb\u0027s in one basket. This was bad because maybe some\npipes were clogged and others were not.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\n"
    },
    {
      "commit": "93ec2c723e3f8a216dde2899aeb85c648672bc6b",
      "tree": "a70a10812c2340edfce0d1010175535aa344d1c9",
      "parents": [
        "a1bcfacd0577ff477e934731d4ceb3d26eab947d"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Oct 26 15:46:50 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:32 2006 -0800"
      },
      "message": "netpoll info leak\n\nAfter looking harder, Steve noticed that the netpoll\nbeast leaked a little every time it shutdown for a nap.\nNot a big leak, but a nuisance kind of thing.\n\nHe took out his refcount duct tape and patched the\nleak. It was overkill since there was already other\nlocking in that area, but it looked clean and wouldn\u0027t\nattract fleas.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\n"
    },
    {
      "commit": "068c6e98bc7ec4419299b38cd40be26ebf4bdeda",
      "tree": "4312d3449036c35d5fc8fd4f60f447200928e817",
      "parents": [
        "8834807b43200b1658b49d3b779e74a4f77e4ffb"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Mon Jun 26 00:04:27 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 26 00:04:27 2006 -0700"
      },
      "message": "[NET] netpoll: break recursive loop in netpoll rx path\n\nThe netpoll system currently has a rx to tx path via:\n\nnetpoll_rx\n __netpoll_rx\n  arp_reply\n   netpoll_send_skb\n    dev-\u003ehard_start_tx\n\nThis rx-\u003etx loop places network drivers at risk of inadvertently causing a\ndeadlock or BUG halt by recursively trying to acquire a spinlock that is\nused in both their rx and tx paths (this problem was origionally reported\nto me in the 3c59x driver, which shares a spinlock between the\nboomerang_interrupt and boomerang_start_xmit routines).\n\nThis patch breaks this loop, by queueing arp frames, so that they can be\nresponded to after all receive operations have been completed.  Tested by\nmyself and the reported with successful results.\n\nSpecifically it was tested with netdump.  Heres the BZ with details:\nhttps://bugzilla.redhat.com/bugzilla/show_bug.cgi?id\u003d194055\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "afb997c6163b33292d31a09d6aa5cbb03ffa5bf1",
      "tree": "ee88c284b220e60088934b77797f4433590bf90c",
      "parents": [
        "ab4060e858e36129f9319ef0fa055347ad60e1d5"
      ],
      "author": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Wed Oct 12 15:12:21 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 12 15:12:21 2005 -0700"
      },
      "message": "[NETPOLL]: wrong return for null netpoll_poll_lock()\n\nWhen netpoll is not being used, the macro that\ndefines the removed routing netpoll_poll_lock\ndefines the return as zero, but the real\nroutine returns a `void *`\n\nSigned-off-by: Ben Dooks \u003cben-linux@fluff.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "53fb95d3c14290fd6ee808b221e35493f096246f",
      "tree": "146c31c79bbc66d8fde3afa5ae37a04b63041eba",
      "parents": [
        "2652076507b662fc88ba16c27b59c7bdd9ccd956"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Thu Aug 11 19:27:43 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 11 19:27:43 2005 -0700"
      },
      "message": "[NETPOLL]: fix initialization/NAPI race\n\nThis fixes a race during initialization with the NAPI softirq\nprocessing by using an RCU approach.\n\nThis race was discovered when refill_skbs() was added to\nthe setup code.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0db1d6fc1ea051af49ebe03c503d23996a7c5bbb",
      "tree": "6afab02002a46b045a3b8769342ad277402f0d95",
      "parents": [
        "f0d3459d0722782c7d9d0e35a1ed0815e75fcde5"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Thu Aug 11 19:25:54 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 11 19:25:54 2005 -0700"
      },
      "message": "[NETPOLL]: add retry timeout\n\nAdd limited retry logic to netpoll_send_skb\n\nEach time we attempt to send, decrement our per-device retry counter.\nOn every successful send, we reset the counter. \n\nWe delay 50us between attempts with up to 20000 retries for a total of\n1 second. After we\u0027ve exhausted our retries, subsequent failed\nattempts will try only once until reset by success.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fbeec2e1552949002065435c9829dc244ad85407",
      "tree": "d97dc663bbef4bf59a1858b23a327f14043c33d1",
      "parents": [
        "115c1d6e61b70851d9a363328c3b8d4c2559a1d3"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Wed Jun 22 22:05:59 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 22 22:05:59 2005 -0700"
      },
      "message": "[NETPOLL]: allow multiple netpoll_clients to register against one interface\n\nThis patch provides support for registering multiple netpoll clients to the\nsame network device.  Only one of these clients may register an rx_hook,\nhowever.  In practice, this restriction has not been problematic.  It is\nworth mentioning, though, that the current design can be easily extended to\nallow for the registration of multiple rx_hooks.\n\nThe basic idea of the patch is that the rx_np pointer in the netpoll_info\nstructure points to the struct netpoll that has rx_hook filled in.  Aside\nfrom this one case, there is no need for a pointer from the struct\nnet_device to an individual struct netpoll.\n\nA lock is introduced to protect the setting and clearing of the np_rx\npointer.  The pointer will only be cleared upon netpoll client module\nremoval, and the lock should be uncontested.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "115c1d6e61b70851d9a363328c3b8d4c2559a1d3",
      "tree": "3bc37b036fd3ef72d188ff73da94472b40c05a44",
      "parents": [
        "6ca4f65e6b390d09e1de7280cf9fd4f5d8e4b48b"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Wed Jun 22 22:05:31 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 22 22:05:31 2005 -0700"
      },
      "message": "[NETPOLL]: Introduce a netpoll_info struct\n\nThis patch introduces a netpoll_info structure, which the struct net_device\nwill now point to instead of pointing to a struct netpoll.  The reason for\nthis is two-fold: 1) fields such as the rx_flags, poll_owner, and poll_lock\nshould be maintained per net_device, not per netpoll;  and 2) this is a first\nstep in providing support for multiple netpoll clients to register against the\nsame net_device.\n\nThe struct netpoll is now pointed to by the netpoll_info structure.  As\nsuch, the previous behaviour of the code is preserved.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ca4f65e6b390d09e1de7280cf9fd4f5d8e4b48b",
      "tree": "1ca8b0d0126c5ce1cd7ffc0fe0ccd80235f3307b",
      "parents": [
        "f31f5f051269746179b01017fc5e3dcf6b37c67e"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Wed Jun 22 22:04:55 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 22 22:04:55 2005 -0700"
      },
      "message": "[NETPOLL]: Set poll_owner to -1 before unlocking in netpoll_poll_unlock()\n\nThis trivial patch moves the assignment of poll_owner to -1 inside of\nthe lock.  This fixes a potential SMP race in the code.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.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"
    }
  ]
}
