)]}'
{
  "log": [
    {
      "commit": "53e915034970935596703a6005cde27c2128b5c3",
      "tree": "6bb1b4270bf1984f235a18bf578497d0dd21d7a3",
      "parents": [
        "52cd5750e81ec8d213949fa7c0d2e08907bf498b"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Wed Oct 08 11:36:22 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 08 11:36:22 2008 -0700"
      },
      "message": "pkt_sched: Update qdisc requeue stats in dev_requeue_skb()\n\nAfter the last change of requeuing there is no info about such\nincidents in tc stats. This patch updates the counter, but we should\nconsider this should differ from previous stats because of additional\nchecks preventing to repeat this. On the other hand, previous stats\ndidn\u0027t include requeuing of gso_segmented skbs.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "916a917dfec18535ff9e2afdafba82e6279eb4f4",
      "tree": "ebd2e944684f3f1a9c184e3e69d06d1465ed2f69",
      "parents": [
        "a2df1648ba615dd5908e9a1fa7b2f133fa302487"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Oct 08 11:35:20 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:20 2008 +0200"
      },
      "message": "netfilter: xtables: provide invoked family value to extensions\n\nBy passing in the family through which extensions were invoked, a bit\nof data space can be reclaimed. The \"family\" member will be added to\nthe parameter structures and the check functions be adjusted.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "a2df1648ba615dd5908e9a1fa7b2f133fa302487",
      "tree": "a70a2424cc660903fbcb8120344d80e62df4b0c4",
      "parents": [
        "af5d6dc200eb0fcc6fbd3df1ab4d8969004cb37f"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Oct 08 11:35:19 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:19 2008 +0200"
      },
      "message": "netfilter: xtables: move extension arguments into compound structure (6/6)\n\nThis patch does this for target extensions\u0027 destroy functions.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "af5d6dc200eb0fcc6fbd3df1ab4d8969004cb37f",
      "tree": "06f5805d0a98a421f23380bdb044f93216204b9d",
      "parents": [
        "7eb3558655aaa87a3e71a0c065dfaddda521fa6d"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Oct 08 11:35:19 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:19 2008 +0200"
      },
      "message": "netfilter: xtables: move extension arguments into compound structure (5/6)\n\nThis patch does this for target extensions\u0027 checkentry functions.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "7eb3558655aaa87a3e71a0c065dfaddda521fa6d",
      "tree": "724466c66c96f14b0378fab87040d8393bc05c8b",
      "parents": [
        "6be3d8598e883fb632edf059ba2f8d1b9f4da138"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Oct 08 11:35:19 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:19 2008 +0200"
      },
      "message": "netfilter: xtables: move extension arguments into compound structure (4/6)\n\nThis patch does this for target extensions\u0027 target functions.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "367c679007fa4f990eb7ee381326ec59d8148b0e",
      "tree": "a543f22332eba9ef972ed8ea6e66448921671ef7",
      "parents": [
        "147c3844ad381b58715a6ee2ea697594e3c06284"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Oct 08 11:35:17 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:17 2008 +0200"
      },
      "message": "netfilter: xtables: do centralized checkentry call (1/2)\n\nIt used to be that {ip,ip6,etc}_tables called extension-\u003echeckentry\nthemselves, but this can be moved into the xtables core.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "6252352d16f7b45a0fd42224f7e70e0288dc4480",
      "tree": "5740210fbe67fb754c47a13cf6d18d4e09a10015",
      "parents": [
        "554794de7949d1a6279336404c066f974d4c2bde"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Mon Oct 06 10:41:50 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 06 10:41:50 2008 -0700"
      },
      "message": "pkt_sched: Simplify dev_requeue_skb and dequeue_skb\n\nqdisc-\u003erequeue was planned to universally replace all requeuing code,\nbut at the top level we never requeue more than one skb, so qdisc-\u003e\ngso_skb is enough for this. qdisc-\u003erequeue would be used on the lower\nlevels only for one level deep requeuing (like in sch_hfsc) after\nfinishing all the changes.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "554794de7949d1a6279336404c066f974d4c2bde",
      "tree": "90cb890a68bdf6c9947ddfc451f798bffb8f8990",
      "parents": [
        "13c1d18931ebb5cf407cb348ef2cd6284d68902d"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Mon Oct 06 09:54:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 06 09:54:39 2008 -0700"
      },
      "message": "pkt_sched: Fix handling of gso skbs on requeuing\n\nJay Cliburn noticed and diagnosed a bug triggered in\ndev_gso_skb_destructor() after last change from qdisc-\u003egso_skb\nto qdisc-\u003erequeue list. Since gso_segmented skbs can\u0027t be queued\nto another list this patch brings back qdisc-\u003egso_skb for them.\n\nReported-by: Jay Cliburn \u003cjcliburn@gmail.com\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ebf059821ed8a36acd706484b719d14d212ada32",
      "tree": "44b2ee2887113ea5d90b35f4c4ae1a376f38e94f",
      "parents": [
        "f0876520b0b721bedafd9cec3b1b0624ae566eee"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Mon Sep 22 22:16:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 22 22:16:23 2008 -0700"
      },
      "message": "pkt_sched: Check the state of tx_queue in dequeue_skb()\n\nCheck in dequeue_skb() the state of tx_queue for requeued skb to save\non locking and re-requeuing, and possibly remove the current check in\nqdisc_run(). Based on the idea of Alexander Duyck.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f0876520b0b721bedafd9cec3b1b0624ae566eee",
      "tree": "7c1716416b9f6967172f189bb52f51eeef57db55",
      "parents": [
        "242f8bfefe4bed626df4e4727ac8f315d80b567a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 22 22:15:58 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 22 22:15:58 2008 -0700"
      },
      "message": "pkt_sched: Always use q-\u003erequeue in dev_requeue_skb().\n\nThere is no reason to call into the complicated qdiscs\njust to remember the last SKB where we found the device\nblocked.\n\nThe SKB is outside of the qdiscs realm at this point.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "242f8bfefe4bed626df4e4727ac8f315d80b567a",
      "tree": "44047828a0092e87def4e5c0edfefeadc96a89f8",
      "parents": [
        "3d09274cc9d816d62945408840a9cb76a5e7aac7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 22 22:15:30 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 22 22:15:30 2008 -0700"
      },
      "message": "pkt_sched: Make qdisc-\u003egso_skb a list.\n\nThe idea is that we can use this to get rid of\n-\u003erequeue().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d48abfecea8513cfd2fd7e341439c1b8a28e9ff4",
      "tree": "dc072211551a04a25ad50012f56dcb0fe5fa266d",
      "parents": [
        "978e9aec262d66d13ccceece93b867bfc0fcd2f1"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Sep 22 19:20:51 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 22 19:20:51 2008 -0700"
      },
      "message": "net: em_cmp.c use unaligned access helpers\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6067804047b64dde89f4f133fc7eba48ee44107d",
      "tree": "abe87787c3ad2aee82e576c7d4128e29bb296ac0",
      "parents": [
        "a574420ff46cff0245e6b0fce2e961aa2717743d"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Sep 20 22:20:49 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 20 22:20:49 2008 -0700"
      },
      "message": "net: Use hton[sl]() instead of __constant_hton[sl]() where applicable\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a574420ff46cff0245e6b0fce2e961aa2717743d",
      "tree": "5baf2134ac902803152c92733f8ed580dd9c7b75",
      "parents": [
        "618d9f25548ba6fc3a9cd2ce5cd56f4f015b0635"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Sat Sep 20 22:07:34 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 20 22:07:34 2008 -0700"
      },
      "message": "multiq: requeue should rewind the current_band\n\nCurrently dequeueing a packet and requeueing the same packet will cause a\ndifferent packet to be pulled on the next dequeue.  This change forces\nrequeue to rewind the current_band.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f07d1501292b3b0d3276ee0e537005526a45e242",
      "tree": "df132456469046ec7f71ea4ac39723450c8e3c6e",
      "parents": [
        "67333bb5679325db310bb612c1de3e6e47bb0043"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Fri Sep 12 17:57:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 12 17:57:23 2008 -0700"
      },
      "message": "multiq: Further multiqueue cleanup\n\nThis patch resolves a few issues found with multiq including wording\nsuggestions and a problem seen in the allocation of queues.\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: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ca9b0e27e072be4cef2f5f0cbc0b0fd94eae3520",
      "tree": "c236e31759299193e688cf7fe78809c24449ede1",
      "parents": [
        "92651940ab00dbe64722e908f70d816713d677b7"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Fri Sep 12 16:30:20 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 12 16:30:20 2008 -0700"
      },
      "message": "pkt_action: add new action skbedit\n\nThis new action will have the ability to change the priority and/or\nqueue_mapping fields on an sk_buff.\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: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "92651940ab00dbe64722e908f70d816713d677b7",
      "tree": "b68fdef99784bfa46b67aabaf70c19b0e5e0a144",
      "parents": [
        "78d15e82754945ee9821fb491b57faf43abfb9d7"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Fri Sep 12 16:29:34 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 12 16:29:34 2008 -0700"
      },
      "message": "pkt_sched: Add multiqueue scheduler support\n\nThis patch is intended to add a qdisc to support the new tx multiqueue\narchitecture by providing a band for each hardware queue.  By doing\nthis it is possible to support a different qdisc per physical hardware\nqueue.\n\nThis qdisc uses the skb-\u003equeue_mapping to select which band to place\nthe traffic onto.  It then uses a round robin w/ a check to see if the\nsubqueue is stopped to determine which band to dequeue the packet from.\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: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5337407c673e2c7c66a84b9838d55a45a760ecff",
      "tree": "808dca75793172fa5315af638bf04696a2c4d7cc",
      "parents": [
        "9bff9dbd00e5907f5c36e72bae8aee8a46440e11"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Sep 08 16:17:42 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 08 16:17:42 2008 -0700"
      },
      "message": "warn: Turn the netdev timeout WARN_ON() into a WARN()\n\nthis patch turns the netdev timeout WARN_ON_ONCE() into a WARN_ONCE(),\nso that the device and driver names are inside the warning message.\nThis helps automated tools like kerneloops.org to collect the data\nand do statistics, as well as making it more likely that humans\ncut-n-paste the important message as part of a bugreport.\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": "2c10b32bf57db7ec6d4cca4c4aa3d86bacb01c8a",
      "tree": "dfb1fff234209b64828d9f932a543fd96b0561e2",
      "parents": [
        "b171e19ed08c8ba832e5325fadf1be493f56665d"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Tue Sep 02 17:30:27 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 02 17:30:27 2008 -0700"
      },
      "message": "netlink: Remove compat API for nested attributes\n\nRemoves all _nested_compat() functions from the API. The prio qdisc\nno longer requires them and netem has its own format anyway. Their\nexistance is only confusing.\n\nResend: Also remove the wrapper macro.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "102396ae65108b026e4e1868e30fa013f45a169e",
      "tree": "1164f9020a3fa47460a2ab72e07c3308be2290ee",
      "parents": [
        "3cc76caa98b092a8fb3e7b4303c70f847db0651f"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Fri Aug 29 14:21:52 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 29 14:27:52 2008 -0700"
      },
      "message": "pkt_sched: Fix locking of qdisc_root with qdisc_root_sleeping_lock()\n\nUse qdisc_root_sleeping_lock() instead of qdisc_root_lock() where\nappropriate. The only difference is while dev is deactivated, when\ncurrently we can use a sleeping qdisc with the lock of noop_qdisc.\nThis shouldn\u0027t be dangerous since after deactivation root lock could\nbe used only by gen_estimator code, but looks wrong anyway.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6f9b93f1624206c802ac9162c9302edaf59bfd9",
      "tree": "643bd211bf909118311138e588a78834fad7a40d",
      "parents": [
        "f7a54c13c7b072d9426bd5cec1cdb8306df5ef55"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Wed Aug 27 02:25:17 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 27 02:25:17 2008 -0700"
      },
      "message": "pkt_sched: Fix gen_estimator locks\n\nWhile passing a qdisc root lock to gen_new_estimator() and\ngen_replace_estimator() dev could be deactivated or even before\ngrafting proper root qdisc as qdisc_sleeping (e.g. qdisc_create), so\nusing qdisc_root_lock() is not enough. This patch adds\nqdisc_root_sleeping_lock() for this, plus additional checks, where\nnecessary.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f7a54c13c7b072d9426bd5cec1cdb8306df5ef55",
      "tree": "12134183d09f0826e0488fd281e6c0b830270d37",
      "parents": [
        "666d9bbedfff7c2c37eab92e715641922dee6864"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Wed Aug 27 02:22:07 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 27 02:22:07 2008 -0700"
      },
      "message": "pkt_sched: Use rcu_assign_pointer() to change dev_queue-\u003eqdisc\n\nThese pointers are RCU protected, so proper primitives should be used.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "666d9bbedfff7c2c37eab92e715641922dee6864",
      "tree": "5df5a04cad7fb147fca45fa3afc45703765ecc7d",
      "parents": [
        "c2d42545774c4bba7232521d836d0793330e3a4e"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Wed Aug 27 02:12:52 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 27 02:15:20 2008 -0700"
      },
      "message": "pkt_sched: Fix dev_graft_qdisc() locking\n\nDuring dev_graft_qdisc() dev is deactivated, so qdisc_root_lock()\nreturns wrong lock of noop_qdisc instead of qdisc_sleeping.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6e0b239a2657ea8cb67f0d83d0bfdbfd19a481b",
      "tree": "9d6e3c97a81869fde3958cdbcf431ee3739f9b2c",
      "parents": [
        "2540e0511ea17e25831be543cdf9381e6209950d"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Fri Aug 22 03:24:05 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 22 03:31:39 2008 -0700"
      },
      "message": "pkt_sched: Fix qdisc list locking\n\nSince some qdiscs call qdisc_tree_decrease_qlen() (so qdisc_lookup())\nwithout rtnl_lock(), adding and deleting from a qdisc list needs\nadditional locking. This patch adds global spinlock qdisc_list_lock\nand wrapper functions for modifying the list. It is considered as a\ntemporary solution until hfsc_dequeue(), netem_dequeue() and\ntbf_dequeue() (or qdisc_tree_decrease_qlen()) are redone.\n\nWith feedback from Herbert Xu and David S. Miller.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2540e0511ea17e25831be543cdf9381e6209950d",
      "tree": "31c505b9957d82125cd7e779d83da0d389f9d336",
      "parents": [
        "5e739d1752aca4e8f3e794d431503bfca3162df4"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Thu Aug 21 05:11:14 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 21 05:11:14 2008 -0700"
      },
      "message": "pkt_sched: Fix qdisc_watchdog() vs. dev_deactivate() race\n\ndev_deactivate() can skip rescheduling of a qdisc by qdisc_watchdog()\nor other timer calling netif_schedule() after dev_queue_deactivate().\nWe prevent this checking aliveness before scheduling the timer. Since\nduring deactivation the root qdisc is available only as qdisc_sleeping\nadditional accessor qdisc_root_sleeping() is created.\n\nWith feedback from Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f3b9605d744df537dee10fd06630f35a62b343ec",
      "tree": "ca59a163fa700b36620358940f57f88057db7d8a",
      "parents": [
        "deb3abf15fb92a608fba630da2e8719862731714"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 18 22:33:05 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 18 22:33:05 2008 -0700"
      },
      "message": "Revert \"pkt_sched: Add BH protection for qdisc_stab_lock.\"\n\nThis reverts commit 1cfa26661a85549063e369e2b40275eeaa7b923c.\n\nqdisc_destroy() runs fully under RTNL again and not from softint any\nlonger, so this change is no longer needed.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e5befbd9525d92bb074b70192eb2c69aae65fc60",
      "tree": "ad9a3ce178096938f3ccb8c4445d71ace63f3e61",
      "parents": [
        "9f593653742d1dd816c4e94c6e5154a57ccba6d1"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Aug 18 22:30:01 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 18 22:30:01 2008 -0700"
      },
      "message": "pkt_sched: remove bogus block (cleanup)\n\n...Last block local var got just deleted.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4d8863a29c4755a0461cd31b6865026187d6c43a",
      "tree": "502b355314b1ff2e6cef52bf3778aba3bdae80cd",
      "parents": [
        "25bfcd5a78a377ea4c54a3c21e44590e2fc478a6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 18 21:03:15 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 18 21:06:19 2008 -0700"
      },
      "message": "pkt_sched: Don\u0027t hold qdisc lock over qdisc_destroy().\n\nBased upon reports by Denys Fedoryshchenko, and feedback\nand help from Jarek Poplawski and Herbert Xu.\n\nWe always either:\n\n1) Never made an external reference to this qdisc.\n\nor\n\n2) Did a dev_deactivate() which purged all asynchronous\n   references.\n\nSo do not lock the qdisc when we call qdisc_destroy(),\nit\u0027s illegal anyways as when we drop the lock this is\nfree\u0027d memory.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "25bfcd5a78a377ea4c54a3c21e44590e2fc478a6",
      "tree": "6abe3cb036c724206ec0996351aa8eec12d12b42",
      "parents": [
        "8608db031b4d2932d645709e2cfe8fbcd91a7305"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Mon Aug 18 20:53:34 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 18 21:06:09 2008 -0700"
      },
      "message": "pkt_sched: Add lockdep annotation for qdisc locks\n\nQdisc locks are initialized in the same function, qdisc_alloc(), so\nlockdep can\u0027t distinguish tx qdisc lock from rx and reports \"possible\nrecursive locking detected\" when both these locks are taken eg. while\nusing act_mirred with ifb. This looks like a false positive. Anyway,\nafter this patch these locks will be reported more exactly.\n\nReported-by: Denys Fedoryshchenko \u003cdenys@visp.net.lb\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8608db031b4d2932d645709e2cfe8fbcd91a7305",
      "tree": "01b2e63f9f28dddcb5c0dd72e9c8c5b73c866685",
      "parents": [
        "69747650c814a8a79fef412c7416adf823293a3e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 18 20:51:18 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 18 21:05:56 2008 -0700"
      },
      "message": "pkt_sched: Never schedule non-root qdiscs.\n\nBased upon initial discovery and patch by Jarek Poplawski.\n\nThe qdisc watchdogs can be attached to any qdisc, not just the root,\nso make sure we schedule the correct one.\n\nCBQ has a similar bug.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "69747650c814a8a79fef412c7416adf823293a3e",
      "tree": "c1c83e9ae903b0e93029f0071fdca544d2add340",
      "parents": [
        "96d203169d1d851ac1468f7d4459a09581be364c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 17 23:55:36 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 18 00:39:41 2008 -0700"
      },
      "message": "pkt_sched: Fix return value corruption in HTB and TBF.\n\nBased upon a bug report by Josip Rodin.\n\nPacket schedulers should only return NET_XMIT_DROP iff\nthe packet really was dropped.  If the packet does reach\nthe device after we return NET_XMIT_DROP then TCP can\ncrash because it depends upon the enqueue path return\nvalues being accurate.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4cf7cb280e4fcfcd7ae7429e17d798d3a44087af",
      "tree": "d0635d3fa1dcb475efb576b25818be66aa99e479",
      "parents": [
        "0d40b6e564bad2047b57a9afc48b701ef3243b89"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 17 22:45:17 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 17 22:45:17 2008 -0700"
      },
      "message": "sch_prio: Use NET_XMIT_SUCCESS instead of \"0\" constant.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0d40b6e564bad2047b57a9afc48b701ef3243b89",
      "tree": "66ec0052d32deacef2892a1cb9c3708b8add5027",
      "parents": [
        "1e0d5a5747772182d1bb2525d8153da640fdfb58"
      ],
      "author": {
        "name": "Jussi Kivilinna",
        "email": "jussi.kivilinna@mbnet.fi",
        "time": "Sun Aug 17 22:43:56 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 17 22:43:56 2008 -0700"
      },
      "message": "sch_prio: Use return value from inner qdisc requeue\n\nUse return value from inner qdisc requeue when value returned isn\u0027t\nNET_XMIT_SUCCESS, instead of always returning NET_XMIT_DROP.\n\nSigned-off-by: Jussi Kivilinna \u003cjussi.kivilinna@mbnet.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1e0d5a5747772182d1bb2525d8153da640fdfb58",
      "tree": "266a7c3e9a01728f7661d5b2976cc33d106b463c",
      "parents": [
        "3a76e3716b4e571f5d91a20b6afb412560599083"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 17 22:31:26 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 17 22:31:26 2008 -0700"
      },
      "message": "pkt_sched: No longer destroy qdiscs from RCU.\n\nWe can now kill them synchronously with all of the\nprevious dev_deactivate() cures.\n\nThis makes netdev destruction and shutdown saner as\nthe qdiscs hold references to the device.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3a76e3716b4e571f5d91a20b6afb412560599083",
      "tree": "caf2e5e493774bef0bcf82eb489c00b68a0144bf",
      "parents": [
        "4335cd2da1e8986fa8aff21a91144d986cb0a5fc"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Sun Aug 17 22:02:11 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 17 22:02:11 2008 -0700"
      },
      "message": "pkt_sched: Grab correct lock in notify_and_destroy().\n\nFrom: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\n\nWhen we are destroying non-root qdiscs, we need to lock\nthe root of the qdisc tree not the the qdisc itself.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4335cd2da1e8986fa8aff21a91144d986cb0a5fc",
      "tree": "7c39163199086fedc39adad6c733526658d4bc86",
      "parents": [
        "def82a1db1fdc4f861c77009e2ee86870c3743b0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 17 21:58:07 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 17 21:58:07 2008 -0700"
      },
      "message": "pkt_sched: Simplify dev_deactivate() polling loop.\n\nThe condition under which the previous qdisc has no more references\nafter we\u0027ve attached \u0026noop_qdisc is that both RUNNING and SCHED\nare both seen clear while holding the root lock.\n\nSo just make specifically that check in the polling loop, instead\nof this overly complex \"check without then check with lock held\"\nsequence.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a9312ae89324438b0edc554eb36c3ec6bf927d04",
      "tree": "8a440aa75a9ac5aba1447082ec43ed48951aa121",
      "parents": [
        "08013fa353fdcfc0a03cae805393abfc56722387"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 17 21:51:03 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 17 21:51:03 2008 -0700"
      },
      "message": "pkt_sched: Add \u0027deactivated\u0027 state.\n\nThis new state lets dev_deactivate() mark a qdisc as having been\ndeactivated.\n\ndev_queue_xmit() and ing_filter() check for this bit and do not\ntry to process the qdisc if the bit is set.\n\ndev_deactivate() polls the qdisc after setting the bit, waiting\nfor both __QDISC_STATE_RUNNING and __QDISC_STATE_SCHED to clear.\n\nThis isn\u0027t perfect yet, but subsequent changesets will make it so.\nThis part is just one piece of the puzzle.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "323c048836f73a11ded6f9743feda21c00465cb0",
      "tree": "2cbb7cf162da13586df959919739dd8f852ecf44",
      "parents": [
        "191cd582500f49b32a63040fedeebb0168c720af"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Thu Aug 14 17:01:10 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 14 17:01:10 2008 -0700"
      },
      "message": "pkt_sched: Fix unlocking in tc_ctl_tfilter()\n\nFix a bug with spin_lock_bh() inserted instead of spin_unlock_bh() by\nsome recent patch. \n\nReported-by: Denys Fedoryshchenko \u003cdenys@visp.net.lb\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b9a3b1102bc80b4044224494100f67de132d5448",
      "tree": "26d693207ad5c5e9ea79a2b21de48b1e409f628e",
      "parents": [
        "26b284de54a5ca3dfbe2fd9a51ac1923e80085a2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 13 15:18:38 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 13 15:18:38 2008 -0700"
      },
      "message": "pkt_sched: Fix queue quiescence testing in dev_deactivate().\n\nBased upon discussions with Jarek P. and Herbert Xu.\n\nFirst, we\u0027re testing the wrong qdisc.  We just reset the device\nqueue qdiscs to \u0026noop_qdisc and checking it\u0027s state is completely\npointless here.\n\nWe want to wait until the previous qdisc that was sitting at\nthe -\u003eqdisc pointer is not busy any more.  And that would be\n-\u003eqdisc_sleeping.\n\nBecause of how we propagate the samples qdisc pointer down into\nqdisc_run and friends via per-cpu -\u003eoutput_queue and netif_schedule,\nwe have to wait also for the __QDISC_STATE_SCHED bit to clear as\nwell.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "26b284de54a5ca3dfbe2fd9a51ac1923e80085a2",
      "tree": "949d06bd4dca0b43cb7247c2013c89337a8ca18b",
      "parents": [
        "64c00d81b5c2491bd140b3c8eb2e8c351513f971"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Wed Aug 13 15:16:43 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 13 15:16:43 2008 -0700"
      },
      "message": "pkt_sched: Fix oops in htb_delete.\n\nRecent changes introduced a bug in htb_delete(): cl-\u003eparent-\u003echildren\ncounter update misses checking cl-\u003eparent for NULL, which is used for\nroot classes, so deleting them causes an oops.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "36723873b664fb6b5cfe06d291df948126e43f50",
      "tree": "fa4fdae50b25ff2ce8dd57cc9cb59ede897d4017",
      "parents": [
        "f97017cdefefdb6a0e19266024b0c6f9fd411eeb"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Wed Aug 13 02:41:45 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 13 02:41:45 2008 -0700"
      },
      "message": "net-sched: fix Action flushing return code\n\nFlushing must consistently return ENOMEM on failure of any allocation\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f97017cdefefdb6a0e19266024b0c6f9fd411eeb",
      "tree": "d223eabc477ff3bd172aac7dd9ab83e1566acf17",
      "parents": [
        "34093d055e09d1bb549efc11c8d448373437bbe4"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Wed Aug 13 02:41:22 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 13 02:41:22 2008 -0700"
      },
      "message": "net-sched: Fix actions flushing\n\nFlushing of actions has been broken since we changed\nthe semantics of netlink parsed tb[X] to mean X is an attribute type.\nThis makes the flushing work.\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1cfa26661a85549063e369e2b40275eeaa7b923c",
      "tree": "c2d10164ad6b46cd9ac4123a7b2e7b4e2e6ac745",
      "parents": [
        "0a37c10ed460872d41259659f7f589edebdc42b7"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Mon Aug 11 18:11:06 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 11 18:11:06 2008 -0700"
      },
      "message": "pkt_sched: Add BH protection for qdisc_stab_lock.\n\nSince qdisc_stab_lock is used in qdisc_put_stab(), which is called in\nBH context from __qdisc_destroy() RCU callback, softirq safe locking\nis needed.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8123b421e8ed944671d7241323ed3198cccb4041",
      "tree": "fb9e5634b36cce181781e764e71406c972dd2e8c",
      "parents": [
        "76aab2c1eae491a5d73ac83deec97dd28ebac584"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 08 23:23:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 08 23:23:39 2008 -0700"
      },
      "message": "pkt_sched: Fix ingress deletion and filter attachment.\n\nBased upon bug reports by Stephen Hemminger.\n\nWe still had some cases using -\u003eqdisc instead of -\u003eqdisc_sleeping.\n\nAlso, qdisc_lookup() should return ingress qdiscs.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "76aab2c1eae491a5d73ac83deec97dd28ebac584",
      "tree": "ba680489b5dc20cc1afad6c5c0fef36b31918d9a",
      "parents": [
        "4ab84d450e24b3a309608182a8d8e30626b46f8f"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Thu Aug 07 20:37:22 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 07 20:37:22 2008 -0700"
      },
      "message": "pkt_sched: Fix actions referencing\n\nWhen an action is added several times with the same exact index\nit gets deleted on every even-numbered attempt.\nThis fixes that issue.\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "827ebd6410005b05b3c930ef6a116666c6986886",
      "tree": "7b9c0fcf0b6f1502620453c5050d68e8e9325caa",
      "parents": [
        "22c7fdf4a7acfa24d9d498b1357e6c07d0e6c553"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 07 20:26:40 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 07 20:26:40 2008 -0700"
      },
      "message": "pkt_sched: Fix qdisc config when link is down.\n\nBug reported by Stephen Hemminger.\n\nWe need to fetch the root from -\u003eqdisc_sleeping not -\u003eqdisc.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee7af8264dafa0c8c76a8dc596803966c2e29ebc",
      "tree": "2dfd9066bcf677ec4b1e7becb39d6f8187961385",
      "parents": [
        "11d46123bfea068a48483f00518d301f452647fb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 06 23:35:59 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 06 23:35:59 2008 -0700"
      },
      "message": "pkt_sched: Fix \"parent is root\" test in qdisc_create().\n\nAs noticed by Stephen Hemminger, the root qdisc is denoted by\nTC_H_ROOT, not zero.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c27f339af90bb874a7a9c680b17abfd32d4a727b",
      "tree": "5af236e0b3835976c70c1d5daa2f30be11adf35b",
      "parents": [
        "378a2f090f7a478704a372a4869b8a9ac206234e"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Mon Aug 04 22:39:11 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 04 22:39:11 2008 -0700"
      },
      "message": "net_sched: Add qdisc __NET_XMIT_BYPASS flag\n\nPatrick McHardy \u003ckaber@trash.net\u003e noticed that it would be nice to\nhandle NET_XMIT_BYPASS by NET_XMIT_SUCCESS with an internal qdisc flag\n__NET_XMIT_BYPASS and to remove the mapping from dev_queue_xmit().\n\nDavid Miller \u003cdavem@davemloft.net\u003e spotted a serious bug in the first\nversion of this patch.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\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": "5fb662297b8a4bdadd60371c34b760efca948ebc",
      "tree": "ef1def70cfa440ab3d367f6f67d466227ffdf0ef",
      "parents": [
        "82f97b8d3cb3982ec97e081598c671fab2c321b0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Aug 02 20:02:43 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Aug 02 20:02:43 2008 -0700"
      },
      "message": "pkt_sched: Use qdisc_lock() on already sampled root qdisc.\n\nBased upon a bug report by Jeff Kirsher.\n\nDon\u0027t use qdisc_root_lock() in these cases as the root\nqdisc could have been changed, and we\u0027d thus lock the\nwrong object.\n\nTested by Emil S Tantilov who confirms that this seems\nto fix the problem.\n\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": "8d50b53d66a8a6ae41bafbdcabe401467803f33a",
      "tree": "7a23efd740161b5b32d3fd473cf024e1a8931ce1",
      "parents": [
        "38c080ffa9c1b840390832b42ce8621464ab9f97"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 30 02:37:46 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 30 02:44:25 2008 -0700"
      },
      "message": "pkt_sched: Fix OOPS on ingress qdisc add.\n\nBug report from Steven Jan Springl:\n\n\tIssuing the following command causes a kernel oops:\n\t\ttc qdisc add dev eth0 handle ffff: ingress\n\nThe problem mostly stems from all of the special case handling of\ningress qdiscs.\n\nSo, to fix this, do the grafting operation the same way we do for TX\nqdiscs.  Which means that dev_activate() and dev_deactivate() now do\nthe \"qdisc_sleeping \u003c--\u003e qdisc\" transitions on dev-\u003erx_queue too.\n\nFuture simplifications are possible now, mainly because it is\nimpossible for dev_queue-\u003e{qdisc,qdisc_sleeping} to be NULL.  There\nare NULL checks all over to handle the ingress qdisc special case\nthat used to exist before this commit.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4836e3007882984279ca63d3c42bf0b14616eb78",
      "tree": "28bf22726964e068b825491d71a141eefedbe5f8",
      "parents": [
        "5c7c204aeca51ccfad63caab4fcdc5d8026c0fd8",
        "4e1e018ecc6f7bfd10fc75b3ff9715cc8164e0a2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:23:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:23:44 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (39 commits)\n  [PATCH] fix RLIM_NOFILE handling\n  [PATCH] get rid of corner case in dup3() entirely\n  [PATCH] remove remaining namei_{32,64}.h crap\n  [PATCH] get rid of indirect users of namei.h\n  [PATCH] get rid of __user_path_lookup_open\n  [PATCH] f_count may wrap around\n  [PATCH] dup3 fix\n  [PATCH] don\u0027t pass nameidata to __ncp_lookup_validate()\n  [PATCH] don\u0027t pass nameidata to gfs2_lookupi()\n  [PATCH] new (local) helper: user_path_parent()\n  [PATCH] sanitize __user_walk_fd() et.al.\n  [PATCH] preparation to __user_walk_fd cleanup\n  [PATCH] kill nameidata passing to permission(), rename to inode_permission()\n  [PATCH] take noexec checks to very few callers that care\n  Re: [PATCH 3/6] vfs: open_exec cleanup\n  [patch 4/4] vfs: immutable inode checking cleanup\n  [patch 3/4] fat: dont call notify_change\n  [patch 2/4] vfs: utimes cleanup\n  [patch 1/4] vfs: utimes: move owner check into inode_change_ok()\n  [PATCH] vfs: use kstrdup() and check failing allocation\n  ...\n"
    },
    {
      "commit": "516e0cc5646f377ab80fcc2ee639892eccb99853",
      "tree": "e06296dcedb42dbe397d237887873e70c5823d51",
      "parents": [
        "3c333937ee3be114b181c4861188cfe8f6a59697"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 00:39:17 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:40 2008 -0400"
      },
      "message": "[PATCH] f_count may wrap around\n\nmake it atomic_long_t; while we are at it, get rid of useless checks in affs,\nhfs and hpfs - -\u003eopen() always has it equal to 1, -\u003erelease() - to 0.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cdec7e50a4896c5197d5575d9ca635eea6825149",
      "tree": "0071b43c923cd73b4a5d2d09fbb876ed39a3a06d",
      "parents": [
        "509e2562adfd63964aa30c1ddd9ddf4e57949351"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 26 02:28:09 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 26 02:28:09 2008 -0700"
      },
      "message": "Revert \"pkt_sched: sch_sfq: dump a real number of flows\"\n\nThis reverts commit f867e6af94239a04ec23aeec2fcda5aa58e41db7.\n\nBased upon discussions between Jarek and Patrick McHardy\nthis is field being set is more a config parameter than a\nstatistic.  And we should add a true statistic to provide\nthis information if we really want it.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "547b792cac0a038b9dbf958d3c120df3740b5572",
      "tree": "08554d083b0ca7d65739dc1ce12f9b12a9b8e1f8",
      "parents": [
        "53e5e96ec18da6f65e89f05674711e1c93d8df67"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Jul 25 21:43:18 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 25 21:43:18 2008 -0700"
      },
      "message": "net: convert BUG_TRAP to generic WARN_ON\n\nRemoves legacy reinvent-the-wheel type thing. The generic\nmachinery integrates much better to automated debugging aids\nsuch as kerneloops.org (and others), and is unambiguous due to\nbetter naming. Non-intuively BUG_TRAP() is actually equal to\nWARN_ON() rather than BUG_ON() though some might actually be\npromoted to BUG_ON() but I left that to future.\n\nI could make at least one BUILD_BUG_ON conversion.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cffe1c5d7a5a1e54f7c2c6d0510f651a965bccc3",
      "tree": "8d016589486306d406f12ed6b8d85f4be59e460d",
      "parents": [
        "f867e6af94239a04ec23aeec2fcda5aa58e41db7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 25 01:25:04 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 25 01:25:04 2008 -0700"
      },
      "message": "pkt_sched: Fix locking in shutdown_scheduler_queue()\n\nQdisc locks need to be held with BH disabled.\n\nTested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f867e6af94239a04ec23aeec2fcda5aa58e41db7",
      "tree": "aba94e6be14429ab8a6556c8d10c11a04914568c",
      "parents": [
        "6f75a9b6426e686649ac440c37ec7c249501f9a5"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Wed Jul 23 21:34:27 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 23 21:34:27 2008 -0700"
      },
      "message": "pkt_sched: sch_sfq: dump a real number of flows\n\nDump the \"flows\" number according to the number of active flows\ninstead of repeating the \"limit\".\n\nReported-by: Denys Fedoryshchenko \u003cdenys@visp.net.lb\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a94f779f9d82eb2d758a8715eaae5df98e8dcb21",
      "tree": "0ea45807ecf0f6788ec226000b4ff69b0c0bd2a1",
      "parents": [
        "8086cd451f08f4c0f9693fc66d87754bbd18cfba"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Jul 22 14:20:11 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 22 14:20:11 2008 -0700"
      },
      "message": "pkt_sched: make qdisc_class_hash_alloc() static\n\nThis patch makes the needlessly global qdisc_class_hash_alloc() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\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": "d3678b463df73f5060d7420915080e19baeb379b",
      "tree": "4f4fc3e49bb0a9d21b9280f1c1a990eb03651564",
      "parents": [
        "867d79fb9a4d5929ad8335c896fcfe11c3b2ef14"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 21 09:56:13 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 21 10:10:50 2008 -0700"
      },
      "message": "Revert \"pkt_sched: Make default qdisc nonshared-multiqueue safe.\"\n\nThis reverts commit a0c80b80e0fb48129e4e9d6a9ede914f9ff1850d.\n\nAfter discussions with Jamal and Herbert on netdev, we should\nprovide at least minimal prioritization at the qdisc level\neven in multiqueue situations.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c3ee84163e5bc0dc2e1ccf1d3fc412debca73bab",
      "tree": "9b6319d2abab9ab6e4692dfd71ff4c38dfe7f997",
      "parents": [
        "fd24c4af6e82231391fa09875ae6378fa1399f0f"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "dlezcano@fr.ibm.com",
        "time": "Mon Jul 21 09:18:07 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 21 09:18:07 2008 -0700"
      },
      "message": "pkt_sched: Remove unused variable skb in dev_deactivate_queue function.\n\nRemoved unused variable \u0027skb\u0027 in the dev_deactivate_queue function\n\nSigned-off-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3a682fbd732d3d27bec722a923952b0938e8a404",
      "tree": "715ca6472e7c3d9b354cb8bfa18db74dabcdaeff",
      "parents": [
        "fb65a7c091529bfffb1262515252c0d0f6241c5c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 20 18:13:01 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 20 18:13:01 2008 -0700"
      },
      "message": "pkt_sched: Fix build with NET_SCHED disabled.\n\nThe stab bits can\u0027t be referenced uniless the full\npacket scheduler layer is enabled.\n\nReported by Stephen Rothwell.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "175f9c1bba9b825d22b142d183c9e175488b260c",
      "tree": "6b9cdb2e3802e7fc8422dc0d0cc200f6d4d1d0a5",
      "parents": [
        "0abf77e55a2459aa9905be4b226e4729d5b4f0cb"
      ],
      "author": {
        "name": "Jussi Kivilinna",
        "email": "jussi.kivilinna@mbnet.fi",
        "time": "Sun Jul 20 00:08:47 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 20 00:08:47 2008 -0700"
      },
      "message": "net_sched: Add size table for qdiscs\n\nAdd size table functions for qdiscs and calculate packet size in\nqdisc_enqueue().\n\nBased on patch by Patrick McHardy\n http://marc.info/?l\u003dlinux-netdev\u0026m\u003d115201979221729\u0026w\u003d2\n\nSigned-off-by: Jussi Kivilinna \u003cjussi.kivilinna@mbnet.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0abf77e55a2459aa9905be4b226e4729d5b4f0cb",
      "tree": "0224961150c0c2c65b5ad407b1af8cf84266e919",
      "parents": [
        "5f86173bdf15981ca49d0434f638b68f70a35644"
      ],
      "author": {
        "name": "Jussi Kivilinna",
        "email": "jussi.kivilinna@mbnet.fi",
        "time": "Sun Jul 20 00:08:27 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 20 00:08:27 2008 -0700"
      },
      "message": "net_sched: Add accessor function for packet length for qdiscs\n\nSigned-off-by: Jussi Kivilinna \u003cjussi.kivilinna@mbnet.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5f86173bdf15981ca49d0434f638b68f70a35644",
      "tree": "e6792339e577ed4a8261358e56df9f1a2b87f655",
      "parents": [
        "db7a94d60f871ce6a52e97d82dea476cee0c4ea0"
      ],
      "author": {
        "name": "Jussi Kivilinna",
        "email": "jussi.kivilinna@mbnet.fi",
        "time": "Sun Jul 20 00:08:04 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 20 00:08:04 2008 -0700"
      },
      "message": "net_sched: Add qdisc_enqueue wrapper\n\nSigned-off-by: Jussi Kivilinna \u003cjussi.kivilinna@mbnet.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "30ee42be00b7a50929a73cb617f70b1d3219eb69",
      "tree": "d2da673ab69eb897dd558be4df90a938f15afba8",
      "parents": [
        "3072367300aa8c779e3a14ee8e89de079e90f3ad"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 23:00:11 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 23:00:11 2008 -0700"
      },
      "message": "pkt_sched: Fix noqueue_qdisc initialization.\n\nLike noop_qdisc, it needs a dummy backpointer and\nexplicit qdisc-\u003eq.lock initialization.\n\nBased upon a report by Stephen Hemminger.\n\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": "72b25a913ed9b1ab49c7022adaf3f271a65ea219",
      "tree": "89931a19264c79090ea3043d92f04e7727e37f1c",
      "parents": [
        "8913336a7e8d56e984109a3137d6c0e3362596a4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 20:54:17 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 20:54:17 2008 -0700"
      },
      "message": "pkt_sched: Get rid of u32_list.\n\nThe u32_list is just an indirect way of maintaining a reference\nto a U32 node on a per-qdisc basis.\n\nJust add an explicit node pointer for u32 to struct Qdisc an do\naway with this global list.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a0c80b80e0fb48129e4e9d6a9ede914f9ff1850d",
      "tree": "db2364cff1fad40b56cae6770ed73945b42e6e85",
      "parents": [
        "93245dd6d356b864f6676396a9f3edecbd378ed0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 01:46:06 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:33 2008 -0700"
      },
      "message": "pkt_sched: Make default qdisc nonshared-multiqueue safe.\n\nInstead of \u0027pfifo_fast\u0027 we have just plain \u0027fifo_fast\u0027.\nNo priority queues, just a straight FIFO.\n\nThis is necessary in order to legally have a seperate\nqdisc per queue in multi-TX-queue setups, and thus get\nfull parallelization.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "99194cff398d056e5ee469647c294466c246c88a",
      "tree": "24d85fffc71915a61bcc062deb32a4fa82dc7b9a",
      "parents": [
        "83874000929ed63aef30b44083a9f713135ff040"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 04:54:10 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:30 2008 -0700"
      },
      "message": "pkt_sched: Add multiqueue handling to qdisc_graft().\n\nMove the destruction of the old queue into qdisc_graft().\n\nWhen operating on a root qdisc (ie. \"parent \u003d\u003d NULL\"), apply\nthe operation to all queues.  The caller has grabbed a single\nimplicit reference for this graft, therefore when we apply the\nchange to more than one queue we must grab additional qdisc\nreferences.\n\nOtherwise, we are operating on a class of a specific parent qdisc, and\ntherefore no multiqueue handling is necessary.\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": "c7e4f3bbb4ba4e48ab3b529d5016e454cee1ccd6",
      "tree": "76975288fd9448ee522867e3681978804431e736",
      "parents": [
        "78a5b30b7324b2d66bcf7d2e3935877d3c26497c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 03:22:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:29 2008 -0700"
      },
      "message": "pkt_sched: Kill qdisc_lock_tree and qdisc_unlock_tree.\n\nNo longer used.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "53049978df1d9ae55bf397c9879e6b33218352db",
      "tree": "18369747279ef1c0b807fe19e80d5d6c96d099bb",
      "parents": [
        "ead81cc5fc6d996db6afb20f211241612610a07a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 03:00:19 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:27 2008 -0700"
      },
      "message": "pkt_sched: Make qdisc grafting locking more specific.\n\nLock the root of the qdisc being operated upon.\n\nAll explicit references to qdisc_tree_lock() are now gone.\nThe only remaining uses are via the sch_tree_{lock,unlock}()\nand tcf_tree_{lock,unlock}() macros.\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": "15b458fa65cbba395724a99ab1b7d3785ca76c1c",
      "tree": "7759eee59d6eb7c324732e89fa7007d49c0965df",
      "parents": [
        "55dbc640c31db373fa07eb1e3af9b8eadbdf80db"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 02:42:51 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:25 2008 -0700"
      },
      "message": "pkt_sched: Kill qdisc_lock_tree usage in cls_route.c\n\nIt just wants the qdisc tree to be synchronized, so grabbing\nqdisc_root_lock() is sufficient.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "55dbc640c31db373fa07eb1e3af9b8eadbdf80db",
      "tree": "6a1ae2d8c1ab68a8e631bba21cc2a273c6982d2b",
      "parents": [
        "17715e62a5e5c7224e5f906a4b8f9e5084100118"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 02:40:45 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:24 2008 -0700"
      },
      "message": "pkt_sched: Remove qdisc_lock_tree usage in cls_api.c\n\nIt just wants the qdisc tree for the filter to be synchronized.\nSo just BH lock qdisc_root_lock(q) instead.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "17715e62a5e5c7224e5f906a4b8f9e5084100118",
      "tree": "83958bfcb21886df0a827614482acbbcc3a453f9",
      "parents": [
        "8a34c5dc3a7c6431f1cd94c0904be81b296e08ca"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 02:36:04 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:23 2008 -0700"
      },
      "message": "pkt_sched: Use per-queue locking in shutdown_scheduler_queue.\n\nThis eliminates another qdisc_lock_tree user.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8a34c5dc3a7c6431f1cd94c0904be81b296e08ca",
      "tree": "fd4f5f3872ab0470622d49d02c58334f5c24adec",
      "parents": [
        "16361127ebed0fb8f9d7cc94c6e137eaf710f676"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 00:47:45 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:22 2008 -0700"
      },
      "message": "pkt_sched: Perform bulk of qdisc destruction in RCU.\n\nThis allows less strict control of access to the qdisc attached to a\nnetdev_queue.  It is even allowed to enqueue into a qdisc which is\nin the process of being destroyed.  The RCU handler will toss out\nthose packets.\n\nWe will need this to handle sharing of a qdisc amongst multiple\nTX queues.  In such a setup the lock has to be shared, so will\nbe inside of the qdisc itself.  At which point the netdev_queue\nlock cannot be used to hard synchronize access to the -\u003eqdisc\npointer.\n\nOne operation we have to keep inside of qdisc_destroy() is the list\ndeletion.  It is the only piece of state visible after the RCU quiesce\nperiod, so we have to undo it early and under the appropriate locking.\n\nThe operations in the RCU handler do not need any looking because the\nqdisc tree is no longer visible to anything at that point.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "16361127ebed0fb8f9d7cc94c6e137eaf710f676",
      "tree": "09488bb81ecaeed1bbccef13eacdbe8d8a71b07d",
      "parents": [
        "37437bb2e1ae8af470dfcd5b4ff454110894ccaf"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 02:23:17 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:21 2008 -0700"
      },
      "message": "pkt_sched: dev_init_scheduler() does not need to lock qdisc tree.\n\nWe are registering the device, there is no way anyone can get\nat this object\u0027s qdiscs yet in any meaningful way.\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": "7698b4fcabcd790efc4f226bada1e7b5870653af",
      "tree": "031ce7a911fc5bff995421a5615d9ab25416a479",
      "parents": [
        "e2627c8c2241bce45e368e150654d076b58a4595"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 01:42:40 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:19 2008 -0700"
      },
      "message": "pkt_sched: Add and use qdisc_root() and qdisc_root_lock().\n\nWhen code wants to lock the qdisc tree state, the logic\noperation it\u0027s doing is locking the top-level qdisc that\nsits of the root of the netdev_queue.\n\nAdd qdisc_root_lock() to represent this and convert the\neasiest cases.\n\nIn order for this to work out in all cases, we have to\nhook up the noop_qdisc to a dummy netdev_queue.\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": "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": "1d8ae3fdeb001b8f534a6782c261aba6ec1779f5",
      "tree": "5c488f59f674ba2c42755a6c34f69ac80824f213",
      "parents": [
        "09e83b5d7d1878065e2453239b49b684cd0fe4e5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 15 02:52:19 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 17 19:21:04 2008 -0700"
      },
      "message": "pkt_sched: Remove RR scheduler.\n\nThis actually fixes a bug added by the RR scheduler changes.  The\n-\u003ebands and -\u003eprio2band parameters were being set outside of the\nsch_tree_lock() and thus could result in strange behavior and\ninconsistencies.\n\nIt might be possible, in the new design (where there will be one qdisc\nper device TX queue) to allow similar functionality via a TX hash\nalgorithm for RR but I really see no reason to export this aspect of\nhow these multiqueue cards actually implement the scheduling of the\nthe individual DMA TX rings and the single physical MAC/PHY port.\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": "72d9794f444734af56ef12833b496326643e2964",
      "tree": "af0e5654cf7fc9a4801edd97fab3f2d6e5039b30",
      "parents": [
        "0c4c8cae44e9d71afd3031c1e8739bd398a831a8"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jul 14 20:36:32 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 20:36:32 2008 -0700"
      },
      "message": "net-sched: cls_flow: add perturbation support\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\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": "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": "eb6aafe3f843cb0e939546c03540a3b4911b6964",
      "tree": "550cfba4baadcb64f98ce6e77fe6f9b44b5bb142",
      "parents": [
        "86d804e10a37cd86f16bf72386c37e843a98a74b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:12:38 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:12:38 2008 -0700"
      },
      "message": "pkt_sched: Make qdisc_run take a netdev_queue.\n\nThis allows us to use this calling convention all the way down into\nqdisc_restart().\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": "74d58a0c1d5b348a8d4ea9643b573a6ab455a3f3",
      "tree": "2dc8f989cd75529c037e712ea85e7148c1150c86",
      "parents": [
        "68dfb42798e1eb2d42acbf872925cc75f1487d9b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 22:57:51 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 22:57:51 2008 -0700"
      },
      "message": "pkt_sched: Make netem queue agnostic.\n\nIt just wants the root qdisc given an arbitrary qdisc,\nand that is simply qdisc-\u003edev_queue-\u003eqdisc\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\n"
    },
    {
      "commit": "68dfb42798e1eb2d42acbf872925cc75f1487d9b",
      "tree": "dc56b348077ca5f4e9a78f50fa04b198556f0abf",
      "parents": [
        "816f3258e70db38d6d92c8d871377179fd69160f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 22:57:31 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 22:57:31 2008 -0700"
      },
      "message": "pkt_sched: Kill stats_lock member of struct Qdisc.\n\nIt is always equal to qdisc-\u003edev_queue-\u003elock\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": "5ce2d488fe039ddd86a638496cf704df86c74eeb",
      "tree": "71b4d982bfa8bd457bb41c0693c0e70d75b524b4",
      "parents": [
        "bb949fbd1878973c3539d9aecff52f284482a937"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 17:06:30 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 17:06:30 2008 -0700"
      },
      "message": "pkt_sched: Remove \u0027dev\u0027 member of struct Qdisc.\n\nIt can be obtained via the netdev_queue.  So create a helper routine,\nqdisc_dev(), to make the transformations nicer looking.\n\nNow, qdisc_alloc() now no longer needs a net_device pointer argument.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "bb949fbd1878973c3539d9aecff52f284482a937"
}
