)]}'
{
  "log": [
    {
      "commit": "cc6533e98a7f3cb7fce9d740da49195c7aa523a4",
      "tree": "23b1a33c9c6894f799808e7dcbcf3afeb1d71192",
      "parents": [
        "c27f339af90bb874a7a9c680b17abfd32d4a727b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 04 23:04:08 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 04 23:04:08 2008 -0700"
      },
      "message": "net: Kill plain NET_XMIT_BYPASS.\n\ndst_input() was doing something completely absurd, looping\non skb-\u003edst-\u003einput() if NET_XMIT_BYPASS was seen, but these\nfunctions never return such an error.\n\nAnd as a result plain ole\u0027 NET_XMIT_BYPASS has no more\nreferences and can be completely killed off.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "378a2f090f7a478704a372a4869b8a9ac206234e",
      "tree": "cf324a45a9dc21231d1d3225c51c9d5d2b57bbee",
      "parents": [
        "6e583ce5242f32e925dcb198f7123256d0798370"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Mon Aug 04 22:31:03 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 04 22:31:03 2008 -0700"
      },
      "message": "net_sched: Add qdisc __NET_XMIT_STOLEN flag\n\nPatrick McHardy \u003ckaber@trash.net\u003e noticed:\n\"The other problem that affects all qdiscs supporting actions is\nTC_ACT_QUEUED/TC_ACT_STOLEN getting mapped to NET_XMIT_SUCCESS\neven though the packet is not queued, corrupting upper qdiscs\u0027\nqlen counters.\"\n\nand later explained:\n\"The reason why it translates it at all seems to be to not increase\nthe drops counter. Within a single qdisc this could be avoided by\nother means easily, upper qdiscs would still increase the counter\nwhen we return anything besides NET_XMIT_SUCCESS though.\n\nThis means we need a new NET_XMIT return value to indicate this to\nthe upper qdiscs. So I\u0027d suggest to introduce NET_XMIT_STOLEN,\nreturn that to upper qdiscs and translate it to NET_XMIT_SUCCESS\nin dev_queue_xmit, similar to NET_XMIT_BYPASS.\"\n\nDavid Miller \u003cdavem@davemloft.net\u003e noticed:\n\"Maybe these NET_XMIT_* values being passed around should be a set of\nbits. They could be composed of base meanings, combined with specific\nattributes.\n\nSo you could say \"NET_XMIT_DROP | __NET_XMIT_NO_DROP_COUNT\"\n\nThe attributes get masked out by the top-level -\u003eenqueue() caller,\nsuch that the base meanings are the only thing that make their\nway up into the stack. If it\u0027s only about communication within the\nqdisc tree, let\u0027s simply code it that way.\"\n\nThis patch is trying to realize these ideas.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c3f26a269c2421f97f10cf8ed05d5099b573af4d",
      "tree": "d0602cbb48742b3e39ab6bdcaa08c342d4cd2cae",
      "parents": [
        "967ab999a090b1a4e7d3c7febfd6d89b42fb4cf4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 31 16:58:50 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 31 16:58:50 2008 -0700"
      },
      "message": "netdev: Fix lockdep warnings in multiqueue configurations.\n\nWhen support for multiple TX queues were added, the\nnetif_tx_lock() routines we converted to iterate over\nall TX queues and grab each queue\u0027s spinlock.\n\nThis causes heartburn for lockdep and it\u0027s not a healthy\nthing to do with lots of TX queues anyways.\n\nSo modify this to use a top-level lock and a \"frozen\"\nstate for the individual TX queues.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d29f749e252bcdbfe7a75a58f0ee92da16f127c0",
      "tree": "701734c2beed075d603d28cc4a343ecf1d4e475b",
      "parents": [
        "b32d13102d39ed411d152a7ffcc5f66d5b3b1b49"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Jul 22 14:09:06 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 22 14:09:06 2008 -0700"
      },
      "message": "net: Fix build failure with \u0027make mandocs\u0027.\n\nThe function header comments have to go with the functions\nthey are documenting, or things go horribly wrong when we\ntry to process them with the docbook tools.\n\nWarning(include/linux/netdevice.h:1006): No description found for parameter \u0027dev_queue\u0027\nWarning(include/linux/netdevice.h:1033): No description found for parameter \u0027dev_queue\u0027\nWarning(include/linux/netdevice.h:1067): No description found for parameter \u0027dev_queue\u0027\nWarning(include/linux/netdevice.h:1093): No description found for parameter \u0027dev_queue\u0027\nWarning(include/linux/netdevice.h:1474): No description found for parameter \u0027txq\u0027\nError(net/core/dev.c:1674): cannot understand prototype: \u0027u32 simple_tx_hashrnd; \u0027\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6579e57b31d79d31d9b806e41ba48774e73257dc",
      "tree": "03ba72024a1982ee76b8a891a443b0fdfb6d7c93",
      "parents": [
        "7943986ca1138ac99597b1aa4dc893012dcfdc08"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Jul 21 13:31:48 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 21 13:31:48 2008 -0700"
      },
      "message": "net: Print the module name as part of the watchdog message\n\nAs suggested by Dave:\n\nThis patch adds a function to get the driver name from a struct net_device,\nand consequently uses this in the watchdog timeout handler to print as \npart of the message. \n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3072367300aa8c779e3a14ee8e89de079e90f3ad",
      "tree": "7f74c5b8fdb300532fbbc83ba00d6d1d17af020e",
      "parents": [
        "72b25a913ed9b1ab49c7022adaf3f271a65ea219"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 22:50:15 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 22:50:15 2008 -0700"
      },
      "message": "pkt_sched: Manage qdisc list inside of root qdisc.\n\nIdea is from Patrick McHardy.\n\nInstead of managing the list of qdiscs on the device level, manage it\nin the root qdisc of a netdev_queue.  This solves all kinds of\nvisibility issues during qdisc destruction.\n\nThe way to iterate over all qdiscs of a netdev_queue is to visit\nthe netdev_queue-\u003eqdisc, and then traverse it\u0027s list.\n\nThe only special case is to ignore builting qdiscs at the root when\ndumping or doing a qdisc_lookup().  That was not needed previously\nbecause builtin qdiscs were not added to the device\u0027s qdisc_list.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "83874000929ed63aef30b44083a9f713135ff040",
      "tree": "7646fd185751cad8665eca19aa3f87d13c37eade",
      "parents": [
        "c7e4f3bbb4ba4e48ab3b529d5016e454cee1ccd6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 00:53:03 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:30 2008 -0700"
      },
      "message": "pkt_sched: Kill netdev_queue lock.\n\nWe can simply use the qdisc-\u003eq.lock for all of the\nqdisc tree synchronization.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ead81cc5fc6d996db6afb20f211241612610a07a",
      "tree": "5ffc3c7960f6ba755fe6e44eda0b82cdb8209180",
      "parents": [
        "15b458fa65cbba395724a99ab1b7d3785ca76c1c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 00:50:32 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:26 2008 -0700"
      },
      "message": "netdevice: Move qdisc_list back into net_device proper.\n\nAnd give it it\u0027s own lock.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "37437bb2e1ae8af470dfcd5b4ff454110894ccaf",
      "tree": "1795e78a7648252b0c92c972df12b776a28437d7",
      "parents": [
        "7698b4fcabcd790efc4f226bada1e7b5870653af"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 02:15:04 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:20 2008 -0700"
      },
      "message": "pkt_sched: Schedule qdiscs instead of netdev_queue.\n\nWhen we have shared qdiscs, packets come out of the qdiscs\nfor multiple transmit queues.\n\nTherefore it doesn\u0027t make any sense to schedule the transmit\nqueue when logically we cannot know ahead of time the TX\nqueue of the SKB that the qdisc-\u003edequeue() will give us.\n\nJust for sanity I added a BUG check to make sure we never\nget into a state where the noop_qdisc is scheduled.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e2627c8c2241bce45e368e150654d076b58a4595",
      "tree": "e3ad7d1867339f254a324ba1acd5d8bdac1aca76",
      "parents": [
        "d3b753db7c4f1f37a98b51974d484fda5d86dab5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 00:56:32 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:18 2008 -0700"
      },
      "message": "pkt_sched: Make QDISC_RUNNING a qdisc state.\n\nCurrently it is associated with a netdev_queue, but when we have\nqdisc sharing that no longer makes any sense.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d3b753db7c4f1f37a98b51974d484fda5d86dab5",
      "tree": "6596288854d9626f935ddf9c014471a4c38b5c74",
      "parents": [
        "b4c21639ab0f6df07ab7624a8c2f974936708ae5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 20:14:35 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:18 2008 -0700"
      },
      "message": "pkt_sched: Move gso_skb into Qdisc.\n\nWe liberate any dangling gso_skb during qdisc destruction.\n\nIt really only matters for the root qdisc.  But when qdiscs\ncan be shared by multiple netdev_queue objects, we can\u0027t\nhave the gso_skb in the netdev_queue any more.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "92831bc395ac8390bf759775c50cb6f90c6eb03d",
      "tree": "cd112263fde634090d10e53eb722eab5b03ee2ed",
      "parents": [
        "263ba3204a434d0ca851e1321b31cd58376b86cb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 03:48:01 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:16 2008 -0700"
      },
      "message": "netdev: Kill plain netif_schedule()\n\nNo more users.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eae792b722fef08dcf3aee88266ee7def9710757",
      "tree": "a864c90974a8e998d56ee9f04801eb3f81a6bacf",
      "parents": [
        "e3c50d5d25ac09efd9acbe2b2a3e365466de84ed"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 03:03:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:10 2008 -0700"
      },
      "message": "netdev: Add netdev-\u003eselect_queue() method.\n\nDevices or device layers can set this to control the queue selection\nperformed by dev_pick_tx().\n\nThis function runs under RCU protection, which allows overriding\nfunctions to have some way of synchronizing with things like dynamic\n-\u003ereal_num_tx_queues adjustments.\n\nThis makes the spinlock prefetch in dev_queue_xmit() a little bit\nless effective, but that\u0027s the price right now for correctness.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e3c50d5d25ac09efd9acbe2b2a3e365466de84ed",
      "tree": "dc5bc3322f9e4829c2143fc4fc60532fd84ab9a1",
      "parents": [
        "6b0fb1261a4655613bed5dac0e935e733969e999"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 02:58:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:09 2008 -0700"
      },
      "message": "netdev: netdev_priv() can now be sane again.\n\nThe private area of a netdev is now at a fixed offset once more.\n\nUnfortunately, some assumptions that netdev_priv() \u003d\u003d netdev-\u003epriv\ncrept back into the tree.  In particular this happened in the\nloopback driver.  Make it use netdev-\u003eml_priv.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6b0fb1261a4655613bed5dac0e935e733969e999",
      "tree": "2f6a57f1c0e674a0a56be42de2f6f9251472616b",
      "parents": [
        "fd2ea0a79faad824258af5dcec1927aa24d81c16"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 02:58:10 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:08 2008 -0700"
      },
      "message": "netdev: Kill struct net_device_subqueue and netdev-\u003eegress_subqueue*\n\nNo longer used.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fd2ea0a79faad824258af5dcec1927aa24d81c16",
      "tree": "644fd4ce92227cc319c7a54c63ea07a96b8c6b8d",
      "parents": [
        "24344d2600108b9b79a60c0e4c43b3c499856d14"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 01:56:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:07 2008 -0700"
      },
      "message": "net: Use queue aware tests throughout.\n\nThis effectively \"flips the switch\" by making the core networking\nand multiqueue-aware drivers use the new TX multiqueue structures.\n\nNon-multiqueue drivers need no changes.  The interfaces they use such\nas netif_stop_queue() degenerate into an operation on TX queue zero.\nSo everything \"just works\" for them.\n\nCode that really wants to do \"X\" to all TX queues now invokes a\nroutine that does so, such as netif_tx_wake_all_queues(),\nnetif_tx_stop_all_queues(), etc.\n\npktgen and netpoll required a little bit more surgery than the others.\n\nIn particular the pktgen changes, whilst functional, could be largely\nimproved.  The initial check in pktgen_xmit() will sometimes check the\nwrong queue, which is mostly harmless.  The thing to do is probably to\ninvoke fill_packet() earlier.\n\nThe bulk of the netpoll changes is to make the code operate solely on\nthe TX queue indicated by by the SKB queue mapping.\n\nSetting of the SKB queue mapping is entirely confined inside of\nnet/core/dev.c:dev_pick_tx().  If we end up needing any kind of\nspecial semantics (drops, for example) it will be implemented here.\n\nFinally, we now have a \"real_num_tx_queues\" which is where the driver\nindicates how many TX queues are actually active.\n\nWith IGB changes from Jeff Kirsher.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "09e83b5d7d1878065e2453239b49b684cd0fe4e5",
      "tree": "a08d06c81d7bcd47e432443e24b126101ea1f2b9",
      "parents": [
        "e8a0464cc950972824e2e128028ae3db666ec1ed"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 01:52:12 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:03 2008 -0700"
      },
      "message": "netdev: Kill NETIF_F_MULTI_QUEUE.\n\nThere is no need for a feature bit for something that\ncan be tested by simply checking the TX queue count.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e8a0464cc950972824e2e128028ae3db666ec1ed",
      "tree": "5022b95396c0f3b313531bc39b19543c03551b9a",
      "parents": [
        "070825b3840a743e21ebcc44f8279708a4fed977"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 00:34:19 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:00 2008 -0700"
      },
      "message": "netdev: Allocate multiple queues for TX.\n\nalloc_netdev_mq() now allocates an array of netdev_queue\nstructures for TX, based upon the queue_count argument.\n\nFurthermore, all accesses to the TX queues are now vectored\nthrough the netdev_get_tx_queue() and netdev_for_each_tx_queue()\ninterfaces.  This makes it easy to grep the tree for all\nthings that want to get to a TX queue of a net device.\n\nProblem spots which are not really multiqueue aware yet, and\nonly work with one queue, can easily be spotted by grepping\nfor all netdev_get_tx_queue() calls that pass in a zero index.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e308a5d806c852f56590ffdd3834d0df0cbed8d7",
      "tree": "294ff654e90950f5162737c26f4799b0b710b748",
      "parents": [
        "f1f28aa3510ddb84c966bac65611bb866c77a092"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 00:13:44 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 00:13:44 2008 -0700"
      },
      "message": "netdev: Add netdev-\u003eaddr_list_lock protection.\n\nAdd netif_addr_{lock,unlock}{,_bh}() helpers.\n\nUse them to protect operations that operate on or read\nthe network device unicast and multicast address lists.\n\nAlso use them in cases where the code simply wants to\nblock calls into the driver\u0027s -\u003eset_rx_mode() and\n-\u003eset_multicast_list() methods.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f1f28aa3510ddb84c966bac65611bb866c77a092",
      "tree": "dc8509a61667c52ee43df64bf69566569538b691",
      "parents": [
        "f66ac03d497c162c70cd0ccc802ce1777073cdf3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 00:08:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 00:08:33 2008 -0700"
      },
      "message": "netdev: Add addr_list_lock to struct net_device.\n\nThis will be used to protect the per-device unicast and multicast\naddress lists, as well as the callbacks into the drivers which\nconfigure such state such as -\u003eset_rx_mode() and -\u003eset_multicast_list().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bc1d0411b804ad190cdadabac48a10067f17b9e6",
      "tree": "0a38da614b6bb46f2ffa2378aca25043a2b33a7c",
      "parents": [
        "6aa895b047720f71ec4eb11452f7c3ce8426941f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jul 14 22:49:30 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 22:49:30 2008 -0700"
      },
      "message": "vlan: deliver packets received with VLAN acceleration to network taps\n\nWhen VLAN header stripping is used, packets currently bypass packet\nsockets (and other network taps) completely. For locally existing\nVLANs, they appear directly on the VLAN device, for unknown VLANs\nthey are silently dropped.\n\nAdd a new function netif_nit_deliver() to deliver incoming packets\nto all network interface taps and use it in __vlan_hwaccel_rx() to\nmake VLAN packets visible on the underlying device.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d8156534040996f6a93a24d3592d5d587f2587e5",
      "tree": "3b9528f1551560502af9d8686b4615551fe38795",
      "parents": [
        "d3352520273426e4c16e91d189aa8aa7ee5e96c5"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Tue Jul 08 15:13:05 2008 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jul 11 01:20:33 2008 -0400"
      },
      "message": "net: add netif_napi_del function to allow for removal of napistructs\n\nAdds netif_napi_del function which is used to remove the napi struct from\nthe netdev napi_list in cases where CONFIG_NETPOLL was enabled.\nThe motivation for adding this is to handle the case in which the number of\nqueues on a device changes due to a configuration change.  Previously the\nnapi structs for each queue would be left in the list until the netdev was\nfreed.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "79d16385c7f287a33ea771c4dbe60ae43f791b49",
      "tree": "858bfe84e52d88356d5d0b49efc5148a0870ccf9",
      "parents": [
        "b19fa1fa91845234961c64dbd564671aa7c0fd27"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:14:46 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:14:46 2008 -0700"
      },
      "message": "netdev: Move atomic queue state bits into netdev_queue.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b19fa1fa91845234961c64dbd564671aa7c0fd27",
      "tree": "efb09da87299ef503b59396b69a7667f1650e378",
      "parents": [
        "c773e847ea8f6812804e40f52399c6921a00eab1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:14:24 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:14:24 2008 -0700"
      },
      "message": "net: Delete NETDEVICES_MULTIQUEUE kconfig option.\n\nMultiple TX queue support is a core networking feature.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c773e847ea8f6812804e40f52399c6921a00eab1",
      "tree": "952e0e262cc0b0f2136bc2a62938ae1d186f896a",
      "parents": [
        "eb6aafe3f843cb0e939546c03540a3b4911b6964"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:13:53 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:13:53 2008 -0700"
      },
      "message": "netdev: Move _xmit_lock and xmit_lock_owner into netdev_queue.\n\nAccesses are mostly structured such that when there are multiple TX\nqueues the code transformations will be a little bit simpler.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "86d804e10a37cd86f16bf72386c37e843a98a74b",
      "tree": "04483a937f11c752aea998298a27fc79e6851b2d",
      "parents": [
        "970565bbad0c7b98db0d14131a69e5a0f4445d49"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:11:25 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:11:25 2008 -0700"
      },
      "message": "netdev: Make netif_schedule() routines work with netdev_queue objects.\n\nOnly plain netif_schedule() remains taking a net_device, mostly as a\ncompatability item while we transition the rest of these interfaces.\n\nEverything else calls netif_schedule_queue() or __netif_schedule(),\nboth of which take a netdev_queue pointer.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "970565bbad0c7b98db0d14131a69e5a0f4445d49",
      "tree": "59ac641da5b22bb5ea6a0a333ceaa907f9959d10",
      "parents": [
        "c2aa288548a29d909ec875e81137fb0dbbb420b7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:10:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:10:33 2008 -0700"
      },
      "message": "netdev: Move gso_skb into netdev_queue.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee609cb36220d18c0cf476b066a5ab7e6f6d3a69",
      "tree": "7b6675143c304a82ffe52943cf94e6f822da303e",
      "parents": [
        "74d58a0c1d5b348a8d4ea9643b573a6ab455a3f3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 22:58:37 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 22:58:37 2008 -0700"
      },
      "message": "netdev: Move next_sched into struct netdev_queue.\n\nWe schedule queues, not the device, for output queue processing in BH.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "816f3258e70db38d6d92c8d871377179fd69160f",
      "tree": "7ab28132592c82e2ac40317733ea1dd7d6f4e5b5",
      "parents": [
        "b0e1e6462df3c5944010b3328a546d8fe5d932cd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 22:49:00 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 22:49:00 2008 -0700"
      },
      "message": "netdev: Kill qdisc_ingress, use netdev-\u003erx_queue.qdisc instead.\n\nNow that our qdisc management is bi-directional, per-queue, and fully\northogonal, there is no reason to have a special ingress qdisc pointer\nin struct net_device.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b0e1e6462df3c5944010b3328a546d8fe5d932cd",
      "tree": "37e3f86d09d8b37deb06cf1c142baeb8246bbf97",
      "parents": [
        "555353cfa1aee293de445bfa6de43276138ddd82"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 17:42:10 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 17:42:10 2008 -0700"
      },
      "message": "netdev: Move rest of qdisc state into struct netdev_queue\n\nNow qdisc, qdisc_sleeping, and qdisc_list also live there.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "555353cfa1aee293de445bfa6de43276138ddd82",
      "tree": "b5daba85806b8e36731c4a474aac97f1a0140a51",
      "parents": [
        "dc2b48475a0a36f8b3bbb2da60d3a006dc5c2c84"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 17:33:13 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 17:33:13 2008 -0700"
      },
      "message": "netdev: The ingress_lock member is no longer needed.\n\nEvery qdisc is assosciated with a queue, and in the case of ingress\nqdiscs that will now be netdev-\u003erx_queue so using that queue\u0027s lock is\nthe thing to do.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dc2b48475a0a36f8b3bbb2da60d3a006dc5c2c84",
      "tree": "b2421a338840bd1c675f4f91de7c7cf03863fb78",
      "parents": [
        "5ce2d488fe039ddd86a638496cf704df86c74eeb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 17:18:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 17:18:23 2008 -0700"
      },
      "message": "netdev: Move queue_lock into struct netdev_queue.\n\nThe lock is now an attribute of the device queue.\n\nOne thing to notice is that \"suspicious\" places\nemerge which will need specific training about\nmultiple queue handling.  They are so marked with\nexplicit \"netdev-\u003erx_queue\" and \"netdev-\u003etx_queue\"\nreferences.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bb949fbd1878973c3539d9aecff52f284482a937",
      "tree": "e8bde854b18be79723502167c16e2131914a75b7",
      "parents": [
        "e65d22e18038eed7307276e46810d884c402d57d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 16:55:56 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 16:55:56 2008 -0700"
      },
      "message": "netdev: Create netdev_queue abstraction.\n\nA netdev_queue is an entity managed by a qdisc.\n\nCurrently there is one RX and one TX queue, and a netdev_queue merely\ncontains a backpointer to the net_device.\n\nThe Qdisc struct is augmented with a netdev_queue pointer as well.\n\nEventually the \u0027dev\u0027 Qdisc member will go away and we will have the\nresulting hierarchy:\n\n\tnet_device --\u003e netdev_queue --\u003e Qdisc\n\nAlso, qdisc_alloc() and qdisc_create_dflt() now take a netdev_queue\npointer argument.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eca9ebac651f774d8b10fce7c5d173c3c3d3394f",
      "tree": "58b4117a0820dff43d4faa7fdcae5cd7723674c7",
      "parents": [
        "7c85fbf0657f216557b0c9c4a2e4e07f37d8bb8c"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 05 21:26:13 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 05 21:26:13 2008 -0700"
      },
      "message": "net: Add GARP applicant-only participant\n\nAdd an implementation of the GARP (Generic Attribute Registration Protocol)\napplicant-only participant. This will be used by the following patch to\nadd GVRP support to the VLAN code.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1b63ba8a86c85524a8d7e5953b314ce71ebcb9c9",
      "tree": "fe3dc41cbb47ae12b7c3faf6a88b097349e50d5a",
      "parents": [
        "e35c3269edba151e1c703d87068a28ce2cd65bb0",
        "d420895efb259a78dda50f95289571faa6e10e41"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 28 01:19:40 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 28 01:19:40 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/wireless/iwlwifi/iwl4965-base.c\n"
    },
    {
      "commit": "c88e6f51c2154c7606f7e281bcca2d1a2c89d7b2",
      "tree": "b26181f438bff08e6f63afe73c1b66ed240dcbec",
      "parents": [
        "ede16af4cdbd21fa15d4178beb7c6fcbcccd07e9"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jun 27 19:54:54 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 27 19:54:54 2008 -0700"
      },
      "message": "include/linux/netdevice.h: don\u0027t export MAX_HEADER to userspace\n\nDue to the CONFIG_\u0027s the value is anyway not correct in userspace.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0187bdfb05674147774ca79a79942537f3ad54bd",
      "tree": "43980261ce9e2b6ef76356dbbbc7efe3dbb60a02",
      "parents": [
        "2e3216cd54b142ba605e87522e15f42e0c4e3996"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Thu Jun 19 16:15:47 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 19 16:15:47 2008 -0700"
      },
      "message": "net: Disable LRO on devices that are forwarding\n\nLarge Receive Offload (LRO) is only appropriate for packets that are\ndestined for the host, and should be disabled if received packets may be\nforwarded.  It can also confuse the GSO on output.\n\nAdd dev_disable_lro() function which uses the appropriate ethtool ops to\ndisable LRO if enabled.\n\nAdd calls to dev_disable_lro() in br_add_if() and functions that enable\nIPv4 and IPv6 forwarding.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dad9b335c6940de2746a9788eb456d09cf102f81",
      "tree": "c74092de70d7c2c9ba88bf580bc404133b55c490",
      "parents": [
        "dd574dbfcc9e74e7dd8fd59ae0075d23e71a3da1"
      ],
      "author": {
        "name": "Wang Chen",
        "email": "wangchen@cn.fujitsu.com",
        "time": "Wed Jun 18 01:48:28 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 18 01:48:28 2008 -0700"
      },
      "message": "netdevice: Fix promiscuity and allmulti overflow\n\nMax of promiscuity and allmulti plus positive @inc can cause overflow.\nFox example: when allmulti\u003d0xFFFFFFFF, any caller give dev_set_allmulti() a\npositive @inc will cause allmulti be off.\nThis is not what we want, though it\u0027s rare case.\nThe fix is that only negative @inc will cause allmulti or promiscuity be off\nand when any caller makes the counters touch the roof, we return error.\n\nChange of v2:\nChange void function dev_set_promiscuity/allmulti to return int.\nSo callers can get the overflow error.\nCaller\u0027s fix will be done later.\n\nChange of v3:\n1. Since we return error to caller, we don\u0027t need to print KERN_ERROR,\nKERN_WARNING is enough.\n2. In dev_set_promiscuity(), if __dev_set_promiscuity() failed, we\nreturn at once.\n\nSigned-off-by: Wang Chen \u003cwangchen@cn.fujitsu.com\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5bbc1722d52ad3df062d5742a7e958276e57ebd7",
      "tree": "8aa544f9a8623fba2fae933819627ceb839eac1f",
      "parents": [
        "30902dc3cb0ea1cfc7ac2b17bcf478ff98420d74",
        "ae7b6487ec9c2e2a1551b9d291aa0dbbe0addf48"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 17 21:37:14 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 17 21:37:14 2008 -0700"
      },
      "message": "Merge branch \u0027davem-next\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6\n"
    },
    {
      "commit": "9d45abe1c2949183e5d9cb25721bf1c42c7b5e3b",
      "tree": "00bbbbcd31baaaf431b4cd2529542eb9db603fda",
      "parents": [
        "cb61cb9b8b5ef6c2697d84e5015e314626eb2fba"
      ],
      "author": {
        "name": "Wang Chen",
        "email": "wangchen@cn.fujitsu.com",
        "time": "Tue Jun 17 21:12:48 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 17 21:12:48 2008 -0700"
      },
      "message": "netdevice: change net_device-\u003epromiscuity/allmulti to unsigned int\n\nThe comments of dev_set_allmulti/promiscuity() is that \"While the count in\nthe device remains above zero...\". So negative count is useless.\nFix the type of the counter from \"int\" to \"unsigned int\".\n\nSigned-off-by: Wang Chen \u003cwangchen@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b8a9787eddb0e4665f31dd1d64584732b2b5d051",
      "tree": "08b7537e70b6a96bc04d231d31ccd644e1387e62",
      "parents": [
        "b59f9f74c4c0a569398f08c34a877f1b7b457496"
      ],
      "author": {
        "name": "Jay Vosburgh",
        "email": "fubar@us.ibm.com",
        "time": "Fri Jun 13 18:12:04 2008 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Jun 18 00:00:04 2008 -0400"
      },
      "message": "bonding: Allow setting max_bonds to zero\n\n\tPermit bonding to function rationally if max_bonds is set to\nzero.  This will load the module, but create no master devices (which can\nbe created via sysfs).\n\n\tRequires some change to bond_create_sysfs; currently, the\nnetdev sysfs directory is determined from the first bonding device created,\nbut this is no longer possible.  Instead, an interface from net/core is\ncreated to create and destroy files in net_class.\n\n\tBased on a patch submitted by Phil Oester \u003ckernel@linuxaces.com\u003e.\nModified by Jay Vosburgh to fix the sysfs issue mentioned above and to\nupdate the documentation.\n\nSigned-off-by: Phil Oester \u003ckernel@linuxace.com\u003e\nSigned-off-by: Jay Vosburgh \u003cfubar@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c1da4ac752b8b0411791d26c678fcf23d2eed242",
      "tree": "294fdfa9180e3094d0f3537255594feaf345bd8c",
      "parents": [
        "743d32ad3688a6035374885809e1e982adbf16b1"
      ],
      "author": {
        "name": "Or Gerlitz",
        "email": "ogerlitz@voltaire.com",
        "time": "Fri Jun 13 18:12:00 2008 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Jun 17 23:59:41 2008 -0400"
      },
      "message": "net/core: add NETDEV_BONDING_FAILOVER event\n\nAdd NETDEV_BONDING_FAILOVER event to be used in a successive patch\nby bonding to announce fail-over for the active-backup mode through the\nnetdev events notifier chain mechanism. Such an event can be of use for the\nRDMA CM (communication manager) to let native RDMA ULPs (eg NFS-RDMA, iSER)\nalways be aligned with the IP stack, in the sense that they use the same\nports/links as the stack does. More usages can be done to allow monitoring\ntools based on netlink events being aware to bonding fail-over.\n\nSigned-off-by: Or Gerlitz \u003cogerlitz@voltaire.com\u003e\nSigned-off-by: Jay Vosburgh \u003cfubar@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "289c79a4bd350e8a25065102563ad1a183d1b402",
      "tree": "2067cb054704c62c3debfe92a3f00dc551ff7162",
      "parents": [
        "7bece8155be133cd67c41eed2b31c60a310609de"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri May 23 00:22:04 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 23 00:27:50 2008 -0700"
      },
      "message": "vlan: Use bitmask of feature flags instead of seperate feature bits\n\nHerbert Xu points out that the use of seperate feature bits for features\nto be propagated to VLAN devices is going to get messy real soon.\nReplace the VLAN feature bits by a bitmask of feature flags to be\npropagated and restore the old GSO_SHIFT/MASK values.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5fb13570543f4ae022996c9d7c0c099c8abf22dd",
      "tree": "bf0f837d4b2dd778c32cf8fcf719913203f1cd39",
      "parents": [
        "7ff6e6f779960e1078a78b60a881571c04f52b9b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue May 20 14:54:50 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 20 14:54:50 2008 -0700"
      },
      "message": "[VLAN]: Propagate selected feature bits to VLAN devices\n\nPropagate feature bits from the NETDEV_FEAT_CHANGE notifier. For now\nonly TSO is propagated for devices that announce their ability to\nsupport TSO in combination with VLAN accel by setting the NETIF_F_VLAN_TSO\nflag.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f5184d267c1aedb9b7a8cc44e08ff6b8d382c3b5",
      "tree": "5ccce7558f9e1e53e5b189d6e2fe62a667988ac8",
      "parents": [
        "8388e3da34edb141362bb42811ee487dfec15525"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon May 12 20:48:31 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 12 20:48:31 2008 -0700"
      },
      "message": "net: Allow netdevices to specify needed head/tailroom\n\nThis patch adds needed_headroom/needed_tailroom members to struct\nnet_device and updates many places that allocate sbks to use them. Not\nall of them can be converted though, and I\u0027m sure I missed some (I\nmostly grepped for LL_RESERVED_SPACE)\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8388e3da34edb141362bb42811ee487dfec15525",
      "tree": "0d2eaece7f0eb72151d31276af0644bc913b5246",
      "parents": [
        "f403ede70518c131ba8bebbacaf182927a58a315"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 12 20:17:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 12 20:17:33 2008 -0700"
      },
      "message": "net: Set LL_MAX_HEADER properly for wireless.\n\nWireless networking, particularly with MESH enabled, has\nquite strong requirements for link-layer header space.\n\nBased upon some numbers and descriptions from Johannes Berg\nwe use 96 (same as AX25) for plain wireless, and with\nmesh enabled we use 128.\n\nIn the process, simplify the cpp conditional logic here by\nordering the cases by those needing the most space down\nto those needing the least case.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4951704b4e23d71b99ac933d8e6993bc6225ac13",
      "tree": "afcc69d6ec071f5d0bb19517635e9b3cf8f668ba",
      "parents": [
        "c4492586a618d18e8a5343a04bad0ec606064846"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 12 03:29:11 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 12 03:29:11 2008 -0700"
      },
      "message": "syncppp: Fix crashes.\n\nThe syncppp layer wants a mid-level netdev private pointer.\n\nIt was using netdev-\u003epriv but that only worked by accident,\nand thus this scheme was broken when the device private\nallocation strategy changed.\n\nAdd a proper mid-layer private pointer for uses like this,\nupdate syncppp and all users, and remove the HDLC_PPP broken\ntag from drivers/net/wan/Kconfig\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f3005d7f4abe03ad41af33b1548602cd086d86a2",
      "tree": "937c5b6ba6089f93fa4f0a11a37ab07a8564e398",
      "parents": [
        "3661a910836a509be65afc3c1e512d900e1280f9"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Wed Apr 16 02:02:18 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 16 02:02:18 2008 -0700"
      },
      "message": "[NETNS]: Add netns refcnt debug for network devices.\n\ndev_set_net is called for\n- just allocated devices\n- devices moving from one namespace to another\nrelease_net has proper check inside to distinguish these cases.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a4aa834a9165150252c5cd953faab4de29d51b87",
      "tree": "e96e20355057dfabd279b7b7c94fedeffed4e020",
      "parents": [
        "e1ec1b8ccdf0df6000faa8c2d985ca5f94157e5a"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Apr 03 13:04:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 03 13:04:33 2008 -0700"
      },
      "message": "[NETNS]: Declare init_net even without CONFIG_NET defined.\n\nThis does not look good, but there is no other choice. The compilation\nwithout CONFIG_NET is broken and can not be fixed with ease.\n\nAfter that there is no need for the following commits:\n1567ca7eec7664b8be3b07755ac59dc1b1ec76cb\n3edf8fa5ccf10688a9280b5cbca8ed3947c42866\n2d38f9a4f8d2ebdc799f03eecf82345825495711\n\nRevert them.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e1ec1b8ccdf0df6000faa8c2d985ca5f94157e5a",
      "tree": "4e1ca325dde22f1ac21c9da0be509e87e922e604",
      "parents": [
        "c0f39322c335412339dec16ebfd2a05ceba5ebcf",
        "802fb176d8c635ae42da31b80841c26e8c7338a0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 02 22:35:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 02 22:35:23 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/s2io.c\n"
    },
    {
      "commit": "3edf8fa5ccf10688a9280b5cbca8ed3947c42866",
      "tree": "800b92fde2349d42a7bf24175ce1190fd4406557",
      "parents": [
        "17eed249539a7b756ca65a5cb0940abc48ef553b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 31 00:28:14 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 31 00:28:14 2008 -0700"
      },
      "message": "[NET]: Fix allnoconfig build on powerpc and avr32\n\nAs reported by Haavard Skinnemoen and Stephen Rothwell:\n\n\u003e allnoconfig fails with\n\u003e\n\u003e include/linux/netdevice.h:843: error: implicit declaration of function \u0027dev_net\u0027\n\u003e\n\u003e which seems to be because the definition of dev_net is inside #ifdef\n\u003e CONFIG_NET, while next_net_device, which calls it, is not.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0ef4730927c54cac5006759fa0cf50fbeff9d191",
      "tree": "a52e975ce5060f0d25a5fb1db44cc08105469616",
      "parents": [
        "a5a04819c5740cb1aa217af2cc8f5ef26f33d744"
      ],
      "author": {
        "name": "Matti Linnanvuori",
        "email": "mattilinnanvuori@yahoo.com",
        "time": "Fri Mar 28 16:33:00 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 28 16:33:00 2008 -0700"
      },
      "message": "net: Comment dev_kfree_skb_irq and dev_kfree_skb_any better\n\nComment dev_kfree_skb_irq and dev_kfree_skb_any better.\n\nSigned-off-by: Matti Linnanvuori \u003cmattilinnanvuori@yahoo.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1567ca7eec7664b8be3b07755ac59dc1b1ec76cb",
      "tree": "8df2dcce884a6fee6d6cdb87ca9d3d7ad8b23675",
      "parents": [
        "0736ffc04eec239cce9fd3c6ae5dce54e14c25c7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 28 15:53:11 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 28 15:53:11 2008 -0700"
      },
      "message": "[NET]: Protect device namespace inlines with CONFIG_NET\n\nInclude sites should not be bothered by whether\nCONFIG_NET is set or not when trying to include\nbenign files like linux/etherdevice.h et al.\n\nFrom a report by Stephen Rothwell.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8e8e43843ba3ced0c657cbc0fdb10644ec60f772",
      "tree": "e64954326ced9c365c52c256f01b5f9fb1bcae66",
      "parents": [
        "ed85f2c3b2b72bd20f617ac749f5c22be8d0f66e",
        "50fd4407b8bfbde7c1a0bfe4f24de7df37164342"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 27 18:48:56 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 27 18:48:56 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/usb/rndis_host.c\n\tdrivers/net/wireless/b43/dma.c\n\tnet/ipv6/ndisc.c\n"
    },
    {
      "commit": "50fd4407b8bfbde7c1a0bfe4f24de7df37164342",
      "tree": "57a9f05b130903fb2c6c12412352928bb24dc3a7",
      "parents": [
        "8eeee8b152ae6bbe181518efaf62ba8e9c613693"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 27 17:42:50 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 27 17:42:50 2008 -0700"
      },
      "message": "[NET]: Use local_irq_{save,restore}() in napi_complete().\n\nBased upon a lockdep report.\n\nSince -\u003epoll() can be invoked from netpoll with interrupts\ndisabled, we must not unconditionally enable interrupts\nin napi_complete().\n\nInstead we must use local_irq_{save,restore}().\n\nNoticed by Peter Zijlstra:\n\n\u003cirqs disabled\u003e\n\n  netpoll_poll()\n    poll_napi()\n      spin_trylock(\u0026napi-\u003epoll_lock)\n      poll_one_napi()\n        napi-\u003epoll() :\u003d sky2_poll()\n          napi_complete()\n            local_irq_disable()\n            local_irq_enable() \u003c--- *BUG*\n\n  \u003cirq\u003e\n    irq_exit()\n      do_softirq()\n        net_rx_action()\n          spin_lock(\u0026napi-\u003epoll_lock) \u003c--- Deadlock!\n\nBecause we still hold the lock....\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f5aa23fd49063745f85644dd7a9330acd706add6",
      "tree": "51ff4c7006fe7f7551b29f24ec1830e19dc7a278",
      "parents": [
        "9c2f5746b9cd536f0007709196d85a7e7d0070fa"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Wed Mar 26 00:48:17 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 26 00:48:17 2008 -0700"
      },
      "message": "[NETNS]: Compilation warnings under CONFIG_NET_NS.\n\nRecent commits from YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nhave been introduced a several compilation warnings\n\u0027assignment discards qualifiers from pointer target type\u0027\ndue to extra const modifier in the inline call parameters of\n{dev|sock|twsk}_net_set.\n\nDrop it.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9c2f5746b9cd536f0007709196d85a7e7d0070fa",
      "tree": "d368ab8a2f969090f2ed6d399ef50afe555cfa53",
      "parents": [
        "14eabf70c82cade5dbc71d2e913d533193a91785"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Wed Mar 26 00:47:14 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 26 00:47:14 2008 -0700"
      },
      "message": "[NETNS]: Compilation fix for include/linux/netdevice.h.\n\nCommit commit c346dca10840a874240c78efe3f39acf4312a1f2\n([NET] NETNS: Omit net_device-\u003end_net without CONFIG_NET_NS)\nbreaks compilation with CONFIG_NET_NS set.\n\nFix the typo.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\n"
    },
    {
      "commit": "c346dca10840a874240c78efe3f39acf4312a1f2",
      "tree": "c04cff20124eba5cc337cc5ec260ad2513eeb065",
      "parents": [
        "7cbca67c073263c179f605bdbbdc565ab29d801d"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Tue Mar 25 21:47:49 2008 +0900"
      },
      "committer": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 26 04:39:53 2008 +0900"
      },
      "message": "[NET] NETNS: Omit net_device-\u003end_net without CONFIG_NET_NS.\n\nIntroduce per-net_device inlines: dev_net(), dev_net_set().\nWithout CONFIG_NET_NS, no namespace other than \u0026init_net exists.\nLet\u0027s explicitly define them to help compiler optimizations.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    },
    {
      "commit": "82cc1a7a56872056af0ead6c7d695aa223f36695",
      "tree": "0891cf854a40cac90fc4fec3bd6b5ecb213d4452",
      "parents": [
        "a25606c845856e5ca5ed54d23cab077e3a49bf10"
      ],
      "author": {
        "name": "Peter P Waskiewicz Jr",
        "email": "peter.p.waskiewicz.jr@intel.com",
        "time": "Fri Mar 21 03:43:19 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 21 03:43:19 2008 -0700"
      },
      "message": "[NET]: Add per-connection option to set max TSO frame size\n\nUpdate: My mailer ate one of Jarek\u0027s feedback mails...  Fixed the\nparameter in netif_set_gso_max_size() to be u32, not u16.  Fixed the\nwhitespace issue due to a patch import botch.  Changed the types from\nu32 to unsigned int to be more consistent with other variables in the\narea.  Also brought the patch up to the latest net-2.6.26 tree.\n\nUpdate: Made gso_max_size container 32 bits, not 16.  Moved the\nlocation of gso_max_size within netdev to be less hotpath.  Made more\nconsistent names between the sock and netdev layers, and added a\ndefine for the max GSO size.\n\nUpdate: Respun for net-2.6.26 tree.\n\nUpdate: changed max_gso_frame_size and sk_gso_max_size from signed to\nunsigned - thanks Stephen!\n\nThis patch adds the ability for device drivers to control the size of\nthe TSO frames being sent to them, per TCP connection.  By setting the\nnetdevice\u0027s gso_max_size value, the socket layer will set the GSO\nframe size based on that value.  This will propogate into the TCP\nlayer, and send TSO\u0027s of that size to the hardware.\n\nThis can be desirable to help tune the bursty nature of TSO on a\nper-adapter basis, where one may have 1 GbE and 10 GbE devices\ncoexisting in a system, one running multiqueue and the other not, etc.\n\nThis can also be desirable for devices that cannot support full 64 KB\nTSO\u0027s, but still want to benefit from some level of segmentation\noffloading.\n\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6866fecd6fd8e44a6715da09844a4fd1b8484da",
      "tree": "a166c399ddb37a48035589ffda29ef05d236c4b4",
      "parents": [
        "4ee29f6a52158cea526b16a44ae38643946103ec",
        "997b37da1515c1620692521786a74af271664eb7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 15 07:33:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 15 07:33:07 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (82 commits)\n  [NET]: Make sure sockets implement splice_read\n  netconsole: avoid null pointer dereference at show_local_mac()\n  [IPV6]: Fix reversed local_df test in ip6_fragment\n  [XFRM]: Avoid bogus BUG() when throwing new policy away.\n  [AF_KEY]: Fix bug in spdadd\n  [NETFILTER] nf_conntrack_proto_tcp.c: Mistyped state corrected.\n  net: xfrm statistics depend on INET\n  [NETFILTER]: make secmark_tg_destroy() static\n  [INET]: Unexport inet_listen_wlock\n  [INET]: Unexport __inet_hash_connect\n  [NET]: Improve cache line coherency of ingress qdisc\n  [NET]: Fix race in dev_close(). (Bug 9750)\n  [IPSEC]: Fix bogus usage of u64 on input sequence number\n  [RTNETLINK]: Send a single notification on device state changes.\n  [NETLABLE]: Hide netlbl_unlabel_audit_addr6 under ifdef CONFIG_IPV6.\n  [NETLABEL]: Don\u0027t produce unused variables when IPv6 is off.\n  [NETLABEL]: Compilation for CONFIG_AUDIT\u003dn case.\n  [GENETLINK]: Relax dances with genl_lock.\n  [NETLABEL]: Fix lookup logic of netlbl_domhsh_search_def.\n  [IPV6]: remove unused method declaration (net/ndisc.h).\n  ...\n"
    },
    {
      "commit": "b3c97528689619fc66569b30bf83d09d9929521a",
      "tree": "91dc53590deab88c9bf255c2b5cbd74bdbc36de1",
      "parents": [
        "aa02cd2d9bd1e24a230bd66a0a741b984d03915a"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Feb 13 15:03:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 13 16:21:18 2008 -0800"
      },
      "message": "include/linux: Remove all users of FASTCALL() macro\n\nFASTCALL() is always expanded to empty, remove it.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5bd0146f0d61f7dc9904a7cc6d5cb9832034de4",
      "tree": "1f299bab2a11c790571a71177b189f8f3a216ba5",
      "parents": [
        "d8b2a4d21e0b37b9669b202867bfef19f68f786a"
      ],
      "author": {
        "name": "Neil Turton",
        "email": "nturton@solarflare.com",
        "time": "Tue Feb 12 23:13:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 12 23:13:48 2008 -0800"
      },
      "message": "[NET]: Improve cache line coherency of ingress qdisc\n\nMove the ingress qdisc members of struct net_device from the transmit\ncache line to the receive cache line to avoid cache line ping-pong.\nThese members are only used on the receive path.\n\nSigned-off-by: Neil Turton \u003cnturton@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "f25f4e44808f0f6c9875d94ef1c41ef86c288eb2"
}
