)]}'
{
  "log": [
    {
      "commit": "e83a2ea850bf0c0c81c675444080970fc07798c6",
      "tree": "ebdf251be6fa2f9b2b482cd0e6393fdbfc8278a0",
      "parents": [
        "16ca3f913001efdb6171a2781ef41c77474e3895"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Thu Jan 31 16:53:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:24 2008 -0800"
      },
      "message": "[VLAN]: set_rx_mode support for unicast address list\n\nReuse the existing logic for multicast list synchronization for the\nunicast address list. The core of dev_mc_sync/unsync are split out as\n__dev_addr_sync/unsync and moved from dev_mcast.c to dev.c.  These are\nthen used to implement dev_unicast_sync/unsync as well.\n\nI\u0027m working on cleaning up Intel\u0027s FCoE stack, which generates new MAC\naddresses from the fibre channel device id assigned by the fabric as\nper the current draft specification in T11.  When using such a\nprotocol in a VLAN environment it would be nice to not always be\nforced into promiscuous mode, assuming the underlying Ethernet driver\nsupports multiple unicast addresses as well.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "a0a46196cd98af5cc015842bba757571f02a8c30",
      "tree": "1e73ef1d0251f969fbb1a51637722c2c793ff0b6",
      "parents": [
        "bdb95b1792664f25eb2a4d13a587d2020aa93002"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 07 20:35:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 08 23:30:07 2008 -0800"
      },
      "message": "[NET]: Add NAPI_STATE_DISABLE.\n\nCreate a bit to signal that a napi_disable() is in progress.\n\nThis sets up infrastructure such that net_rx_action() can generically\nbreak out of the -\u003epoll() loop on a NAPI context that has a pending\nnapi_disable() yet is being bombed with packets (and thus would\notherwise poll endlessly and not allow the napi_disable() to finish).\n\nNow, what napi_disable() does is first set the NAPI_STATE_DISABLE bit\n(to indicate that a disable is pending), then it polls for the\nNAPI_STATE_SCHED bit, and once the NAPI_STATE_SCHED bit is acquired\nthe NAPI_STATE_DISABLE bit is cleared.  Here, the test_and_set_bit()\nprovides the necessary memory barrier between the various bitops.\n\nnapi_schedule_prep() now tests for a pending disable as it\u0027s first\naction and won\u0027t try to obtain the NAPI_STATE_SCHED bit if a disable\nis pending.\n\nAs a result, we can remove the netif_running() check in\nnetif_rx_schedule_prep() because the NAPI disable pending state serves\nthis purpose.  And, it does so in a NAPI centric manner which is what\nwe really want.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bdb95b1792664f25eb2a4d13a587d2020aa93002",
      "tree": "88b7fc6bc396294417e2e34352039214a0192509",
      "parents": [
        "d987160b710c98997015832422a05e18d9f0f925"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 07 20:26:59 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 08 23:30:07 2008 -0800"
      },
      "message": "[NET]: Do not grab device reference when scheduling a NAPI poll.\n\nIt is pointless, because everything that can make a device go away\nwill do a napi_disable() first.\n\nThe main impetus behind this is that now we can legally do a NAPI\ncompletion in generic code like net_rx_action() which a following\nchangeset needs to do.  net_rx_action() can only perform actions\nin NAPI centric ways, because there may be a one to many mapping\nbetween NAPI contexts and network devices (SKY2 is one example).\n\nWe also want to get rid of this because it\u0027s an extra atomic in the\nNAPI paths, and also because it is one of the last instances where the\nNAPI interfaces care about net devices.\n\nThe one remaining netdev detail the NAPI stuff cares about is the\nnetif_running() check which will be killed off in a subsequent\nchangeset.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3b582cc14c50f71eabf1c3cada05acb8dc9f457c",
      "tree": "bad13e4e0a36f019f8ea62d1401a9248073a7392",
      "parents": [
        "d57a9212e00779181d8d820887dcab3e9d529194"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Thu Nov 01 02:21:47 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 01 02:21:47 2007 -0700"
      },
      "message": "[NET]: docbook fixes for netif_ functions\n\nDocumentation updates for network interfaces.\n\n1. Add doc for netif_napi_add\n2. Remove doc for unused returns from netif_rx\n3. Add doc for netif_receive_skb\n\n[ Incorporated minor mods from Randy Dunlap -DaveM ]\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "43cc7380eced27ee9cafdf89fa32333dc3884e8b",
      "tree": "31a051c83d664f0b602d45c3d6599028a0d59dbb",
      "parents": [
        "8ad7c62b752483982a678c78a52a70f498b84cbb"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Oct 26 04:23:22 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 26 04:23:22 2007 -0700"
      },
      "message": "[NET] napi: use non-interruptible sleep in napi_disable\n\nThe current napi_disable() uses msleep_interruptible() but doesn\u0027t\n(and can\u0027t) exit in case there\u0027s a signal, thus ending up doing a\nhot spin without a cpu_relax. Use uninterruptible sleep instead.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bada339ba24dee9e143bfb42e1dc61f146619846",
      "tree": "69e14af15764a1b38d61cd1f0b55560e45779f23",
      "parents": [
        "c9927c2bf4f45bb85e8b502ab3fb79ad6483c244"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Oct 23 20:19:37 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Oct 23 21:27:50 2007 -0700"
      },
      "message": "[NET]: Validate device addr prior to interface-up\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f1ecfd5d3b69d98b814435758c485e6fd0e112de",
      "tree": "648897a4aabe5631101a4763610d479c0b14433e",
      "parents": [
        "b877fe288a325b9711d83628eb54e1deb63f962e"
      ],
      "author": {
        "name": "Ursula Braun",
        "email": "braunu@de.ibm.com",
        "time": "Mon Oct 22 16:16:14 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 23 20:18:13 2007 -0400"
      },
      "message": "remove header_ops bug in qeth driver\n\nRemove qeth bug caused by commit:\n[NET]: Move hardware header operations out of netdevice.\n\nThis is the second part of the qeth header_ops patch, since\nfirst patch sent 10/19 has been insufficient.\nNevertheless first patch is still valid and should be kept.\n\nSigned-off-by: Ursula Braun \u003cbraunu@de.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "668f895a85b0c3a62a690425145f13dabebebd7a",
      "tree": "24a10711c3c2d7d6bf710b99d36a1510de184566",
      "parents": [
        "4e3ab47a547616e583c7a5458beced6aa34c8ef3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Oct 21 17:01:56 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:56 2007 -0700"
      },
      "message": "[NET]: Hide the queue_mapping field inside netif_subqueue_stopped\n\nMany places get the queue_mapping field from skb to pass it to the\nnetif_subqueue_stopped() which will be 0 in any case.\n\nMake the helper that works with sk_buff\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4fa4d23fa20de67df919030c1216295664866ad7",
      "tree": "90e80f8a40665a351950ef25ab9de85b3647a23a",
      "parents": [
        "a9e82d3a02247af6b729be0a963862d70cb25bf9",
        "4f1e5ba0977570b7a198bb3ac110ccc5f532821b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 19:31:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 19:31:54 2007 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6\n\n* \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:\n  pcnet32: remove private net_device_stats structure\n  vortex_up should initialize \"err\"\n  pcnet32: remove compile warnings in non-napi mode\n  pcnet32: fix non-napi packet reception\n  fix EMAC driver for proper napi_synchronize API\n  sky2: shutdown cleanup\n  napi_synchronize: waiting for NAPI\n  forcedeth msi bugfix\n  gianfar: fix obviously wrong #ifdef CONFIG_GFAR_NAPI placement\n  fs_enet: Update for API changes\n  gianfar: remove orphan struct.\n  forcedeth: fix rx-work condition in nv_rx_process_optimized() too\n"
    },
    {
      "commit": "1b83336bb9fa4f110b5b0a4378a82cd5f0fd0ac8",
      "tree": "0eb85178fe55ac084d2e62037432a1f8ae48b74d",
      "parents": [
        "df2e014bfbbf26d160e1bf47b05fc05c96205e2b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Oct 18 05:09:28 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 18 05:09:28 2007 -0700"
      },
      "message": "[NET]: Fix OOPS due to missing check in dev_parse_header().\n\n[ This is kernel bugzilla 9174 \"linux-2.6.23-git11 kernel panic\" ]\n\nThe device in question is an IPv6-over-IPv4 tunnel, which doesn\u0027t have\nany header_ops, so the crash happens in dev_parse_header when\ndereferencing them.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c264c3dee9f20bad1f42ef5821300791291d0f77",
      "tree": "cbd106e8e69163032ab6346672a7cefe1b39da2b",
      "parents": [
        "a7475906bc496456ded9e4b062f94067fb93057a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Wed Oct 17 13:26:41 2007 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Oct 17 20:17:34 2007 -0400"
      },
      "message": "napi_synchronize: waiting for NAPI\n\nSome drivers with shared NAPI need a synchronization barrier.\nAlso suggested by Benjamin Herrenschmidt for EMAC.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c4ea43c552ecc9ccc564e11e70d397dbdf09484b",
      "tree": "98ad3cd268d3e9c3ac466ef7226a83a752aa23dd",
      "parents": [
        "22e67bb6c1554dc804ee44569f43b2e9c8e591e7"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri Oct 12 21:17:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Oct 13 09:52:26 2007 -0700"
      },
      "message": "net core: fix kernel-doc for new function parameters\n\nFix networking code kernel-doc for newly added parameters.\n\nWarning(linux-2.6.23-git2//net/core/sock.c:879): No description found for parameter \u0027net\u0027\nWarning(linux-2.6.23-git2//net/core/dev.c:570): No description found for parameter \u0027net\u0027\nWarning(linux-2.6.23-git2//net/core/dev.c:594): No description found for parameter \u0027net\u0027\nWarning(linux-2.6.23-git2//net/core/dev.c:617): No description found for parameter \u0027net\u0027\nWarning(linux-2.6.23-git2//net/core/dev.c:641): No description found for parameter \u0027net\u0027\nWarning(linux-2.6.23-git2//net/core/dev.c:667): No description found for parameter \u0027net\u0027\nWarning(linux-2.6.23-git2//net/core/dev.c:722): No description found for parameter \u0027net\u0027\nWarning(linux-2.6.23-git2//net/core/dev.c:959): No description found for parameter \u0027net\u0027\nWarning(linux-2.6.23-git2//net/core/dev.c:1195): No description found for parameter \u0027dev\u0027\nWarning(linux-2.6.23-git2//net/core/dev.c:2105): No description found for parameter \u0027n\u0027\nWarning(linux-2.6.23-git2//net/core/dev.c:3272): No description found for parameter \u0027net\u0027\nWarning(linux-2.6.23-git2//net/core/dev.c:3445): No description found for parameter \u0027net\u0027\nWarning(linux-2.6.23-git2//include/linux/netdevice.h:1301): No description found for parameter \u0027cpu\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ef4429b31b86d486b56b6c179fe52b5c7152f13",
      "tree": "ff2533dc911d898403866086e385b08c4034cf9b",
      "parents": [
        "cd40b7d3983c708aabe3d3008ec64ffce56d33b0"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Wed Oct 10 21:18:17 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 10 21:18:17 2007 -0700"
      },
      "message": "[NET]: Fix dev_put() and dev_hold() comments\n\nTrivial fix: Swap comments for dev_put() and dev_hold() to get them \nat the right place.\nTypo introduced by 4fa57c9ea9f36f9ca852f3a88ca5d2f1aebbc960.\n\nSigned-of-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bfe13f54f5028cff034e3b6247e9f433908f4f4f",
      "tree": "428853641da40769b53629e393a582a0e6956d45",
      "parents": [
        "9153f66a5b8e63c61374df4e6a4cbd0056e45178"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Tue Oct 09 15:47:37 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:55:31 2007 -0700"
      },
      "message": "ibm_emac: Convert to use napi_struct independent of struct net_device\n\nCommit da3dedd9 (\"[NET]: Make NAPI polling independent of struct\nnet_device objects.\") changed the interface to NAPI polling.  Fix up\nthe ibm_emac driver so that it works with this new interface.  This is\nactually a nice cleanup because ibm_emac is one of the drivers that\nwants to have multiple NAPI structures for a single net_device.\n\nTested with the internal MAC of a PowerPC 440SPe SoC with an AMCC\n\u0027Yucca\u0027 evaluation board.\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\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": "b95cce3576813ac3f86bafa6b5daaaaf7574b0fe",
      "tree": "54da3f245ee145722623a8e0eaab5fc49ea78511",
      "parents": [
        "0c4e85813d0a94eeb8bf813397a4907bdd7bb610"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Wed Sep 26 22:13:38 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:51 2007 -0700"
      },
      "message": "[NET]: Wrap hard_header_parse\n\nWrap the hard_header_parse function to simplify next step of\nheader_ops conversion.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c4e85813d0a94eeb8bf813397a4907bdd7bb610",
      "tree": "53ee948abc930bb1c5cd270c490f87fda5eb45b3",
      "parents": [
        "4c94f8c0c9a82fad84bc5df453aff755cfed70b7"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Tue Oct 09 01:36:32 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:50 2007 -0700"
      },
      "message": "[NET]: Wrap netdevice hardware header creation.\n\nAdd inline for common usage of hardware header creation, and\nfix bug in IPV6 mcast where the assumption about negative return is\nan errno. Negative return from hard_header means not enough space\nwas available,(ie -N bytes).\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2774c7aba6c97a2535be3309a2209770953780b3",
      "tree": "9327c795707f6d723c6395c31e1c060e70b5e0db",
      "parents": [
        "0cc217e16cb8ca8ef2544363571fce94259900e0"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Sep 26 22:10:56 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:49 2007 -0700"
      },
      "message": "[NET]: Make the loopback device per network namespace.\n\nThis patch makes loopback_dev per network namespace.  Adding\ncode to create a different loopback device for each network\nnamespace and adding the code to free a loopback device\nwhen a network namespace exits.\n\nThis patch modifies all users the loopback_dev so they\naccess it as init_net.loopback_dev, keeping all of the\ncode compiling and working.  A later pass will be needed to\nupdate the users to use something other than the initial network\nnamespace.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e24eb521fbf2a350ce879dfc1d8e56d4ffa2aa22",
      "tree": "6495c4bd8e2bdd6a376dea5252d36bc61f40c8a6",
      "parents": [
        "1156b2c689bf509cdc254394598d410787a02aec"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Sep 25 19:42:02 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:17 2007 -0700"
      },
      "message": "[NET]: note that NETIF_F_LLTX is deprecated\n\nAm Freitag, 21. September 2007 schrieb Herbert Xu:\n\u003e Please don\u0027t use LLTX in new drivers.  We\u0027re trying to get rid\n\u003e of it since it\u0027s\n\u003e\n\u003e 1) unnecessary;\n\u003e 2) causes problems with AF_PACKET seeing things twice.\n\nI suggest to document that LLTX is deprecated.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "de3cb747ffac5f2a4a6bb156e7e2fd5229e688e5",
      "tree": "fe79764b8093843934c9b9f82f573e7a92cef406",
      "parents": [
        "556829657397b9b05baec6691ead4e22ee8d1567"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "dlezcano@fr.ibm.com",
        "time": "Tue Sep 25 19:16:28 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:14 2007 -0700"
      },
      "message": "[NET]: Dynamically allocate the loopback device, part 1.\n\nThis patch replaces all occurences to the static variable\nloopback_dev to a pointer loopback_dev. That provides the\nmindless, trivial, uninteressting change part for the dynamic\nallocation for the loopback.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nAcked-By: Kirill Korotaev \u003cdev@sw.ru\u003e\nAcked-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ad7379d49458a863c520a73a3c36441c572f850e",
      "tree": "64c9c28a5b699e8be2cb84ef97c3c827ea118b39",
      "parents": [
        "22dd74950172dc8979576e2bef3b439f20ef0b05"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Sep 16 15:33:32 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:51:20 2007 -0700"
      },
      "message": "[NET]: Fix the prototype of call_netdevice_notifiers.\n\nThis replaces the void * parameter with a struct net_device * which\nis what is actually required.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "22dd74950172dc8979576e2bef3b439f20ef0b05",
      "tree": "d918ef8e1841cd4e5938febd2c584c02dcc6ca25",
      "parents": [
        "4885a50476b95fa0f4caad179a80783508c2fe86"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Sun Sep 16 14:40:49 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:51:20 2007 -0700"
      },
      "message": "[NET]: migrate HARD_TX_LOCK to header file\n\nHARD_TX_LOCK micro is a nice aggregation that could be used\nin other spots. move it to netdevice.h\nAlso makes sure the previously superflous cpu arguement is used.\nThanks to DaveM for the suggestions.\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\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": "a050c33f4a4d5babaf94a8ba6ae7a200135240b3",
      "tree": "d47e7be9cb38e277e767601926e11a432dd86c39",
      "parents": [
        "abf07acbb9f122218095d0d221e0f949160ccc37"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "dlezcano@fr.ibm.com",
        "time": "Wed Sep 12 14:57:09 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:18 2007 -0700"
      },
      "message": "[NETNS]: Fix bad macro definition.\n\nThe macro definition is bad. When calling next_net_device with\nparameter name \"dev\", the resulting code is:\n\t  struct net_device *dev \u003d dev and that leads to an unexpected\nbehavior. Especially when llc_core is compiled in, the kernel panics\nat boot time.\nThe patchset change macro definition with static inline functions as\nthey were defined before.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ce286d327341295f58d89864d746a524287cfdf9",
      "tree": "ee7241e7504333cc4cf647ede551248268f865c4",
      "parents": [
        "b267b179648e46ea8e2a44f7314a23eb6aee1d6c"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Sep 12 13:53:49 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:12 2007 -0700"
      },
      "message": "[NET]: Implement network device movement between namespaces\n\nThis patch introduces NETIF_F_NETNS_LOCAL a flag to indicate\na network device is local to a single network namespace and\nshould never be moved.  Useful for pseudo devices that we\nneed an instance in each network namespace (like the loopback\ndevice) and for any device we find that cannot handle multiple\nnetwork namespaces so we may trap them in the initial network\nnamespace.\n\nThis patch introduces the function dev_change_net_namespace\na function used to move a network device from one network\nnamespace to another.  To the network device nothing\nspecial appears to happen, to the components of the network\nstack it appears as if the network device was unregistered\nin the network namespace it is in, and a new device\nwas registered in the network namespace the device\nwas moved to.\n\nThis patch sets up a namespace device destructor that\nupon the exit of a network namespace moves all of the\nmovable network devices  to the initial network namespace\nso they are not lost.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "881d966b48b035ab3f3aeaae0f3d3f9b584f45b2",
      "tree": "c579d59a4107cbbe9e2b85939bc0d496b815c887",
      "parents": [
        "b4b510290b056b86611757ce1175a230f1080f53"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Sep 17 11:56:21 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:10 2007 -0700"
      },
      "message": "[NET]: Make the device list and device lookups per namespace.\n\nThis patch makes most of the generic device layer network\nnamespace safe.  This patch makes dev_base_head a\nnetwork namespace variable, and then it picks up\na few associated variables.  The functions:\ndev_getbyhwaddr\ndev_getfirsthwbytype\ndev_get_by_flags\ndev_get_by_name\n__dev_get_by_name\ndev_get_by_index\n__dev_get_by_index\ndev_ioctl\ndev_ethtool\ndev_load\nwireless_process_ioctl\n\nwere modified to take a network namespace argument, and\ndeal with it.\n\nvlan_ioctl_set and brioctl_set were modified so their\nhooks will receive a network namespace argument.\n\nSo basically anthing in the core of the network stack that was\naffected to by the change of dev_base was modified to handle\nmultiple network namespaces.  The rest of the network stack was\nsimply modified to explicitly use \u0026init_net the initial network\nnamespace.  This can be fixed when those components of the network\nstack are modified to handle multiple network namespaces.\n\nFor now the ifindex generator is left global.\n\nFundametally ifindex numbers are per namespace, or else\nwe will have corner case problems with migration when\nwe get that far.\n\nAt the same time there are assumptions in the network stack\nthat the ifindex of a network device won\u0027t change.  Making\nthe ifindex number global seems a good compromise until\nthe network stack can cope with ifindex changes when\nyou change namespaces, and the like.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4a1c537113cdc688aabc3fb9bb6ed18ec821c779",
      "tree": "82a414159a7646915a913f57ea94271565f43e1f",
      "parents": [
        "772698f6362680b65211f7efc68121f1e4c28aa5"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Sep 12 11:56:32 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:04 2007 -0700"
      },
      "message": "[NET]: Add a network namespace tag to struct net_device\n\nPlease note that network devices do not increase the count\ncount on the network namespace.  The are inside the network\nnamespace and so the network namespace tag is in the nature\nof a back pointer and so getting and putting the network namespace\nis unnecessary.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3ae7c0b2e3747b50c3a6c63ebb67469e0a6b3203",
      "tree": "0f3bacac94b8c189f7dd87f3017babca476d0a69",
      "parents": [
        "0bcc1816188e570bde1d56a208996660f2633ae0"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 15 16:00:51 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:07 2007 -0700"
      },
      "message": "[ETHTOOL]: Add ETHTOOL_[GS]FLAGS sub-ioctls\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.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": "7f353bf29e162459f2f1e2ca25e41011fae65241",
      "tree": "8df6d6c66b69f18d521f76018ff98706e4e2a1b3",
      "parents": [
        "f71417614d63932cf56ed98a0947568d6259d11e"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Aug 10 15:47:58 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 13 22:52:14 2007 -0700"
      },
      "message": "[NET]: Share correct feature code between bridging and bonding\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d8797 shows that the\nbonding driver may produce bogus combinations of the checksum\nflags and SG/TSO.\n\nFor example, if you bond devices with NETIF_F_HW_CSUM and\nNETIF_F_IP_CSUM you\u0027ll end up with a bonding device that\nhas neither flag set.  If both have TSO then this produces\nan illegal combination.\n\nThe bridge device on the other hand has the correct code to\ndeal with this.\n\nIn fact, the same code can be used for both.  So this patch\nmoves that logic into net/core/dev.c and uses it for both\nbonding and bridging.\n\nIn the process I\u0027ve made small adjustments such as only\nsetting GSO_ROBUST if at least one constituent device\nsupports it.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "31ce72a6b1c7635259cf522459539c0611f2c50c",
      "tree": "d8a20cc99b87822c56081b4bc2b4e9bf796a196a",
      "parents": [
        "fc7b93800b48324667e218a4b6b784b853cf4dd7"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Jul 20 19:45:45 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 20 19:45:45 2007 -0700"
      },
      "message": "[NET]: Fix loopback crashes when multiqueue is enabled.\n\nFrom: Patrick McHardy \u003ckaber@trash.net\u003e\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\n"
    },
    {
      "commit": "456ad75c89cdb72e11dcdb6b0794802a6f50c8a3",
      "tree": "0e220771195438b704985418e47a7dc29d9a7d7b",
      "parents": [
        "eb4965344965530411359891214cd6fcab483649"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Wed Jul 18 02:10:54 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 18 02:10:54 2007 -0700"
      },
      "message": "[NET]: move dev_mc_discard from dev_mcast.c to dev.c\n\nBecause this function is only called by unregister_netdevice,\nthis moving could make this non-global function static,\nand also remove its declaration in netdevice.h;\n\nAny further, function __dev_addr_discard is also just called by\ndev_mc_discard and dev_unicast_discard, keeping this two functions\nboth in one c file could make __dev_addr_discard also static\nand remove its declaration in netdevice.h;\n\nFuthermore, the sequential call to dev_unicast_discard and then\ndev_mc_discard in unregister_netdevice have a similar mechanism that:\n(netif_tx_lock_bh / __dev_addr_discard / netif_tx_unlock_bh),\nthey should merged into one to eliminate duplicates in acquiring and\nreleasing the dev-\u003e_xmit_lock, this would be done in my following patch.\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2e27afb300b56d83bb03fbfa68852b9c1e2920c6",
      "tree": "32e38acc1602042260f13cceaf3a29792affb05b",
      "parents": [
        "c2dc1ad582196208a2f990eb0230eb922046c684"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 14:31:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 14:31:08 2007 -0700"
      },
      "message": "Revert \"[NET]: Fix races in net_rx_action vs netpoll.\"\n\nThis reverts commit 29578624e354f56143d92510fff33a8b2aaa2c03.\n\nIngo Molnar reports complete breakage with his e1000 card (no\nnetworking, card reports transmit timeouts), and bisected it down to\nthis commit.  Let\u0027s figure out what went wrong, but not keep breaking\nmachines until we do.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Olaf Kirch \u003colaf.kirch@oracle.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53",
      "tree": "a65d5e4be77666600c0005c5f4c9091df63a3a1b",
      "parents": [
        "56addd6eeeb4e11f5a0af7093ca078e0f29140e0"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 18:55:06 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 18:55:06 2007 -0700"
      },
      "message": "[NET]: Add macvlan driver\n\nAdd macvlan driver, which allows to create virtual ethernet devices\nbased on MAC address.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a0a400d79e3dd7843e7e81baa3ef2957bdc292d0",
      "tree": "1391190938fb43587967f44f0ab139a2522b4a65",
      "parents": [
        "24023451c8df726692e2f52288a20870d13b501f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 18:52:02 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 18:52:02 2007 -0700"
      },
      "message": "[NET]: dev_mcast: add multicast list synchronization helpers\n\nThe method drivers currently use to synchronize multicast lists is not\nvery pretty:\n\n- walk the multicast list\n- search each entry on a copy of the previous list\n- if new add to lower device\n- walk the copy of the previous list\n- search each entry on the current list\n- if removed delete from lower device\n- copy entire list\n\nThis patch adds a new field to struct dev_addr_list to store the\nsynchronization state and adds two helper functions for synchronization\nand cleanup.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "24023451c8df726692e2f52288a20870d13b501f",
      "tree": "b80c48dfe817a1a18484dadbc110ca07353c86c8",
      "parents": [
        "e6c9116d1dc984cb7ecf1b0fe26ca4a8ab36bb57"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 18:51:31 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 18:51:31 2007 -0700"
      },
      "message": "[NET]: Add net_device change_rx_mode callback\n\nCurrently the set_multicast_list (and set_rx_mode) callbacks are\nresponsible for configuring the device according to the IFF_PROMISC,\nIFF_MULTICAST and IFF_ALLMULTI flags and the mc_list (and uc_list in\ncase of set_rx_mode).\n\nThese callbacks can be invoked from BH context without the rtnl_mutex\nby dev_mc_add/dev_mc_delete, which makes reading the device flags and\npromiscous/allmulti count racy. For real hardware drivers that just\ncommit all changes to the hardware this is not a real problem since\nthe stack guarantees to call them for every change, so at least the\nfinal call will not race and commit the correct configuration to the\nhardware.\n\nFor software devices that want to synchronize promiscous and multicast\nstate to an underlying device however this can cause corruption of the\nunderlying device\u0027s flags or promisc/allmulti counts.\n\nWhen the software device is concurrently put in promiscous or allmulti\nmode while set_multicast_list is invoked from bottem half context, the\ndevice might synchronize the change to the underlying device without\nholding the rtnl_mutex, which races with concurrent changes to the\nunderlying device.\n\nAdd a dev-\u003echange_rx_flags hook that is invoked when any of the flags\nthat affect rx filtering change (under the rtnl_mutex), which allows\ndrivers to perform synchronization immediately and only synchronize\nthe address lists in set_multicast_list/set_rx_mode.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "29578624e354f56143d92510fff33a8b2aaa2c03",
      "tree": "67d0f28264dbeacedde4882f1e76157894ba33ba",
      "parents": [
        "1fd05ba5a2f2aa8e7b9b52ef55df850e2e7d54c9"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "olaf.kirch@oracle.com",
        "time": "Wed Jul 11 19:32:02 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 11 19:32:02 2007 -0700"
      },
      "message": "[NET]: Fix races in net_rx_action vs netpoll.\n\nKeep netpoll/poll_napi from messing with the poll_list.\nOnly net_rx_action is allowed to manipulate the list.\n\nSigned-off-by: Olaf Kirch \u003colaf.kirch@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "61cbc2fca6335be52788773b21efdc52a2750924",
      "tree": "489e6a9571c7fabd49dcff384dd634635fe66555",
      "parents": [
        "d62733c8e437fdb58325617c4b3331769ba82d70"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jun 30 13:35:52 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:23 2007 -0700"
      },
      "message": "[NET]: Fix secondary unicast/multicast address count maintenance\n\nWhen a reference to an existing address is increased or decreased without\nhitting zero, the address count is incorrectly adjusted.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f25f4e44808f0f6c9875d94ef1c41ef86c288eb2",
      "tree": "d7809dd5e957f1626185326d0c3438ff9a04d350",
      "parents": [
        "a093bf006e09a305e95ff0938c0a18b7520aef67"
      ],
      "author": {
        "name": "Peter P Waskiewicz Jr",
        "email": "peter.p.waskiewicz.jr@intel.com",
        "time": "Fri Jul 06 13:36:20 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:21 2007 -0700"
      },
      "message": "[CORE] Stack changes to add multiqueue hardware support API\n\nAdd the multiqueue hardware device support API to the core network\nstack.  Allow drivers to allocate multiple queues and manage them at\nthe netdev level if they choose to do so.\n\nAdded a new field to sk_buff, namely queue_mapping, for drivers to\nknow which tx_ring to select based on OS classification of the flow.\n\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4417da668c0021903464f92db278ddae348e0299",
      "tree": "a4330cbc2e69a5714fee0a04bcfbabe97109de46",
      "parents": [
        "3fba5a8b1e3df2384b90493538161e83cf15dd5f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 27 01:28:10 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:56 2007 -0700"
      },
      "message": "[NET]: dev: secondary unicast address support\n\nAdd support for configuring secondary unicast addresses on network\ndevices. To support this devices capable of filtering multiple\nunicast addresses need to change their set_multicast_list function\nto configure unicast filters as well and assign it to dev-\u003eset_rx_mode\ninstead of dev-\u003eset_multicast_list. Other devices are put into promiscous\nmode when secondary unicast addresses are present.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3fba5a8b1e3df2384b90493538161e83cf15dd5f",
      "tree": "f38bb73c1bf2516c6c973c9e7cd18fd5a20b1c20",
      "parents": [
        "bf742482d7a647c5c6f03f78eb35a862e159ecf5"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 27 01:26:58 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:55 2007 -0700"
      },
      "message": "[NET]: dev_mcast: switch to generic net_device address lists\n\nUse generic net_device address lists for multicast list handling.\nSome defines are used to keep drivers working.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bf742482d7a647c5c6f03f78eb35a862e159ecf5",
      "tree": "80a822df5fa5eb6b766489b1983c4dc83d4f7668",
      "parents": [
        "75ebe8f73610636be8bbd8d73db883512850e6be"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 27 01:26:19 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:54 2007 -0700"
      },
      "message": "[NET]: dev: introduce generic net_device address lists\n\nIntroduce struct dev_addr_list and list maintenance functions\nbased on dev_mc_list and the related functions. This will be\nused by follow-up patches for both multicast and secondary\nunicast addresses.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d212f87b068c9d72065ef579d85b5ee6b8b59381",
      "tree": "a194d5c667c277c7ea5392c9cf97857a0cd1d321",
      "parents": [
        "d3d6dd3adaaad71eae20902ed81808a66a40a5b9"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Wed Jun 27 00:47:37 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:52 2007 -0700"
      },
      "message": "[NET]: IPV6 checksum offloading in network devices\n\nThe existing model for checksum offload does not correctly handle\ndevices that can offload IPV4 and IPV6 only. The NETIF_F_HW_CSUM flag\nimplies device can do any arbitrary protocol.\n\nThis patch:\n * adds NETIF_F_IPV6_CSUM for those devices\n * fixes bnx2 and tg3 devices that need it\n * add NETIF_F_IPV6_CSUM to ipv6 output (incl GSO)\n * fixes assumptions about NETIF_F_ALL_CSUM in nat\n * adjusts bridge union of checksumming computation\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "38f7b870d4a6a5d3ec21557e849620cb7d032965",
      "tree": "a3a35058298554a87f90b8bd1694cac5c5a1eaa6",
      "parents": [
        "0157f60c0caea24fa8347f4c0ed53297c412fce1"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:03:51 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:20 2007 -0700"
      },
      "message": "[RTNETLINK]: Link creation API\n\nAdd rtnetlink API for creating, changing and deleting software devices.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6472ce6096bf27d85a1f2580964a36f290bd60a9",
      "tree": "48ad046be2fdc6e8cbebdfe29e5ba94a5c4c8d8d",
      "parents": [
        "b3d88ad49a0623d09efcf998beb26288c8029f75"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:03:21 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:13 2007 -0700"
      },
      "message": "[NET]: Mark struct net_device * argument to netdev_priv const\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b0ba66671a92f7d12fdbc42592d36e678f713efc",
      "tree": "80aaa15272dca59160f5ffb6952941d01c084218",
      "parents": [
        "e4fd5da39f99d5921dda1fe3d93652fbd925fbfd"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 29 13:22:52 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu May 31 01:23:35 2007 -0700"
      },
      "message": "[NET] napi: Call __netif_rx_complete in netif_rx_complete\n\nThis patch kills a little bit of code duplication between the two\nvariants of netif_rx_complete.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "572a103ded0ad880f75ce83e99f0512fbb80b5b0",
      "tree": "b469715be284a13c3f603903cc9158baa7baa992",
      "parents": [
        "c33be3c362f1bc98f6e2d731a274ef138ae80741"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 08 18:34:17 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu May 10 23:45:07 2007 -0700"
      },
      "message": "[NET] link_watch: Move link watch list into net_device\n\nThese days the link watch mechanism is an integral part of the\nnetwork subsystem as it manages the carrier status.  So it now\nmakes sense to allocate some memory for it in net_device rather\nthan allocating it on demand.\n\nIn fact, this is necessary because we can\u0027t tolerate a memory\nallocation failure since that means we\u0027d have to potentially\nthrow a link up event away.\n\nIt also simplifies the code greatly.\n\nIn doing so I discovered a subtle race condition in the use\nof singleevent.  This race condition still exists (and is\nsomewhat magnified) without singleevent but it\u0027s now plugged\nthanks to an smp_mb__before_clear_bit.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7562f876cd93800f2f8c89445f2a563590b24e09",
      "tree": "78a34c011af275efa0d55ba59c3bd49b771dd533",
      "parents": [
        "03fba0479600114f32d29eee74ca3eaa364606bf"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu May 03 15:13:45 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 03 15:13:45 2007 -0700"
      },
      "message": "[NET]: Rework dev_base via list_head (v3)\n\nCleanup of dev_base list use, with the aim to simplify making device\nlist per-namespace. In almost every occasion, use of dev_base variable\nand dev-\u003enext pointer could be easily replaced by for_each_netdev\nloop. A few most complicated places were converted to using\nfirst_netdev()/next_netdev().\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nAcked-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4e9cac2ba437fcb093c7417b1cd91a77ebd1756a",
      "tree": "bbcf898f720eb19d9d6fbc196902ec93d0748f84",
      "parents": [
        "5b35fad9d4fc2fcaf5c23887c1de1bc3eb28ab8c"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu May 03 03:28:13 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 03 03:28:13 2007 -0700"
      },
      "message": "[NET]: Add __dev_getfirstbyhwtype\n\nAdd __dev_getfirstbyhwtype for callers that don\u0027t want a reference but\nsome data from the device and thus need to take the rtnl anyway.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5a1b5898ee9e0bf68a86609ecb9775457b1857a5",
      "tree": "c51b0c34ba89472a2b5c59d735a7e1affaa0e244",
      "parents": [
        "d16bfd0c77b35a0a0f0e159b94b9921510bf7934"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Apr 28 21:04:03 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 28 21:04:03 2007 -0700"
      },
      "message": "[NET]: Remove NETIF_F_INTERNAL_STATS, default to internal stats.\n\nHerbert Xu conviced me that a new flag was overkill; every driver\ncurrently overrides get_stats, so we might as well make the internal\none the default.  If someone did fail to set get_stats, they would now\nget all 0 stats instead of \"No statistics available\".\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5f286e113fa377e50bd18fc45e5a0d4d83f6950c",
      "tree": "b55cc97345990a22a6ef94a1775491d5fc68525c",
      "parents": [
        "b9099ff63c75216d6ca10bce5a1abcd9293c27e6"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Sat Apr 28 20:57:37 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 28 20:57:37 2007 -0700"
      },
      "message": "[NETPOLL]: Fix TX queue overflow in trapped mode.\n\nCONFIG_NETPOLL_TRAP causes the TX queue controls to be completely bypassed in\nthe netpoll\u0027s \"trapped\" mode which easily causes overflows in the drivers with\nshort TX queues (most notably, in 8139too with its 4-deep queue).  So, make\nthis option more sensible by making it only bypass the TX softirq wakeup.\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nAcked-by: Tom Rini \u003ctrini@kernel.crashing.org\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b86e0280bb5585a610783ff5392d9d439dee7ddd",
      "tree": "150f65cdf5fd17a41c7c2042c0f90ebc6e9f0268",
      "parents": [
        "4d44e0dfe961e02489d40d32334454ebe0e784e8"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Apr 26 20:48:23 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 26 20:48:23 2007 -0700"
      },
      "message": "[WEXT] net_device: Don\u0027t include wext bits if not required.\n\nThis patch makes the wext bits in struct net_device depend on\nCONFIG_WIRELESS_EXT.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "704232c2718c9d4b3375ec15a14fc0397970c449",
      "tree": "6ffaa759ebaee36c4242bff6b7630f148efcaea3",
      "parents": [
        "2a5e1c0eb9efe26eed1dd072fe08de5797a7efd5"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Apr 23 12:20:05 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:29:41 2007 -0700"
      },
      "message": "[WIRELESS] cfg80211: New wireless config infrastructure.\n\nThis patch creates the core cfg80211 code along with some sysfs bits.\nThis is a stripped down version to allow mac80211 to function, but\ndoesn\u0027t include any configuration yet except for creating and removing\nvirtual interfaces.\n\nThis patch includes the nl80211 header file but it only contains the\ninterface types which the cfg80211 interface for creating virtual\ninterfaces relies on.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c45d286e72dd72c0229dc9e2849743ba427fee84",
      "tree": "1fb22a5e71c89043671380087def5bc419a37886",
      "parents": [
        "f85958151900f9d30fa5ff941b0ce71eaa45a7de"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Mar 28 14:29:08 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:26 2007 -0700"
      },
      "message": "[NET]: Inline net_device_stats\n\nNetwork drivers which keep stats allocate their own stats structure\nthen write a get_stats() function to return them.  It would be nice if\nthis were done by default.\n\n1) Add a new \"stats\" field to \"struct net_device\".\n2) Add a new feature field to say \"this driver uses the internal one\"\n3) Have a default \"get_stats\" which returns NULL if that feature not set.\n4) Change callers to check result of get_stats call for NULL, not if\n   -\u003eget_stats is set.\n\nThis should not break backwards compatibility with older drivers, yet\nallow modern drivers to shed some boilerplate code.\n\nLightly tested: works for a modified lguest network driver.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "22f8cde5bc336fd19603bb8c4572b33d14f14f87",
      "tree": "7a566269b9d294a1a90e8368a005e1b3fbc5e984",
      "parents": [
        "f48d5ff1e44562a0ee87ce8ea3b798ce9d84370d"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Wed Feb 07 00:09:58 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Feb 08 12:39:06 2007 -0800"
      },
      "message": "[NET]: unregister_netdevice as void\n\nThere was no real useful information from the unregister_netdevice() return\ncode, the only error occurred in a situation that was a driver bug. So\nchange it to a void function.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "43cb76d91ee85f579a69d42bc8efc08bac560278",
      "tree": "f5c4766a6639fee3685dbbfc9110bb334af9e6dd",
      "parents": [
        "2943ecf2ed32632473c06f1975db47a7aa98c10f"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Apr 09 12:14:34 2002 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Feb 07 10:37:11 2007 -0800"
      },
      "message": "Network: convert network devices to use struct device instead of class_device\n\nThis lets the network core have the ability to handle suspend/resume\nissues, if it wants to.\n\nThanks to Frederik Deweerdt \u003cfrederik.deweerdt@gmail.com\u003e for the arm\ndriver fixes.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e44c39bd8478bf9e41cbc611c74b5879a7b29f58",
      "tree": "f5b0f6b3af369fafafa75fd072b2ad093a95e445",
      "parents": [
        "bfff6e92a33dce6121a3d83ef3809e9063b2734e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Dec 28 21:14:52 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Dec 31 14:06:48 2006 -0800"
      },
      "message": "[NET]: Add memory barrrier to netif_poll_enable()\n\nWhen a driver writer calls this, they generally expect that\nall previous stores and modifications they\u0027ve made will be\nvisible before netif_poll_enable() executes, so ensure this.\n\nNoticed by Ben H.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f0490980a152958d25ce9762bfb296d8fd4c5512",
      "tree": "b5f505b4bfbc770c1e15d7177fec4944e2df9c28",
      "parents": [
        "47bbec0282cce900f16a8dd6397260e076400edb"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Dec 08 00:08:43 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Dec 08 17:19:29 2006 -0800"
      },
      "message": "[NET]: Force a cache line split in hh_cache in SMP.\n\nhh_lock was converted from rwlock to seqlock by Stephen.\n\nTo have a 100% benefit of this change, I suggest to place read mostly fields\nof hh_cache in a separate cache line, because hh_refcnt may be changed quite\nfrequently on some busy machines.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3644f0cee77494190452de132e82245107939284",
      "tree": "7aeb1dd32c68e372cc2aaa9d26703dd238b48a53",
      "parents": [
        "eb991b39385c7b04923d701764a34694ec54b53d"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Dec 07 15:08:17 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Dec 08 17:19:20 2006 -0800"
      },
      "message": "[NET]: Convert hh_lock to seqlock.\n\nThe hard header cache is in the main output path, so using\nseqlock instead of reader/writer lock should reduce overhead.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d7fe0f241dceade9c8d4af75498765c5ff7f27e6",
      "tree": "442ab13842a548ef56904d11fd574c98fee14e69",
      "parents": [
        "bd01f843c3368dcee735c19603251669f23f4477"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Dec 03 23:15:30 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 04 02:00:34 2006 -0500"
      },
      "message": "[PATCH] severing skbuff.h -\u003e mm.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d5c42c0ec4f7fd5a4e19e33a2d561758b67c55c8",
      "tree": "e5967dea50bc2b4c06a4d936d9b4b776d31ff24e",
      "parents": [
        "850db6b8c53ff12eadee9ef2aa69360c06bce057"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Nov 27 17:58:02 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:30:47 2006 -0800"
      },
      "message": "[NET]: Pack struct hh_cache\n\n[acme@newtoy net-2.6.20]$ pahole net/ipv4/tcp.o hh_cache\n/* /pub/scm/linux/kernel/git/acme/net-2.6.20/include/linux/netdevice.h:190 */\nstruct hh_cache {\n        struct hh_cache *          hh_next;              /*     0     4 */\n        atomic_t                   hh_refcnt;            /*     4     4 */\n        __be16                     hh_type;              /*     8     2 */\n\n        /* XXX 2 bytes hole, try to pack */\n\n        int                        hh_len;               /*    12     4 */\n        int                        (*hh_output)();       /*    16     4 */\n        rwlock_t                   hh_lock;              /*    20    36 */\n        long unsigned int          hh_data[24];          /*    56    96 */\n}; /* size: 152, sum members: 150, holes: 1, sum holes: 2 */\n\n[acme@newtoy net-2.6.20]$ find net -name \"*.[ch]\" | xargs grep \u0027hh_len.\\+\u003d\u0027 | sort -u\nnet/atm/br2684.c:               hh-\u003ehh_len \u003d PADLEN + ETH_HLEN;\nnet/ethernet/eth.c:     hh-\u003ehh_len \u003d ETH_HLEN;\nnet/ipv4/ipconfig.c:    int hh_len \u003d LL_RESERVED_SPACE(dev);\nnet/ipv4/ip_output.c:   hh_len \u003d LL_RESERVED_SPACE(rt-\u003eu.dst.dev);\nnet/ipv4/ip_output.c:   int hh_len \u003d LL_RESERVED_SPACE(dev);\nnet/ipv4/netfilter.c:   hh_len \u003d (*pskb)-\u003edst-\u003edev-\u003ehard_header_len;\nnet/ipv4/raw.c: hh_len \u003d LL_RESERVED_SPACE(rt-\u003eu.dst.dev);\nnet/ipv6/ip6_output.c:  hh_len \u003d LL_RESERVED_SPACE(rt-\u003eu.dst.dev);\nnet/ipv6/netfilter/ip6t_REJECT.c:       hh_len \u003d (dst-\u003edev-\u003ehard_header_len + 15)\u0026~15;\nnet/ipv6/raw.c: hh_len \u003d LL_RESERVED_SPACE(rt-\u003eu.dst.dev);\n[acme@newtoy net-2.6.20]$\n\n[acme@newtoy net-2.6.20]$ find include -name \"*.h\" | xargs grep \u0027define ETH_HLEN\u0027\ninclude/linux/if_ether.h:#define ETH_HLEN       14              /* Total octets in header.       */\n\n        (((dev)-\u003ehard_header_len\u0026~(HH_DATA_MOD - 1)) + HH_DATA_MOD)\n\n[acme@newtoy net-2.6.20]$ pahole net/ipv4/tcp.o net_device | grep hard_header_len\n        short unsigned int         hard_header_len;      /*   106     2 */\n[acme@newtoy net-2.6.20]$\n\nSo I think we\u0027re safe in turning hh_len an u16, end result:\n\n[acme@newtoy net-2.6.20]$ codiff -sV /tmp/tcp.o.before net/ipv4/tcp.o\n/pub/scm/linux/kernel/git/acme/net-2.6.20/net/ipv4/tcp.c:\n  struct hh_cache |   -4\n    hh_len;\n     from: int                   /*    12(0)     4(0) */\n     to:   u16                   /*    10(0)     2(0) */\n 1 struct changed\n[acme@newtoy net-2.6.20]$\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "b9df3cb8cf9a96e63dfdcd3056a9cbc71f2459e7",
      "tree": "46d19124b1bbfd9eaa26af3d6ba2293b4e8f326d",
      "parents": [
        "1ed176a801b83915b7c8ab80e0a2a6376a2d6051"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 14 11:21:36 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:27 2006 -0800"
      },
      "message": "[TCP/DCCP]: Introduce net_xmit_eval\n\nThroughout the TCP/DCCP (and tunnelling) code, it often happens that the\nreturn code of a transmit function needs to be tested against NET_XMIT_CN\nwhich is a value that does not indicate a strict error condition.\n\nThis patch uses a macro for these recurring situations which is consistent\nwith the already existing macro net_xmit_errno, saving on duplicated code.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "90833aa4f496d69ca374af6acef7d1614c8693ff",
      "tree": "dbac818cc40ab12d493c45778febf6b7a768f757",
      "parents": [
        "d7f7365f5776723da6df73540d855069c2daaa5c"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Nov 13 16:02:22 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:23 2006 -0800"
      },
      "message": "[NET]: The scheduled removal of the frame diverter.\n\nThis patch contains the scheduled removal of the frame diverter.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e81c73596704793e73e6dbb478f41686f15a4b34",
      "tree": "4068f2efd7ede53492cecaa939951fff0b02fdfe",
      "parents": [
        "af443b6d90de17f7630621269cf0610d9d772670"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Nov 28 20:53:39 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Nov 28 20:59:39 2006 -0800"
      },
      "message": "[NET]: Fix MAX_HEADER setting.\n\nMAX_HEADER is either set to LL_MAX_HEADER or LL_MAX_HEADER + 48, and\nthis is controlled by a set of CONFIG_* ifdef tests.\n\nIt is trying to use LL_MAX_HEADER + 48 when any of the tunnels are\nenabled which set hard_header_len like this:\n\ndev-\u003ehard_header_len \u003d LL_MAX_HEADER + sizeof(struct xxx);\n\nThe correct set of tunnel drivers which do this are:\n\nipip\nip_gre\nip6_tunnel\nsit\n\nso make the ifdef test match.\n\nNoticed by Patrick McHardy and with help from Herbert Xu.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d77072ecfb6d28287d5e2a61d60d87a3a444ac97",
      "tree": "459319535a67ecca3f615dd8aefc36f2b56a7f49",
      "parents": [
        "75b31c33512f46bf650f4652272d8bef39881890"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Sep 28 14:20:34 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 28 18:02:58 2006 -0700"
      },
      "message": "[NET]: Annotate dst_ops protocol\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b0df3bd1e553e901ec7297267611a5db88240b38",
      "tree": "3eceef36f96a6cf187cf8c4072fd83b4f6435315",
      "parents": [
        "cc3afe6f856054a3752ef2b3ccc5eebf33bd5024",
        "a67ab2bde752b26be75d4b68ecead9a14692eac5"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Sep 25 20:09:14 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Sep 25 20:09:14 2006 -0400"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into tmp\n"
    },
    {
      "commit": "f5b2b966f032f22d3a289045a5afd4afa09f09c6",
      "tree": "cb3c505d8f444438bed09353788f6c96150f68ad",
      "parents": [
        "70298705bb29fb7982b85089adf17cd37b94baa7"
      ],
      "author": {
        "name": "Jay Vosburgh",
        "email": "fubar@us.ibm.com",
        "time": "Fri Sep 22 21:54:53 2006 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Sep 25 20:08:09 2006 -0400"
      },
      "message": "[PATCH] bonding: Validate probe replies in ARP monitor\n\n\tAdd logic to check ARP request / reply packets used for ARP\nmonitor link integrity checking.\n\n\tThe current method simply examines the slave device to see if it\nhas sent and received traffic; this can be fooled by extraneous traffic.\nFor example, if multiple hosts running bonding are behind a common\nswitch, the probe traffic from the multiple instances of bonding will\nupdate the tx/rx times on each other\u0027s slave devices.\n\nSigned-off-by: Jay Vosburgh \u003cfubar@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "baef186519c69b11cf7e48c26e75feb1e6173baa",
      "tree": "a4a1ac70808443bec2f924e48b8a705050325cdf",
      "parents": [
        "7c250413e5b7c3dfae89354725b70c76d7621395"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Sep 08 16:04:05 2006 -0400"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Sep 25 16:52:14 2006 -0400"
      },
      "message": "[PATCH] WE-21 support (core API)\n\nThis is version 21 of the Wireless Extensions. Changelog :\n\to finishes migrating the ESSID API (remove the +1)\n\to netdev-\u003eget_wireless_stats is no more\n\to long/short retry\n\nThis is a redacted version of a patch originally submitted by Jean\nTourrilhes.  I removed most of the additions, in order to minimize\nfuture support requirements for nl80211 (or other WE successor).\n\nCC: Jean Tourrilhes \u003cjt@hpl.hp.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "a319a2773a13bab56a0d0b3744ba8703324313b5",
      "tree": "f02c86acabd1031439fd422a167784007e84ebb1",
      "parents": [
        "e18fa700c9a31360bc8f193aa543b7ef7b39a06b",
        "183798799216fad36c7219fe8d4d6dee6b8fa755"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Sep 24 10:15:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Sep 24 10:15:13 2006 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6\n\n* \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (217 commits)\n  net/ieee80211: fix more crypto-related build breakage\n  [PATCH] Spidernet: add ethtool -S (show statistics)\n  [NET] GT96100: Delete bitrotting ethernet driver\n  [PATCH] mv643xx_eth: restrict to 32-bit PPC_MULTIPLATFORM\n  [PATCH] Cirrus Logic ep93xx ethernet driver\n  r8169: the MMIO region of the 8167 stands behin BAR#1\n  e1000, ixgb: Remove pointless wrappers\n  [PATCH] Remove powerpc specific parts of 3c509 driver\n  [PATCH] s2io: Switch to pci_get_device\n  [PATCH] gt96100: move to pci_get_device API\n  [PATCH] ehea: bugfix for register access functions\n  [PATCH] e1000 disable device on PCI error\n  drivers/net/phy/fixed: #if 0 some incomplete code\n  drivers/net: const-ify ethtool_ops declarations\n  [PATCH] ethtool: allow const ethtool_ops\n  [PATCH] sky2: big endian\n  [PATCH] sky2: fiber support\n  [PATCH] sky2: tx pause bug fix\n  drivers/net: Trim trailing whitespace\n  [PATCH] ehea: IBM eHEA Ethernet Device Driver\n  ...\n\nManually resolved conflicts in drivers/net/ixgb/ixgb_main.c and\ndrivers/net/sky2.c related to CHECKSUM_HW/CHECKSUM_PARTIAL changes by\ncommit 84fa7933a33f806bbbaae6775e87459b1ec584c0 that just happened to be\nnext to unrelated changes in this update.\n"
    },
    {
      "commit": "84fa7933a33f806bbbaae6775e87459b1ec584c0",
      "tree": "5be404225d90f640997b12f631e9b496b3fd0d61",
      "parents": [
        "8584d6df39db5601965f9bc5e3bf2fea833ad7bb"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Aug 29 16:44:56 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 14:53:53 2006 -0700"
      },
      "message": "[NET]: Replace CHECKSUM_HW by CHECKSUM_PARTIAL/CHECKSUM_COMPLETE\n\nReplace CHECKSUM_HW by CHECKSUM_PARTIAL (for outgoing packets, whose\nchecksum still needs to be completed) and CHECKSUM_COMPLETE (for\nincoming packets, device supplied full checksum).\n\nPatch originally from Herbert Xu, updated by myself for 2.6.18-rc3.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "76fd85937097a0c2ec8ab23bf21dc10992d1c398",
      "tree": "0a3dfbacda717b9c55dfd25f6b773016a9a8910a",
      "parents": [
        "f65b138ca94326bbffe06ddc28e65606a249e58e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Fri Sep 08 11:16:13 2006 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 13 13:30:47 2006 -0400"
      },
      "message": "[PATCH] ethtool: allow const ethtool_ops\n\nThe ethtool_ops structure is immutable, it expected to be setup\nby the driver and is never changed. This patch allows drivers to\ndeclare there ethtool_ops structure read-only.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "78eb887733ec8ff5d6e6c69e3c32a187a9303622",
      "tree": "1028d082b0240f04f1b0d8f91b9e2813e329710c",
      "parents": [
        "8311731afc439f508ab4d759edadedae75afb73e"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Aug 17 18:22:32 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 17 18:22:32 2006 -0700"
      },
      "message": "[BRIDGE]: Disable SG/GSO if TX checksum is off\n\nWhen the bridge recomputes features, it does not maintain the\nconstraint that SG/GSO must be off if TX checksum is off.\nThis patch adds that constraint.\n\nOn a completely unrelated note, I\u0027ve also added TSO6 and TSO_ECN\nfeature bits if GSO is enabled on the underlying device through\nthe new NETIF_F_GSO_SOFTWARE macro.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7ea49ed73c8d0d0bdf7c11fc18c61572d2d22176",
      "tree": "09cf48c5f48bdee89b7a2579ba4c7b072ca842e9",
      "parents": [
        "774bd8613d0188cda72408f8ffce258d73953cad"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 14 17:08:36 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Aug 17 16:29:46 2006 -0700"
      },
      "message": "[VLAN]: Make sure bonding packet drop checks get done in hwaccel RX path.\n\nSince __vlan_hwaccel_rx() is essentially bypassing the\nnetif_receive_skb() call that would have occurred if we did the VLAN\ndecapsulation in software, we are missing the skb_bond() call and the\nassosciated checks it does.\n\nExport those checks via an inline function, skb_bond_should_drop(),\nand use this in __vlan_hwaccel_rx().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "53c4b2cc7a05c034fd21d104d2ab43ea8cc0e075",
      "tree": "ede0678aaf5f3262773f10f64a221bef671cda55",
      "parents": [
        "bf9915cc55cb8d18d4e3a8de3d1578a9af4a2e8b"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jul 21 14:55:38 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 21 14:55:38 2006 -0700"
      },
      "message": "[NET]: Fix reversed error test in netif_tx_trylock\n\nA non-zero return value indicates success from spin_trylock,\nnot error.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a430a43d087545c96542ee64573237919109d370",
      "tree": "653b630298505d5a65e2e094868d83014e4b0dc4",
      "parents": [
        "89114afd435a486deb8583e89f490fc274444d18"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jul 08 13:34:56 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 08 13:34:56 2006 -0700"
      },
      "message": "[NET] gso: Fix up GSO packets with broken checksums\n\nCertain subsystems in the stack (e.g., netfilter) can break the partial\nchecksum on GSO packets.  Until they\u0027re fixed, this patch allows this to\nwork by recomputing the partial checksums through the GSO mechanism.\n\nOnce they\u0027ve all been converted to update the partial checksum instead of\nclearing it, this workaround can be removed.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "89114afd435a486deb8583e89f490fc274444d18",
      "tree": "800e784ba59755f9f3c9926a6992e1d0f5b8eec7",
      "parents": [
        "9c6c6795eda34e4dc38ecac912a16b6314082beb"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jul 08 13:34:32 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 08 13:34:32 2006 -0700"
      },
      "message": "[NET] gso: Add skb_is_gso\n\nThis patch adds the wrapper function skb_is_gso which can be used instead\nof directly testing skb_shinfo(skb)-\u003egso_size.  This makes things a little\nnicer and allows us to change the primary key for indicating whether an skb\nis GSO (if we ever want to do that).\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f83ef8c0b58dac17211a4c0b6df0e2b1bd6637b1",
      "tree": "61661a587df97cb2a9f73b5d0d1cf30f09644051",
      "parents": [
        "bcd76111178ebccedd46a9b3eaff65c78e5a70af"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jun 30 13:37:03 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 30 14:12:10 2006 -0700"
      },
      "message": "[IPV6]: Added GSO support for TCPv6\n\nThis patch adds GSO support for IPv6 and TCPv6.  This is based on a patch\nby Ananda Raju \u003cAnanda.Raju@neterion.com\u003e.  His original description is:\n\n\tThis patch enables TSO over IPv6. Currently Linux network stacks\n\trestricts TSO over IPv6 by clearing of the NETIF_F_TSO bit from\n\t\"dev-\u003efeatures\". This patch will remove this restriction.\n\n\tThis patch will introduce a new flag NETIF_F_TSO6 which will be used\n\tto check whether device supports TSO over IPv6. If device support TSO\n\tover IPv6 then we don\u0027t clear of NETIF_F_TSO and which will make the\n\tTCP layer to create TSO packets. Any device supporting TSO over IPv6\n\twill set NETIF_F_TSO6 flag in \"dev-\u003efeatures\" along with NETIF_F_TSO.\n\n\tIn case when user disables TSO using ethtool, NETIF_F_TSO will get\n\tcleared from \"dev-\u003efeatures\". So even if we have NETIF_F_TSO6 we don\u0027t\n\tget TSO packets created by TCP layer.\n\n\tSKB_GSO_TCPV4 renamed to SKB_GSO_TCP to make it generic GSO packet.\n\tSKB_GSO_UDPV4 renamed to SKB_GSO_UDP as UFO is not a IPv4 feature.\n\tUFO is supported over IPv6 also\n\n\tThe following table shows there is significant improvement in\n\tthroughput with normal frames and CPU usage for both normal and jumbo.\n\n\t--------------------------------------------------\n\t|          |     1500        |      9600         |\n\t|          ------------------|-------------------|\n\t|          | thru     CPU    |  thru     CPU     |\n\t--------------------------------------------------\n\t| TSO OFF  | 2.00   5.5% id  |  5.66   20.0% id  |\n\t--------------------------------------------------\n\t| TSO ON   | 2.63   78.0 id  |  5.67   39.0% id  |\n\t--------------------------------------------------\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bcd76111178ebccedd46a9b3eaff65c78e5a70af",
      "tree": "b0f059f3cb19d425d30cf42b2088aca4cae12a0a",
      "parents": [
        "adcfc7d0b4d7bc3c7edac6fdde9f3ae510bd6054"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jun 30 13:36:35 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 30 14:12:08 2006 -0700"
      },
      "message": "[NET]: Generalise TSO-specific bits from skb_setup_caps\n\nThis patch generalises the TSO-specific bits from sk_setup_caps by adding\nthe sk_gso_type member to struct sock.  This makes sk_setup_caps generic\nso that it can be used by TCPv6 or UFO.\n\nThe only catch is that whoever uses this must provide a GSO implementation\nfor their protocol which I think is a fair deal :) For now UFO continues to\nlive without a GSO implementation which is OK since it doesn\u0027t use the sock\ncaps field at the moment.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b0da8537037f337103348f239ad901477e907aa8",
      "tree": "498a5dceb0d536fa54dcf4acc26ae1d1b43dfaf1",
      "parents": [
        "877ce7c1b3afd69a9b1caeb1b9964c992641f52a"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "mchan@broadcom.com",
        "time": "Thu Jun 29 12:30:00 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Jun 29 16:58:08 2006 -0700"
      },
      "message": "[NET]: Add ECN support for TSO\n\nIn the current TSO implementation, NETIF_F_TSO and ECN cannot be\nturned on together in a TCP connection.  The problem is that most\nhardware that supports TSO does not handle CWR correctly if it is set\nin the TSO packet.  Correct handling requires CWR to be set in the\nfirst packet only if it is set in the TSO header.\n\nThis patch adds the ability to turn on NETIF_F_TSO and ECN using\nGSO if necessary to handle TSO packets with CWR set.  Hardware\nthat handles CWR correctly can turn on NETIF_F_TSO_ECN in the dev-\u003e\nfeatures flag.\n\nAll TSO packets with CWR set will have the SKB_GSO_TCPV4_ECN set.  If\nthe output device does not have the NETIF_F_TSO_ECN feature set, GSO\nwill split the packet up correctly with CWR only set in the first\nsegment.\n\nWith help from Herbert Xu \u003cherbert@gondor.apana.org.au\u003e.\n\nSince ECN can always be enabled with TSO, the SOCK_NO_LARGESEND sock\nflag is completely removed.\n\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d6b4991ad5d1a9840e12db507be1a6593def01fe",
      "tree": "c2485275dae3e4cff7b86cffb91bfc8a7bb8bacd",
      "parents": [
        "4ee303dfeac6451b402e3d8512723d3a0f861857"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jun 29 12:25:53 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Jun 29 16:58:04 2006 -0700"
      },
      "message": "[NET]: Fix logical error in skb_gso_ok\n\nThe test in skb_gso_ok is backwards.  Noticed by Michael Chan\n\u003cmchan@broadcom.com\u003e.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "576a30eb6453439b3c37ba24455ac7090c247b5a",
      "tree": "e0c427a61e3de5c93e797c09903d910f6f060e64",
      "parents": [
        "68c1692e3ea5d79f24cb5cc566c4a73939d13d25"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Jun 27 13:22:38 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Jun 29 16:57:53 2006 -0700"
      },
      "message": "[NET]: Added GSO header verification\n\nWhen GSO packets come from an untrusted source (e.g., a Xen guest domain),\nwe need to verify the header integrity before passing it to the hardware.\n\nSince the first step in GSO is to verify the header, we can reuse that\ncode by adding a new bit to gso_type: SKB_GSO_DODGY.  Packets with this\nbit set can only be fed directly to devices with the corresponding bit\nNETIF_F_GSO_ROBUST.  If the device doesn\u0027t have that bit, then the skb\nis fed to the GSO engine which will allow the packet to be sent to the\nhardware if it passes the header check.\n\nThis patch changes the sg flag to a full features flag.  The same method\ncan be used to implement TSO ECN support.  We simply have to mark packets\nwith CWR set with SKB_GSO_ECN so that only hardware with a corresponding\nNETIF_F_TSO_ECN can accept them.  The GSO engine can either fully segment\nthe packet, or segment the first MTU and pass the rest to the hardware for\nfurther segmentation.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6048126440dcb3ba01316f961465c0ff5a255dd1",
      "tree": "b8a58f213f510d47ca6b2e122e026a7b4339793e",
      "parents": [
        "f54d9e8d7f7dd60f26157c12acda3fc94fcd9ab7"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Jun 25 23:58:10 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 25 23:58:10 2006 -0700"
      },
      "message": "[NET]: make net/core/dev.c:netdev_nit static\n\nnetdev_nit can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "37c3185a02d4b85fbe134bf5204535405dd2c957",
      "tree": "7712fb706bb446b5b6a8ae25f365b4e135d9a1fb",
      "parents": [
        "f4c50d990dcf11a296679dc05de3873783236711"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jun 22 03:07:29 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 23 02:07:36 2006 -0700"
      },
      "message": "[NET]: Added GSO toggle\n\nThis patch adds a generic segmentation offload toggle that can be turned\non/off for each net device.  For now it only supports in TCPv4.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6a78bfcb141f963187464bac838d46a81c3882a",
      "tree": "fe30917dea1ab4cc046c6f1b8c1875373040c84a",
      "parents": [
        "7967168cefdbc63bf332d6b1548eca7cd65ebbcc"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jun 22 02:57:17 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 23 02:07:31 2006 -0700"
      },
      "message": "[NET]: Add generic segmentation offload\n\nThis patch adds the infrastructure for generic segmentation offload.\nThe idea is to tap into the potential savings of TSO without hardware\nsupport by postponing the allocation of segmented skb\u0027s until just\nbefore the entry point into the NIC driver.\n\nThe same structure can be used to support software IPv6 TSO, as well as\nUFO and segmentation offload for other relevant protocols, e.g., DCCP.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7967168cefdbc63bf332d6b1548eca7cd65ebbcc",
      "tree": "c45759149ae0acdc89d746e556a0ae278d11776d",
      "parents": [
        "d4828d85d188dc70ed172802e798d3978bb6e29e"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jun 22 02:40:14 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 23 02:07:29 2006 -0700"
      },
      "message": "[NET]: Merge TSO/UFO fields in sk_buff\n\nHaving separate fields in sk_buff for TSO/UFO (tso_size/ufo_size) is not\ngoing to scale if we add any more segmentation methods (e.g., DCCP).  So\nlet\u0027s merge them.\n\nThey were used to tell the protocol of a packet.  This function has been\nsubsumed by the new gso_type field.  This is essentially a set of netdev\nfeature bits (shifted by 16 bits) that are required to process a specific\nskb.  As such it\u0027s easy to tell whether a given device can process a GSO\nskb: you just have to and the gso_type field and the netdev\u0027s features\nfield.\n\nI\u0027ve made gso_type a conjunction.  The idea is that you have a base type\n(e.g., SKB_GSO_TCPV4) that can be modified further to support new features.\nFor example, if we add a hardware TSO type that supports ECN, they would\ndeclare NETIF_F_TSO | NETIF_F_TSO_ECN.  All TSO packets with CWR set would\nhave a gso_type of SKB_GSO_TCPV4 | SKB_GSO_TCPV4_ECN while all other TSO\npackets would be SKB_GSO_TCPV4.  This means that only the CWR packets need\nto be emulated in software.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a4cfae13cef6a700a04b13ba1d819c0641b1b26f",
      "tree": "91aa4f8be6df4494276d1a064d9f8f2b994aa367",
      "parents": [
        "be883da7594b0a2a02074e683673ae0e522566a4",
        "ff7512e1a2a3504649d3716a757f43807b6d26ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 20 17:39:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 20 17:39:53 2006 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:\n  [ATM]: fix broken uses of NIPQUAD in net/atm\n  [SCTP]: sctp_unpack_cookie() fix\n  [SCTP]: Fix unintentional change to SCTP_ASSERT when !SCTP_DEBUG\n  [NET]: Prevent multiple qdisc runs\n  [CONNECTOR]: Initialize subsystem earlier.\n  [NETFILTER]: xt_sctp: fix endless loop caused by 0 chunk length\n"
    },
    {
      "commit": "cee4cca740d209bcb4b9857baa2253d5ba4e3fbe",
      "tree": "88a23004393ea4a32cad79839479c8e653e401d6",
      "parents": [
        "2edc322d420a4cec8dbc184a1220ecd7fa9f8ae6",
        "9348f0de2d2b541b4ba64fb1f4efee9710a3d731"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 20 15:10:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 20 15:10:08 2006 -0700"
      },
      "message": "Merge git://git.infradead.org/hdrcleanup-2.6\n\n* git://git.infradead.org/hdrcleanup-2.6: (63 commits)\n  [S390] __FD_foo definitions.\n  Switch to __s32 types in joystick.h instead of C99 types for consistency.\n  Add \u003csys/types.h\u003e to headers included for userspace in \u003clinux/input.h\u003e\n  Move inclusion of \u003clinux/compat.h\u003e out of user scope in asm-x86_64/mtrr.h\n  Remove struct fddi_statistics from user view in \u003clinux/if_fddi.h\u003e\n  Move user-visible parts of drivers/s390/crypto/z90crypt.h to include/asm-s390\n  Revert include/media changes: Mauro says those ioctls are only used in-kernel(!)\n  Include \u003clinux/types.h\u003e and use __uXX types in \u003clinux/cramfs_fs.h\u003e\n  Use __uXX types in \u003clinux/i2o_dev.h\u003e, include \u003clinux/ioctl.h\u003e too\n  Remove private struct dx_hash_info from public view in \u003clinux/ext3_fs.h\u003e\n  Include \u003clinux/types.h\u003e and use __uXX types in \u003clinux/affs_hardblocks.h\u003e\n  Use __uXX types in \u003clinux/divert.h\u003e for struct divert_blk et al.\n  Use __u32 for elf_addr_t in \u003casm-powerpc/elf.h\u003e, not u32. It\u0027s user-visible.\n  Remove PPP_FCS from user view in \u003clinux/ppp_defs.h\u003e, remove __P mess entirely\n  Use __uXX types in user-visible structures in \u003clinux/nbd.h\u003e\n  Don\u0027t use \u0027u32\u0027 in user-visible struct ip_conntrack_old_tuple.\n  Use __uXX types for S390 DASD volume label definitions which are user-visible\n  S390 BIODASDREADCMB ioctl should use __u64 not u64 type.\n  Remove unneeded inclusion of \u003clinux/time.h\u003e from \u003clinux/ufs_fs.h\u003e\n  Fix private integer types used in V4L2 ioctls.\n  ...\n\nManually resolve conflict in include/linux/mtd/physmap.h\n"
    },
    {
      "commit": "48d83325b61043e3bbd24dd37b9fe433744cf330",
      "tree": "00dc0682be0f096676ac885152b4ae14c4137338",
      "parents": [
        "d6cc7f1a3b33c89c91b3dfce1ff053178893470e"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jun 19 23:57:59 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 19 23:57:59 2006 -0700"
      },
      "message": "[NET]: Prevent multiple qdisc runs\n\nHaving two or more qdisc_run\u0027s contend against each other is bad because\nit can induce packet reordering if the packets have to be requeued.  It\nappears that this is an unintended consequence of relinquinshing the queue\nlock while transmitting.  That in turn is needed for devices that spend a\nlot of time in their transmit routine.\n\nThere are no advantages to be had as devices with queues are inherently\nsingle-threaded (the loopback device is not but then it doesn\u0027t have a\nqueue).\n\nEven if you were to add a queue to a parallel virtual device (e.g., bolt\na tbf filter in front of an ipip tunnel device), you would still want to\nprocess the queue in sequence to ensure that the packets are ordered\ncorrectly.\n\nThe solution here is to steal a bit from net_device to prevent this.\n\nBTW, as qdisc_restart is no longer used by anyone as a module inside the\nkernel (IIRC it used to with netif_wake_queue), I have not exported the\nnew __qdisc_run function.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8648b3053bff39a7ee4c711d74268079c928a657",
      "tree": "6de70eedf63c4b965d04040323827f1bc520ccdf",
      "parents": [
        "00b7050426da8e7e58c889c5c80a19920d2d41b3"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jun 17 22:06:05 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 17 22:06:05 2006 -0700"
      },
      "message": "[NET]: Add NETIF_F_GEN_CSUM and NETIF_F_ALL_CSUM\n\nThe current stack treats NETIF_F_HW_CSUM and NETIF_F_NO_CSUM\nidentically so we test for them in quite a few places.  For the sake\nof brevity, I\u0027m adding the macro NETIF_F_GEN_CSUM for these two.  We\nalso test the disjunct of NETIF_F_IP_CSUM and the other two in various\nplaces, for that purpose I\u0027ve added NETIF_F_ALL_CSUM.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "932ff279a43ab7257942cddff2595acd541cc49b",
      "tree": "e60130673a20d71becdac858c2589d8dfbf3ae1f",
      "parents": [
        "bf0857ea32addb6bc8b46383604b218b8ec09f19"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jun 09 12:20:56 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:30:14 2006 -0700"
      },
      "message": "[NET]: Add netif_tx_lock\n\nVarious drivers use xmit_lock internally to synchronise with their\ntransmission routines.  They do so without setting xmit_lock_owner.\nThis is fine as long as netpoll is not in use.\n\nWith netpoll it is possible for deadlocks to occur if xmit_lock_owner\nisn\u0027t set.  This is because if a printk occurs while xmit_lock is held\nand xmit_lock_owner is not set can cause netpoll to attempt to take\nxmit_lock recursively.\n\nWhile it is possible to resolve this by getting netpoll to use\ntrylock, it is suboptimal because netpoll\u0027s sole objective is to\nmaximise the chance of getting the printk out on the wire.  So\ndelaying or dropping the message is to be avoided as much as possible.\n\nSo the only alternative is to always set xmit_lock_owner.  The\nfollowing patch does this by introducing the netif_tx_lock family of\nfunctions that take care of setting/unsetting xmit_lock_owner.\n\nI renamed xmit_lock to _xmit_lock to indicate that it should not be\nused directly.  I didn\u0027t provide irq versions of the netif_tx_lock\nfunctions since xmit_lock is meant to be a BH-disabling lock.\n\nThis is pretty much a straight text substitution except for a small\nbug fix in winbond.  It currently uses\nnetif_stop_queue/spin_unlock_wait to stop transmission.  This is\nunsafe as an IRQ can potentially wake up the queue.  So it is safer to\nuse netif_tx_disable.\n\nThe hamradio bits used spin_lock_irq but it is unnecessary as\nxmit_lock must never be taken in an IRQ handler.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "db21733488f84a596faaad0d05430b3f51804692",
      "tree": "a2c1f6d39ce27d2e86b395f2bf536c1ab7396411",
      "parents": [
        "57c651f74cd8383df10a648e677902849de1bc0b"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Sat Jun 17 21:24:58 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 17 21:24:58 2006 -0700"
      },
      "message": "[I/OAT]: Setup the networking subsystem as a DMA client\n\nAttempts to allocate per-CPU DMA channels\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "66643de455c27973ac31ad6de9f859d399916842",
      "tree": "7ebed7f051879007d4b11d6aaa9e65a1bcb0b08f",
      "parents": [
        "2c23d62abb820e19c54012520f08a198c2233a85",
        "387e2b0439026aa738a9edca15a57e5c0bcb4dfc"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed May 24 09:22:21 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed May 24 09:22:21 2006 +0100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tinclude/asm-powerpc/unistd.h\n\tinclude/asm-sparc/unistd.h\n\tinclude/asm-sparc64/unistd.h\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "b17a7c179dd3ce7d04373fddf660eda21efc9db9",
      "tree": "9f141fc2919a0aab95237812f48fa3cd0a169806",
      "parents": [
        "a50bb7b9af9a7c39b2aba15678eb686ae428718c"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Wed May 10 13:21:17 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 10 13:21:17 2006 -0700"
      },
      "message": "[NET]: Do sysfs registration as part of register_netdevice.\n\nThe last step of netdevice registration was being done by a delayed\ncall, but because it was delayed, it was impossible to return any error\ncode if the class_device registration failed.\n\nSide effects:\n * one state in registration process is unnecessary.\n * register_netdevice can sleep inside class_device registration/hotplug\n * code in netdev_run_todo only does unregistration so it is simpler.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d324031245abbb54e4e0321004430826052b6c37",
      "tree": "23dda7055fce9675263fe992c3beda27f1161650",
      "parents": [
        "6810b548b25114607e0814612d84125abccc0a4f"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Mon May 08 15:11:26 2006 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Mon May 08 16:00:23 2006 -0700"
      },
      "message": "sky2: backout NAPI reschedule\n\nThis is a backout of earlier patch.\n\nThe whole rescheduling hack was a bad idea. It doesn\u0027t really solve\nthe problem and it makes the code more complicated for no good reason.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\n"
    },
    {
      "commit": "fe9925b551a95fae6ec61470c79f8b701a2fe928",
      "tree": "3df1817dee3c804d155e3a1c52b6ff696bc60293",
      "parents": [
        "1498221d51a43d5fa1a580618591497d90f957d9"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Sat May 06 17:56:03 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 06 17:56:03 2006 -0700"
      },
      "message": "[NET]: Create netdev attribute_groups with class_device_add\n\nAtomically create attributes when class device is added. This avoids\nthe race between registering class_device (which generates hotplug\nevent), and the creation of attribute groups.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d6754b401a15eaa16492ea5dbaa4826361d3f411",
      "tree": "032f067d3af458527d903a7653885404ed82431e",
      "parents": [
        "acc429a517bd11fdcac9bea97d082d26231beb92",
        "693f7d362055261882659475d2ef022e32edbff1"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@shinybook.infradead.org",
        "time": "Sat Apr 29 01:42:26 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Sat Apr 29 01:42:26 2006 +0100"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "734cbc363b159caee158d5a83408c72d98bcacf0",
      "tree": "14d903eaf2b7580f791af9fd0d2800f1eb91723f",
      "parents": [
        "3b908870b8332dfd40be0e919e187aa4991536fb"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Tue Apr 25 10:58:50 2006 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Apr 26 06:19:45 2006 -0400"
      },
      "message": "[PATCH] sky2: reschedule if irq still pending\n\nThis is a workaround for the case edge-triggered irq\u0027s. Several users\nseem to have broken configurations sharing edge-triggered irq\u0027s. To avoid\nlosing IRQ\u0027s, reshedule if more work arrives.\n\nThe changes to netdevice.h are to extract the part that puts device\nback in list into separate inline.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "56079431b6ba163df8ba26b3eccc82379f0c0ce4",
      "tree": "cdcfb1fdee55c567603ede007c7b0c91efe29b3a",
      "parents": [
        "68907dad58cd7ef11536e1db6baeb98b20af91b2"
      ],
      "author": {
        "name": "Denis Vlasenko",
        "email": "vda@ilport.com.ua",
        "time": "Wed Mar 29 15:57:29 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 29 15:57:29 2006 -0800"
      },
      "message": "[NET]: Deinline some larger functions from netdevice.h\n\nOn a allyesconfig\u0027ured kernel:\n\nSize  Uses Wasted Name and definition\n\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n   95  162  12075 netif_wake_queue      include/linux/netdevice.h\n  129   86   9265 dev_kfree_skb_any     include/linux/netdevice.h\n  127   56   5885 netif_device_attach   include/linux/netdevice.h\n   73   86   4505 dev_kfree_skb_irq     include/linux/netdevice.h\n   46   60   1534 netif_device_detach   include/linux/netdevice.h\n  119   16   1485 __netif_rx_schedule   include/linux/netdevice.h\n  143    5    492 netif_rx_schedule     include/linux/netdevice.h\n   81    7    366 netif_schedule        include/linux/netdevice.h\n\nnetif_wake_queue is big because __netif_schedule is a big inline:\n\nstatic inline void __netif_schedule(struct net_device *dev)\n{\n        if (!test_and_set_bit(__LINK_STATE_SCHED, \u0026dev-\u003estate)) {\n                unsigned long flags;\n                struct softnet_data *sd;\n\n                local_irq_save(flags);\n                sd \u003d \u0026__get_cpu_var(softnet_data);\n                dev-\u003enext_sched \u003d sd-\u003eoutput_queue;\n                sd-\u003eoutput_queue \u003d dev;\n                raise_softirq_irqoff(NET_TX_SOFTIRQ);\n                local_irq_restore(flags);\n        }\n}\n\nstatic inline void netif_wake_queue(struct net_device *dev)\n{\n#ifdef CONFIG_NETPOLL_TRAP\n        if (netpoll_trap())\n                return;\n#endif\n        if (test_and_clear_bit(__LINK_STATE_XOFF, \u0026dev-\u003estate))\n                __netif_schedule(dev);\n}\n\nBy de-inlining __netif_schedule we are saving a lot of text\nat each callsite of netif_wake_queue and netif_schedule.\n__netif_rx_schedule is also big, and it makes more sense to keep\nboth of them out of line.\n\nPatch also deinlines dev_kfree_skb_any. We can deinline dev_kfree_skb_irq\ninstead... oh well.\n\nnetif_device_attach/detach are not hot paths, we can deinline them too.\n\nSigned-off-by: Denis Vlasenko \u003cvda@ilport.com.ua\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "153330618691694af64f39fb56c9de051862380e",
      "tree": "45ccb622bf0d13f6a0a663ba8af39f9dc2c9122e",
      "parents": [
        "2d0817d11eaec57435feb61493331a763f732a2b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Mon Mar 20 22:32:28 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:32:28 2006 -0800"
      },
      "message": "[NET]: dev_put/dev_hold cleanup\n\nGet rid of the old __dev_put macro that is just a hold over from pre 2.6\nkernel.  And turn dev_hold into an inline instead of a macro.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "b00055aacdb172c05067612278ba27265fcd05ce"
}
