)]}'
{
  "log": [
    {
      "commit": "a52cefc80fc92981592c688d1c8067442afe4cec",
      "tree": "ad119b5a4f5e4a257779c0ef324b5c9354c915f1",
      "parents": [
        "fba956c46a72f9e7503fd464ffee43c632307e31",
        "4acad72ded8e3f0211bd2a762e23c28229c61a51"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 14:06:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 14:06:58 2007 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\n* \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)\n  [IPV6]: Consolidate the ip6_pol_route_(input|output) pair\n  [TCP]: Make snd_cwnd_cnt 32-bit\n  [TCP]: Update the /proc/net/tcp documentation\n  [NETNS]: Don\u0027t panic on creating the namespace\u0027s loopback\n  [NEIGH]: Ensure that pneigh_lookup is protected with RTNL\n  [INET]: kmalloc+memset -\u003e kzalloc in frag_alloc_queue\n  [ISDN]: Fix compile with CONFIG_ISDN_X25 disabled.\n  [IPV6]: Replace sk_buff ** with sk_buff * in input handlers\n  [SELINUX]: Update for netfilter -\u003ehook() arg changes.\n  [INET]: Consolidate the xxx_put\n  [INET]: Small cleanup for xxx_put after evictor consolidation\n  [INET]: Consolidate the xxx_evictor\n  [INET]: Consolidate the xxx_frag_destroy\n  [INET]: Consolidate xxx_the secret_rebuild\n  [INET]: Consolidate the xxx_frag_kill\n  [INET]: Collect common frag sysctl variables together\n  [INET]: Collect frag queues management objects together\n  [INET]: Move common fields from frag_queues in one place.\n  [TG3]: Fix performance regression on 5705.\n  [ISDN]: Remove local copy of device name to make sure renames work.\n  ...\n"
    },
    {
      "commit": "e0053ec07e32ec94535c47b10af3377255f00836",
      "tree": "05d74698e2be2ac052fca3132e830c524887a5fd",
      "parents": [
        "dec18810c52ed564c1aedc7f93dbf278b7fdf6d5"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Oct 14 00:37:52 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 15 12:26:24 2007 -0700"
      },
      "message": "[SKBUFF]: Add skb_morph\n\nThis patch creates a new function skb_morph that\u0027s just like skb_clone\nexcept that it lets user provide the spare skb that will be overwritten\nby the one that\u0027s to be cloned.\n\nThis will be used by IP fragment reassembly so that we get back the same\nskb that went in last (rather than the head skb that we get now which\nrequires us to carry around double pointers all over the place).\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eabd7e35c0061dc250fcb8b77c472cb66d770774",
      "tree": "92153476510e1e9caead4236a282e0a557e1fb37",
      "parents": [
        "af793e08b748223d04ec4ba6aa70e3686a4ba4f7"
      ],
      "author": {
        "name": "Brice Goglin",
        "email": "brice@myri.com",
        "time": "Sat Oct 13 12:33:32 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 15 14:24:07 2007 -0400"
      },
      "message": "Add skb_is_gso_v6\n\nAdd skb_is_gso_v6().\n\nSigned-off-by: Brice Goglin \u003cbrice@myri.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d9cc20484e5e48c6a5deb4387c20fd45bfbdde8c",
      "tree": "f0a9f05ad00b8a506abeb3b42cb3346cef7d2155",
      "parents": [
        "e081e1e3ef4682802ac63b1e5e26158fb9ca9e90"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Sep 16 16:21:16 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 16 16:21:16 2007 -0700"
      },
      "message": "[NET] skbuff: Add skb_cow_head\n\nThis patch adds an optimised version of skb_cow that avoids the copy if\nthe header can be modified even if the rest of the payload is cloned.\n\nThis can be used in encapsulating paths where we only need to modify the\nheader.  As it is, this can be used in PPPOE and bridging.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a309bb072b96bfe43deb29becf15dc54d656601f",
      "tree": "532f95f23c374484e751b3c51c1766b18e501096",
      "parents": [
        "131116989b5c349f9b1ab9ee083d37cc73160ac8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Jul 30 18:47:03 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 31 02:28:28 2007 -0700"
      },
      "message": "[NET]: Page offsets and lengths need to be __u32.\n\nBased upon a report from Stephen Rothwell.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4381ca3c23b07ba5b567f72325003020ddca0341",
      "tree": "8364a54bbb58cd8cabbaed0d9d5a84968e56591e",
      "parents": [
        "5f17c70fe6d0b8562bf396f7e5638f243ebe4da8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sun Jul 15 21:00:11 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 15 16:40:51 2007 -0700"
      },
      "message": "fix return type of skb_checksum_complete()\n\nIt returns __sum16, not unsigned int\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c6c6e3e05c0b4349824efcdd36650e7be9d5c7c3",
      "tree": "327317560c35fc1c54379c1729c093e3a099de87",
      "parents": [
        "cfbba49d80be6cf8d3872b66fc5421f119843b36"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Jul 10 22:41:55 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 10 22:41:55 2007 -0700"
      },
      "message": "[NET]: Update comments for skb checksums\n\nRusty (whose comments we should all study and emulate :) pointed\nout that our comments for skb checksums are no longer up-to-date.\nSo here is a patch to\n\n1) add the case of partial checksums on input;\n2) update partial checksum case to mention csum_start/csum_offset;\n3) mention the new IPv6 feature bit.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ba9dda3ab5a865542e69dfe01edb2436857c9420",
      "tree": "93f92442a8ad134d78b4d7cd8dc74e089baef3d7",
      "parents": [
        "1b50b8a371e90a5e110f466e4ac02cf6b5f681de"
      ],
      "author": {
        "name": "Jozsef Kadlecsik",
        "email": "kadlec@blackhole.kfki.hu",
        "time": "Sat Jul 07 22:21:23 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:17:14 2007 -0700"
      },
      "message": "[NETFILTER]: x_tables: add TRACE target\n\nThe TRACE target can be used to follow IP and IPv6 packets through\nthe ruleset.\n\nSigned-off-by: Jozsef Kadlecsik \u003ckadlec@blackhole.kfki.hu\u003e\nSigned-off-by: Patrick NcHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f25f4e44808f0f6c9875d94ef1c41ef86c288eb2",
      "tree": "d7809dd5e957f1626185326d0c3438ff9a04d350",
      "parents": [
        "a093bf006e09a305e95ff0938c0a18b7520aef67"
      ],
      "author": {
        "name": "Peter P Waskiewicz Jr",
        "email": "peter.p.waskiewicz.jr@intel.com",
        "time": "Fri Jul 06 13:36:20 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:21 2007 -0700"
      },
      "message": "[CORE] Stack changes to add multiqueue hardware support API\n\nAdd the multiqueue hardware device support API to the core network\nstack.  Allow drivers to allocate multiple queues and manage them at\nthe netdev level if they choose to do so.\n\nAdded a new field to sk_buff, namely queue_mapping, for drivers to\nknow which tx_ring to select based on OS classification of the flow.\n\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "334a8132d9950f769f390f0f35c233d099688e7a",
      "tree": "0a9e988971d4c20e720e99bccfa6f5feeca5d94a",
      "parents": [
        "e50c41b53d7aa48152dd9c633b04fc7abd536f1f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jun 25 04:35:20 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:37 2007 -0700"
      },
      "message": "[SKBUFF]: Keep track of writable header len of headerless clones\n\nCurrently NAT (and others) that want to modify cloned skbs copy them,\neven if in the vast majority of cases its not necessary because the\nskb is a clone made by TCP and the portion NAT wants to modify is\nactually writable because TCP release the header reference before\ncloning.\n\nThe problem is that there is no clean way for NAT to find out how\nlong the writable header area is, so this patch introduces skb-\u003ehdr_len\nto hold this length. When a headerless skb is cloned skb-\u003ehdr_len\nis set to the current headroom, for regular clones it is copied from\nthe original. A new function skb_clone_writable(skb, len) returns\nwhether the skb is writable up to len bytes from skb-\u003edata. To avoid\nenlarging the skb the mac_len field is reduced to 16 bit and the\nnew hdr_len field is put in the remaining 16 bit.\n\nI\u0027ve done a few rough benchmarks of NAT (not with this exact patch,\nbut a very similar one). As expected it saves huge amounts of system\ntime in case of sendfile, bringing it down to basically the same\namount as without NAT, with sendmsg it only helps on loopback,\nprobably because of the large MTU.\n\nTransmit a 1GB file using sendfile/sendmsg over eth0/lo with and\nwithout NAT:\n\n- sendfile eth0, no NAT:\tsys     0m0.388s\n- sendfile eth0, NAT:\t\tsys     0m1.835s\n- sendfile eth0: NAT + path:\tsys     0m0.370s\t(~ -80%)\n\n- sendfile lo, no NAT:\t\tsys     0m0.258s\n- sendfile lo, NAT:\t\tsys     0m2.609s\n- sendfile lo, NAT + patch:\tsys     0m0.260s\t(~ -90%)\n\n- sendmsg eth0, no NAT:\t\tsys     0m2.508s\n- sendmsg eth0, NAT:\t\tsys     0m2.539s\n- sendmsg eth0, NAT + patch:\tsys     0m2.445s\t(no change)\n\n- sendmsg lo, no NAT:\t\tsys\t0m2.151s\n- sendmsg lo, NAT:\t\tsys     0m3.557s\n- sendmsg lo, NAT + patch:\tsys     0m2.159s\t(~ -40%)\n\nI expect other users can see a similar performance improvement,\npacket mangling iptables targets, ipip and ip_gre come to mind ..\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b9ce204f0a265f819d10c943a607746abb62f245",
      "tree": "45078d076bcd952d8820c590653939b312d06ac2",
      "parents": [
        "22b1a9203ea634ac0ee5240e021613da3328275f"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Jun 15 15:08:43 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 15 15:08:43 2007 -0700"
      },
      "message": "[TCP]: Congestion control API RTT sampling fix\n\nCommit 164891aadf1721fca4dce473bb0e0998181537c6 broke RTT\nsampling of congestion control modules. Inaccurate timestamps\ncould be fed to them without providing any way for them to\nidentify such cases. Previously RTT sampler was called only if\nFLAG_RETRANS_DATA_ACKED was not set filtering inaccurate\ntimestamps nicely. In addition, the new behavior could give an\ninvalid timestamp (zero) to RTT sampler if only skbs with\nTCPCB_RETRANS were ACKed. This solves both problems.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "be52178b9f73969b583c6a781ca613f4e601221a",
      "tree": "a215f23a952bae9a25bc57a8e5595a8d07888a4a",
      "parents": [
        "825e7d45cfa41bc96dd8ac4978b4d458a9ad5770"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu May 03 03:16:20 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 03 03:16:20 2007 -0700"
      },
      "message": "[NET] skbuff: fix kernel-doc\n\nFix skbuff.h kernel-doc:\nlinux-2.6.21-git4//include/linux/skbuff.h:316): No description found for parameter \u0027transport_header\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "46f8914e53c28d0716c586e08a7c819d8ebb9d54",
      "tree": "722beec8d5a83d6c13b455e69ab567197e065c55",
      "parents": [
        "04b090d50c88ac8e5ec9c2e985bb65bd153893aa"
      ],
      "author": {
        "name": "James Chapman",
        "email": "jchapman@katalix.com",
        "time": "Mon Apr 30 00:07:31 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 30 00:07:31 2007 -0700"
      },
      "message": "[SKB]: Introduce skb_queue_walk_safe()\n\nThis patch provides a method for walking skb lists while inserting or\nremoving skbs from the list.\n\nSigned-off-by: James Chapman \u003cjchapman@katalix.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "164891aadf1721fca4dce473bb0e0998181537c6",
      "tree": "991393ec7306da475cb306fcc7cb084f737ebadc",
      "parents": [
        "65d1b4a7e73fe0e1f5275ad7d2d3547981480886"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Mon Apr 23 22:26:16 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:29:45 2007 -0700"
      },
      "message": "[TCP]: Congestion control API update.\n\nDo some simple changes to make congestion control API faster/cleaner.\n* use ktime_t rather than timeval\n* merge rtt sampling into existing ack callback\n  this means one indirect call versus two per ack.\n* use flags bits to store options/settings\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c6fcc8a8cfcc737d05b6be8b2c3e931ef99cfc2",
      "tree": "53da0c434b22dba352d34c01b50154a4ce23e564",
      "parents": [
        "3e6cf558b0098a15d8c360c4eaad3e4d719a555a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Fri Apr 20 16:40:01 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:29:17 2007 -0700"
      },
      "message": "[NET] skbuff: skb_store_bits const is backwards\n\nGetting warnings becuase skb_store_bits has skb as constant,\nbut the function overwrites it. Looks like const was on the\nwrong side.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "604763722c655c7e3f31ecf6f7b4dafcd26a7a15",
      "tree": "a5c07f0e22ac86e7ca7a8c80bd3f111116610edd",
      "parents": [
        "628592ccdbbb5bb751217cf02e2e7abb500d7ffe"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Apr 09 11:59:39 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:43 2007 -0700"
      },
      "message": "[NET]: Treat CHECKSUM_PARTIAL as CHECKSUM_UNNECESSARY\n\nWhen a transmitted packet is looped back directly, CHECKSUM_PARTIAL\nmaps to the semantics of CHECKSUM_UNNECESSARY.  Therefore we should\ntreat it as such in the stack.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "663ead3bb8d5b561e70fc3bb3861c9220b5a77eb",
      "tree": "551d031fc9c904487ced4d8d3363e5ed8f369794",
      "parents": [
        "ac758e3c55c529714354fc268892ca4d23ca1e99"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Apr 09 11:59:07 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:40 2007 -0700"
      },
      "message": "[NET]: Use csum_start offset instead of skb_transport_header\n\nThe skb transport pointer is currently used to specify the start\nof the checksum region for transmit checksum offload.  Unfortunately,\nthe same pointer is also used during receive side processing.\n\nThis creates a problem when we want to retransmit a received\npacket with partial checksums since the skb transport pointer\nwould be overwritten.\n\nThis patch solves this problem by creating a new 16-bit csum_start\noffset value to replace the skb transport header for the purpose\nof checksums.  This offset is calculated from skb-\u003ehead so that\nit does not have to change when skb-\u003edata changes.\n\nNo extra space is required since csum_offset itself fits within\na 16-bit word so we can use the other 16 bits for csum_start.\n\nFor backwards compatibility, just before we push a packet with\npartial checksums off into the device driver, we set the skb\ntransport header to what it would have been under the old scheme.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "716ea3a7aae3a2bfc44cb97b5419c1c9868c7bc9",
      "tree": "d599c7ff113e815c2052e40ec71bdab3761a45fc",
      "parents": [
        "926554c4b74e53d5da4cefdc3bbd7e92427fb1a9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Apr 02 20:19:53 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:33 2007 -0700"
      },
      "message": "[NET]: Move generic skbuff stuff from XFRM code to generic code\n\nMove generic skbuff stuff from XFRM code to generic code so that\nAF_RXRPC can use it too.\n\nThe kdoc comments I\u0027ve attached to the functions needs to be checked\nby whoever wrote them as I had to make some guesses about the workings\nof these functions.\n\nSigned-off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27d7ff46a3498d3debc6ba68fb8014c702b81170",
      "tree": "b5a0c617cf8339524d3b1f1633e08eae7b94cf86",
      "parents": [
        "3dbad80ac7632f243b824d469301abb97ec634a1"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Sat Mar 31 11:55:19 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:29 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_copy_to_linear_data{_offset}\n\nTo clearly state the intent of copying to linear sk_buffs, _offset being a\noverly long variant but interesting for the sake of saving some bytes.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\n"
    },
    {
      "commit": "d626f62b11e00c16e81e4308ab93d3f13551812a",
      "tree": "fac4af6ced853755e12fc709d55f0c2bec51265d",
      "parents": [
        "2a123b86e2b242a4a6db990d2851d45e192f88e5"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Mar 27 18:55:52 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:23 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_copy_from_linear_data{_offset}\n\nTo clearly state the intent of copying from linear sk_buffs, _offset being a\noverly long variant but interesting for the sake of saving some bytes.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "35fc92a9deee0da6e35fdc3150bb134e58f2fd63",
      "tree": "25ad3898a3a5aa1f439ce715eb4ab6c418d1d0e6",
      "parents": [
        "2d771cd86d4c3af26f34a7bcdc1b87696824cad9"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Mar 26 23:22:20 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:16 2007 -0700"
      },
      "message": "[NET]: Allow forwarding of ip_summed except CHECKSUM_COMPLETE\n\nRight now Xen has a horrible hack that lets it forward packets with\npartial checksums.  One of the reasons that CHECKSUM_PARTIAL and\nCHECKSUM_COMPLETE were added is so that we can get rid of this hack\n(where it creates two extra bits in the skbuff to essentially mirror\nip_summed without being destroyed by the forwarding code).\n\nI had forgotten that I\u0027ve already gone through all the deivce drivers\nlast time around to make sure that they\u0027re looking at ip_summed \u003d\u003d\nCHECKSUM_PARTIAL rather than ip_summed !\u003d 0 on transmit.  In any case,\nI\u0027ve now done that again so it should definitely be safe.\n\nUnfortunately nobody has yet added any code to update CHECKSUM_COMPLETE\nvalues on forward so we I\u0027m setting that to CHECKSUM_NONE.  This should\nbe safe to remove for bridging but I\u0027d like to check that code path\nfirst.\n\nSo here is the patch that lets us get rid of the hack by preserving\nip_summed (mostly) on forwarded packets.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "de6e05c49f8b4ed63224c5d38891f531ecc4eabb",
      "tree": "2ed69a03c657a5618bc98a5f74acb905bf764ecf",
      "parents": [
        "5f79e0f916a3bdeccc910fdf466bca582a9b2cca"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki.kozakai@toshiba.co.jp",
        "time": "Fri Mar 23 11:17:27 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:45 2007 -0700"
      },
      "message": "[NETFILTER]: nf_conntrack: kill destroy() in struct nf_conntrack for diet\n\nThe destructor per conntrack is unnecessary, then this replaces it with\nsystem wide destructor.\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki.kozakai@toshiba.co.jp\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5f79e0f916a3bdeccc910fdf466bca582a9b2cca",
      "tree": "ef6cb09587609597e611ad38c313df88d8ff2e8b",
      "parents": [
        "e6f689db51a789807edede411b32eb7c9e457948"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki.kozakai@toshiba.co.jp",
        "time": "Fri Mar 23 11:17:07 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:44 2007 -0700"
      },
      "message": "[NETFILTER]: nf_conntrack: don\u0027t use nfct in skb if conntrack is disabled\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki.kozakai@toshiba.co.jp\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "897933bcdf31c372e029dd4e2ecd573ebe6cfd9c",
      "tree": "f8b57b2ea0a2c4e592c55c0fae82332e6484a319",
      "parents": [
        "b529ccf2799c14346d1518e9bdf1f88f03643e99"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 19 22:27:36 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:35 2007 -0700"
      },
      "message": "[SK_BUFF]: Remove skb_add_mtu() leftovers\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "4305b541357ddbd205aa145dc378926b7cb12283",
      "tree": "9b1f57ee4ee757a9324c48a7dea84bc8c279ad82",
      "parents": [
        "27a884dc3cb63b93c2b3b643f5b31eed5f8a4d26"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Apr 19 20:43:29 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:29 2007 -0700"
      },
      "message": "[SK_BUFF]: Convert skb-\u003eend to sk_buff_data_t\n\nNow to convert the last one, skb-\u003edata, that will allow many simplifications\nand removal of some of the offset helpers.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27a884dc3cb63b93c2b3b643f5b31eed5f8a4d26",
      "tree": "5a267e40f9b94014be38dad5de0a52b6628834e0",
      "parents": [
        "be8bd86321fa7f06359d866ef61fb4d2f3e9dce9"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Apr 19 20:29:13 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:28 2007 -0700"
      },
      "message": "[SK_BUFF]: Convert skb-\u003etail to sk_buff_data_t\n\nSo that it is also an offset from skb-\u003ehead, reduces its size from 8 to 4 bytes\non 64bit architectures, allowing us to combine the 4 bytes hole left by the\nlayer headers conversion, reducing struct sk_buff size to 256 bytes, i.e. 4\n64byte cachelines, and since the sk_buff slab cache is SLAB_HWCACHE_ALIGN...\n:-)\n\nMany calculations that previously required that skb-\u003e{transport,network,\nmac}_header be first converted to a pointer now can be done directly, being\nmeaningful as offsets or pointers.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2e07fa9cd3bac1e28cfe3131ed86b053afb02fc9",
      "tree": "177ad0c2cbbd60c25e54b35802219634c047aa08",
      "parents": [
        "b0e380b1d8a8e0aca215df97702f99815f05c094"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 10 21:22:35 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:21 2007 -0700"
      },
      "message": "[SK_BUFF]: Use offsets for skb-\u003e{mac,network,transport}_header on 64bit architectures\n\nWith this we save 8 bytes per network packet, leaving a 4 bytes hole to be used\nin further shrinking work, likely with the offsetization of other pointers,\nsuch as -\u003e{data,tail,end}, at the cost of adds, that were minimized by the\nusual practice of setting skb-\u003e{mac,nh,n}.raw to a local variable that is then\naccessed multiple times in each function, it also is not more expensive than\nbefore with regards to most of the handling of such headers, like setting one\nof these headers to another (transport to network, etc), or subtracting, adding\nto/from it, comparing them, etc.\n\nNow we have this layout for sk_buff on a x86_64 machine:\n\n[acme@mica net-2.6.22]$ pahole vmlinux sk_buff\nstruct sk_buff {\n\tstruct sk_buff *       next;             /*   0   8 */\n\tstruct sk_buff *       prev;             /*   8   8 */\n\tstruct rb_node         rb;               /*  16  24 */\n\tstruct sock *          sk;               /*  40   8 */\n\tktime_t                tstamp;           /*  48   8 */\n\tstruct net_device *    dev;              /*  56   8 */\n\t/* --- cacheline 1 boundary (64 bytes) --- */\n\tstruct net_device *    input_dev;        /*  64   8 */\n\tsk_buff_data_t         transport_header; /*  72   4 */\n\tsk_buff_data_t         network_header;   /*  76   4 */\n\tsk_buff_data_t         mac_header;       /*  80   4 */\n\n\t/* XXX 4 bytes hole, try to pack */\n\n\tstruct dst_entry *     dst;              /*  88   8 */\n\tstruct sec_path *      sp;               /*  96   8 */\n\tchar                   cb[48];           /* 104  48 */\n\t/* cacheline 2 boundary (128 bytes) was 24 bytes ago*/\n\tunsigned int           len;              /* 152   4 */\n\tunsigned int           data_len;         /* 156   4 */\n\tunsigned int           mac_len;          /* 160   4 */\n\tunion {\n\t\t__wsum         csum;             /*       4 */\n\t\t__u32          csum_offset;      /*       4 */\n\t};                                       /* 164   4 */\n\t__u32                  priority;         /* 168   4 */\n\t__u8                   local_df:1;       /* 172   1 */\n\t__u8                   cloned:1;         /* 172   1 */\n\t__u8                   ip_summed:2;      /* 172   1 */\n\t__u8                   nohdr:1;          /* 172   1 */\n\t__u8                   nfctinfo:3;       /* 172   1 */\n\t__u8                   pkt_type:3;       /* 173   1 */\n\t__u8                   fclone:2;         /* 173   1 */\n\t__u8                   ipvs_property:1;  /* 173   1 */\n\n\t/* XXX 2 bits hole, try to pack */\n\n\t__be16                 protocol;         /* 174   2 */\n\tvoid    (*destructor)(struct sk_buff *); /* 176   8 */\n\tstruct nf_conntrack *  nfct;             /* 184   8 */\n\t/* --- cacheline 3 boundary (192 bytes) --- */\n\tstruct sk_buff *       nfct_reasm;       /* 192   8 */\n\tstruct nf_bridge_info *nf_bridge;        /* 200   8 */\n\t__u16                  tc_index;         /* 208   2 */\n\t__u16                  tc_verd;          /* 210   2 */\n\tdma_cookie_t           dma_cookie;       /* 212   4 */\n\t__u32                  secmark;          /* 216   4 */\n\t__u32                  mark;             /* 220   4 */\n\tunsigned int           truesize;         /* 224   4 */\n\tatomic_t               users;            /* 228   4 */\n\tunsigned char *        head;             /* 232   8 */\n\tunsigned char *        data;             /* 240   8 */\n\tunsigned char *        tail;             /* 248   8 */\n\t/* --- cacheline 4 boundary (256 bytes) --- */\n\tunsigned char *        end;              /* 256   8 */\n}; /* size: 264, cachelines: 5 */\n   /* sum members: 260, holes: 1, sum holes: 4 */\n   /* bit holes: 1, sum bit holes: 2 bits */\n   /* last cacheline: 8 bytes */\n\nOn 32 bits nothing changes, and pointers continue to be used with the compiler\nturning all this abstraction layer into dust. But there are some sk_buff\nvalidation tricks that are now possible, humm... :-)\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b0e380b1d8a8e0aca215df97702f99815f05c094",
      "tree": "95f402ca155f5211150178811669ebf0a88e8e00",
      "parents": [
        "cfe1fc7759fdacb0c650b575daed1692bf3eaece"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 10 21:21:55 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:20 2007 -0700"
      },
      "message": "[SK_BUFF]: unions of just one member don\u0027t get anything done, kill them\n\nRenaming skb-\u003eh to skb-\u003etransport_header, skb-\u003enh to skb-\u003enetwork_header and\nskb-\u003emac to skb-\u003emac_header, to match the names of the associated helpers\n(skb[_[re]set]_{transport,network,mac}_header).\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cfe1fc7759fdacb0c650b575daed1692bf3eaece",
      "tree": "b8ed6fbc6c028595f5e82be1bccdeb2727e0a0b2",
      "parents": [
        "bff9b61ce330df04c6830d823c30c04203543f01"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Mar 16 17:26:39 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:19 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_network_header_len\n\nFor the common sequence \"skb-\u003eh.raw - skb-\u003enh.raw\", similar to skb-\u003emac_len,\nthat is precalculated tho, don\u0027t think we need to bloat skb with one more\nmember, so just use this new helper, reducing the number of non-skbuff.h\nreferences to the layer headers even more.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e7ac05f3407a3fb5a1b2ff5d5554899eaa0a10a3",
      "tree": "d8360ce670e1a60110ef6ddff20399129c51eefc",
      "parents": [
        "edda553c324bdc5bb5c2d553b524cab37058a855"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki.kozakai@toshiba.co.jp",
        "time": "Wed Mar 14 16:44:01 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:55 2007 -0700"
      },
      "message": "[NETFILTER]: nf_conntrack: add nf_copy() to safely copy members in skb\n\nThis unifies the codes to copy netfilter related datas. Before copying,\nnf_copy() puts original members in destination skb.\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki.kozakai@toshiba.co.jp\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "edda553c324bdc5bb5c2d553b524cab37058a855",
      "tree": "04b041d20e685e2d7dab1dad41419af0360aa312",
      "parents": [
        "9b88790972498d235a2a4d2b66640c3c5b70bb7c"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki.kozakai@toshiba.co.jp",
        "time": "Wed Mar 14 16:43:37 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:54 2007 -0700"
      },
      "message": "[NETFILTER]: nf_conntrack: add __nf_copy() to copy members in skb\n\nThis unifies the codes to copy netfilter related datas. Note that\n__nf_copy() assumes destination skb doesn\u0027t have any netfilter\nrelated members.\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki.kozakai@toshiba.co.jp\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9c70220b73908f64792422a2c39c593c4792f2c5",
      "tree": "2090ea10aaa2714a5e095bae8cc02e743c378a3a",
      "parents": [
        "a27ef749e7be3b06fb58df53d94eb97a21f18707"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 18:04:18 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:31 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_transport_header(skb)\n\nFor the places where we need a pointer to the transport header, it is\nstill legal to touch skb-\u003eh.raw directly if just adding to,\nsubtracting from or setting it to another layer header.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "39b89160df691045d1449cbaef43c02084c7543a",
      "tree": "bbe217599a1b84f3bf33c053e2c7d3bdf8bdd571",
      "parents": [
        "b0061ce49c83657563b64ffcf1ec137110230d93"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 10 21:06:25 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:28 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce ipipv6_hdr(), remove skb-\u003eh.ipv6h\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b0061ce49c83657563b64ffcf1ec137110230d93",
      "tree": "be6788071fdbc53261ee395f596705e1418461d1",
      "parents": [
        "aa8223c7bb0b05183e1737881ed21827aa5b9e73"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 18:02:22 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:27 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce ipip_hdr(), remove skb-\u003eh.ipiph\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aa8223c7bb0b05183e1737881ed21827aa5b9e73",
      "tree": "05c9832326edfeb878472f15cf8133ed9f014cdf",
      "parents": [
        "ab6a5bb6b28a970104a34f0f6959b73cf61bdc72"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 10 21:04:22 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:26 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce tcp_hdr(), remove skb-\u003eh.th\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "88c7664f13bd1a36acb8566b93892a4c58759ac6",
      "tree": "18ead610bf54ef87f3832c61d64a4bad30d4f78e",
      "parents": [
        "4bedb45203eab92a87b4c863fe2d0cded633427f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Mar 13 14:43:18 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:23 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce icmp_hdr(), remove skb-\u003eh.icmph\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4bedb45203eab92a87b4c863fe2d0cded633427f",
      "tree": "d46e43d0a08253cf85ee2db64df6aee5e4ff5a07",
      "parents": [
        "d9edf9e2be0f7661558984c32bd53867a7037fd3"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Mar 13 14:28:48 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:22 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce udp_hdr(), remove skb-\u003eh.uh\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d9edf9e2be0f7661558984c32bd53867a7037fd3",
      "tree": "603271a9d0756e229ad9ff13c628a33306c96bdf",
      "parents": [
        "cc70ab261c9f997589546100ddec5da6bfd89c4e"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Mar 13 14:19:23 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:21 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce igmp_hdr() \u0026 friends, remove skb-\u003eh.igmph\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "967b05f64e27d04a4c8879addd0e1c52137e2c9e",
      "tree": "c2c7ab3f0284903222d6d0864deaedbd4766b9b8",
      "parents": [
        "ea2ae17d6443abddc79480dc9f7af8feacabddc4"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Mar 13 13:51:52 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:17 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_set_transport_header\n\nFor the cases where the transport header is being set to a offset from\nskb-\u003edata.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ea2ae17d6443abddc79480dc9f7af8feacabddc4",
      "tree": "2d6f48a5e4a40f761b5b510af9aac1fca55004cb",
      "parents": [
        "badff6d01a8589a1c828b0bf118903ca38627f4e"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 17:55:53 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:16 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_transport_offset()\n\nFor the quite common \u0027skb-\u003eh.raw - skb-\u003edata\u0027 sequence.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "badff6d01a8589a1c828b0bf118903ca38627f4e",
      "tree": "89611d7058c612085c58dfb9913ee30ddf04b604",
      "parents": [
        "0660e03f6b18f19b6bbafe7583265a51b90daf36"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Mar 13 13:06:52 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:15 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_reset_transport_header(skb)\n\nFor the common, open coded \u0027skb-\u003eh.raw \u003d skb-\u003edata\u0027 operation, so that we can\nlater turn skb-\u003eh.raw into a offset, reducing the size of struct sk_buff in\n64bit land while possibly keeping it as a pointer on 32bit.\n\nThis one touches just the most simple cases:\n\nskb-\u003eh.raw \u003d skb-\u003edata;\nskb-\u003eh.raw \u003d {skb_push|[__]skb_pull}()\n\nThe next ones will handle the slightly more \"complex\" cases.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0660e03f6b18f19b6bbafe7583265a51b90daf36",
      "tree": "82cc819ead5ab7858ba211ee8719a3e6d2bb984f",
      "parents": [
        "d0a92be05ed4aea7d35c2b257e3f9173565fe4eb"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 17:54:47 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:14 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce ipv6_hdr(), remove skb-\u003enh.ipv6h\n\nNow the skb-\u003enh union has just one member, .raw, i.e. it is just like the\nskb-\u003emac union, strange, no? I\u0027m just leaving it like that till the transport\nlayer is done with, when we\u0027ll rename skb-\u003emac.raw to skb-\u003emac_header (or\n-\u003emac_header_offset?), ditto for -\u003e{h,nh}.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d0a92be05ed4aea7d35c2b257e3f9173565fe4eb",
      "tree": "de57331758805956bcb54dda798e3ca76dd5a46f",
      "parents": [
        "fd74e6ccd522e2f26163eb5ac1abebcab2bd017c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 12 20:56:31 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:12 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce arp_hdr(), remove skb-\u003enh.arph\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eddc9ec53be2ecdbf4efe0efd4a83052594f0ac0",
      "tree": "4a38ab4dbd9d61fdf5a5ea6ed61463e0b9e33ba7",
      "parents": [
        "e023dd643798c4f06c16466af90b4d250e4b8bd7"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Apr 20 22:47:35 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:10 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce ip_hdr(), remove skb-\u003enh.iph\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c14d2450cb7fe1786e2ec325172baf66922bf597",
      "tree": "1186bfb1ed197e81a1ff816a513ad69503d5d786",
      "parents": [
        "878c814500b123dd61a5e211879a32e5fd932713"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sun Mar 11 22:39:41 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:01 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_set_network_header\n\nFor the cases where the network header is being set to a offset from skb-\u003edata.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d56f90a7c96da5187f0cdf07ee7434fe6aa78bbc",
      "tree": "3b9073cecfbb3b6a1e25ab2b5dd2a22a43aef238",
      "parents": [
        "bbe735e4247dba32568a305553b010081c8dea99"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 10 20:50:43 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:59 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_network_header()\n\nFor the places where we need a pointer to the network header, it is still legal\nto touch skb-\u003enh.raw directly if just adding to, subtracting from or setting it\nto another layer header.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bbe735e4247dba32568a305553b010081c8dea99",
      "tree": "95d96619c85785a47ccee48965b68d99cf946854",
      "parents": [
        "e7dd65dafda5737a983c04d652a69ab8da78ee3f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 22:16:10 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:58 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_network_offset()\n\nFor the quite common \u0027skb-\u003enh.raw - skb-\u003edata\u0027 sequence.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1d2bbe1cd6c7bbdc6d532cefebb66c7efb789ce",
      "tree": "03a715961ba576a11cbc0e91c5d465e4c4d95d82",
      "parents": [
        "57effc70a5be9f7804e9a99964eb7265367effca"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 10 20:45:18 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:46 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_reset_network_header(skb)\n\nFor the common, open coded \u0027skb-\u003enh.raw \u003d skb-\u003edata\u0027 operation, so that we can\nlater turn skb-\u003enh.raw into a offset, reducing the size of struct sk_buff in\n64bit land while possibly keeping it as a pointer on 32bit.\n\nThis one touches just the most simple case, next will handle the slightly more\n\"complex\" cases.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "98e399f82ab3a6d863d1d4a7ea48925cc91c830e",
      "tree": "5f84043aeec1ec27c2e8e6cc25b5d2e6c3d07343",
      "parents": [
        "31713c333ddbb66d694829082620b69b71c4b09a"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 19 15:33:04 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:41 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_mac_header()\n\nFor the places where we need a pointer to the mac header, it is still legal to\ntouch skb-\u003emac.raw directly if just adding to, subtracting from or setting it\nto another layer header.\n\nThis one also converts some more cases to skb_reset_mac_header() that my\nregex missed as it had no spaces before nor after \u0027\u003d\u0027, ugh.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "48d49d0ccdaa9caff4636ef9c3410973d28131b5",
      "tree": "3bdf0729bf05e817d1bb9c3299906682414f8a76",
      "parents": [
        "f64955eb117ad62480b858fd69a11e6f9e74f60b"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 12:30:58 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:37 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_set_mac_header()\n\nFor the cases where we want to set skb-\u003emac.raw to an offset from skb-\u003edata.\n\nSimple cases first, the memmove ones and specially pktgen will be left for later.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "459a98ed881802dee55897441bc7f77af614368e",
      "tree": "b81f76632d8f2e21eb91ec3d885091a98398d93e",
      "parents": [
        "4c13eb6657fe9ef7b4dc8f1a405c902e9e5234e0"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 19 15:30:44 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:32 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_reset_mac_header(skb)\n\nFor the common, open coded \u0027skb-\u003emac.raw \u003d skb-\u003edata\u0027 operation, so that we can\nlater turn skb-\u003emac.raw into a offset, reducing the size of struct sk_buff in\n64bit land while possibly keeping it as a pointer on 32bit.\n\nThis one touches just the most simple case, next will handle the slightly more\n\"complex\" cases.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "759e5d006462d53fb708daa8284b4ad909415da1",
      "tree": "edcc4e9d975199b3fe5e2aadc3d1e06824755e75",
      "parents": [
        "1ab6eb62b02e0949a392fb19bf31ba59ae1022b1"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Mar 25 20:10:56 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:51 2007 -0700"
      },
      "message": "[UDP]: Clean up UDP-Lite receive checksum\n\nThis patch eliminates some duplicate code for the verification of\nreceive checksums between UDP-Lite and UDP.  It does this by\nintroducing __skb_checksum_complete_head which is identical to\n__skb_checksum_complete_head apart from the fact that it takes\na length parameter rather than computing the first skb-\u003elen bytes.\n\nAs a result UDP-Lite will be able to use hardware checksum offload\nfor packets which do not use partial coverage checksums.  It also\nmeans that UDP-Lite loopback no longer does unnecessary checksum\nverification.\n\nIf any NICs start support UDP-Lite this would also start working\nautomatically.\n\nThis patch removes the assumption that msg_flags has MSG_TRUNC clear\nupon entry in recvmsg.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc910a27839584209726537698b596576940add4",
      "tree": "e03b021dcb5046ffb1e8154f0f4d4bc72c4c1c1d",
      "parents": [
        "ca043569390c528de4cd5ec9e07502f2bf4ecd1f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 25 20:27:59 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:45 2007 -0700"
      },
      "message": "[NETLINK]: Limit NLMSG_GOODSIZE to 8K.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b7aa0bf70c4afb9e38be25f5c0922498d0f8684c",
      "tree": "4bc9d61031f4eb40d73887d6bde09e7d6bf2b259",
      "parents": [
        "3927f2e8f9afa3424bb51ca81f7abac01ffd0005"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Apr 19 16:16:32 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:34 2007 -0700"
      },
      "message": "[NET]: convert network timestamps to ktime_t\n\nWe currently use a special structure (struct skb_timeval) and plain\n\u0027struct timeval\u0027 to store packet timestamps in sk_buffs and struct\nsock.\n\nThis has some drawbacks :\n- Fixed resolution of micro second.\n- Waste of space on 64bit platforms where sizeof(struct timeval)\u003d16\n\nI suggest using ktime_t that is a nice abstraction of high resolution\ntime services, currently capable of nanosecond resolution.\n\nAs sizeof(ktime_t) is 8 bytes, using ktime_t in \u0027struct sock\u0027 permits\na 8 byte shrink of this structure on 64bit architectures. Some other\nstructures also benefit from this size reduction (struct ipq in\nipv4/ip_fragment.c, struct frag_queue in ipv6/reassembly.c, ...)\n\nOnce this ktime infrastructure adopted, we can more easily provide\nnanosecond resolution on top of it. (ioctl SIOCGSTAMPNS and/or\nSO_TIMESTAMPNS/SCM_TIMESTAMPNS)\n\nNote : this patch includes a bug correction in\ncompat_sock_get_timestamp() where a \"err \u003d 0;\" was missing (so this\nsyscall returned -ENOENT instead of 0)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCC: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nCC: John find \u003clinux.kernel@free.fr\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c2ecba71717c4f60671175fd26083c35a4b9ad58",
      "tree": "b51d9e55cc4777254fed5d6b2056cc26d5ccda9f",
      "parents": [
        "5e7d7fa57323dfb48fb09464cf4542daa7ce8a72"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@sw.ru",
        "time": "Tue Apr 17 12:45:31 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Apr 17 13:13:31 2007 -0700"
      },
      "message": "[NET]: Set a separate lockdep class for neighbour table\u0027s proxy_queue\n\nOtherwise the following calltrace will lead to a wrong\nlockdep warning:\n\n  neigh_proxy_process()\n    `- lock(neigh_table-\u003eproxy_queue.lock);\n  arp_redo /* via tbl-\u003eproxy_redo */\n  arp_process\n  neigh_event_ns\n  neigh_update\n  skb_queue_purge\n    `- lock(neighbor-\u003earp_queue.lock);\n\nThis is not a deadlock actually, as neighbor table\u0027s proxy_queue\nand the neighbor\u0027s arp_queue are different queues.\n\nLockdep thinks there is a deadlock as both queues are initialized\nwith skb_queue_head_init() and thus have a common class.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b4dfa0b1fb39c7ffe74741d60668825de6a47b69",
      "tree": "1866a6b51f666b4969f6c0be55c25f31e4d42a51",
      "parents": [
        "6f29e35e2d4cdbc3e8785982314e54ec5df4ad37"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Apr 17 12:28:27 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Apr 17 13:13:16 2007 -0700"
      },
      "message": "[NET]: Get rid of alloc_skb_from_cache\n\nSince this was added originally for Xen, and Xen has recently (~2.6.18)\nstopped using this function, we can safely get rid of it.  Good timing\ntoo since this function has started to bit rot.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c01003c20563d1e75ec9828d21743919d2b43977",
      "tree": "21cae8933e8a4908d8e8c24244a627bf0c997e77",
      "parents": [
        "db8b22550d4b83f0910d27a34d05aa16f7f7159f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Mar 29 11:46:52 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 29 11:46:52 2007 -0700"
      },
      "message": "[IFB]: Fix crash on input device removal\n\nThe input_device pointer is not refcounted, which means the device may\ndisappear while packets are queued, causing a crash when ifb passes packets\nwith a stale skb-\u003edev pointer to netif_rx().\n\nFix by storing the interface index instead and do a lookup where neccessary.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b30973f877fea1a3fb84e05599890fcc082a88e5",
      "tree": "198f7c31d5945288c1195348ac4e521ba90d81d6",
      "parents": [
        "873481367edb18a7d0d7e5a285e6728c16bb44a9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Dec 06 20:32:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:22 2006 -0800"
      },
      "message": "[PATCH] node-aware skb allocation\n\nNode-aware allocation of skbs for the receive path.\n\nDetails:\n\n  - __alloc_skb gets a new node argument and cals the node-aware\n    slab functions with it.\n  - netdev_alloc_skb passed the node number it gets from dev_to_node\n    to it, everyone else passes -1 (any node)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a80958f4849316a18c06f75b9e850ccecbf20df8",
      "tree": "69a5469fee713392bdacd7f197336ce2d8c76c19",
      "parents": [
        "0c789ff64e874bbece03b607f200566ab24ea9ab"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@hera.kernel.org",
        "time": "Mon Dec 04 20:41:19 2006 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 12:45:29 2006 -0800"
      },
      "message": "[PATCH] fix fallout from header dependency trimming\n\nOK, that seems to be enough to deal with the mess.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d7fe0f241dceade9c8d4af75498765c5ff7f27e6",
      "tree": "442ab13842a548ef56904d11fd574c98fee14e69",
      "parents": [
        "bd01f843c3368dcee735c19603251669f23f4477"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Dec 03 23:15:30 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 04 02:00:34 2006 -0500"
      },
      "message": "[PATCH] severing skbuff.h -\u003e mm.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bd01f843c3368dcee735c19603251669f23f4477",
      "tree": "3cb848f5577ff7c7cbb21982d81fa4baabc6a7b5",
      "parents": [
        "a1f8e7f7fb9d7e2cbcb53170edca7c0ac4680697"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 19 17:23:57 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 04 02:00:31 2006 -0500"
      },
      "message": "[PATCH] severing skbuff.h -\u003e poll.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a1f8e7f7fb9d7e2cbcb53170edca7c0ac4680697",
      "tree": "2d1190c0099291d56a9c986f16bec17df2f6768b",
      "parents": [
        "b07e4ecd4d380ad697c54d729cb653d027077c99"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 19 16:08:53 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 04 02:00:29 2006 -0500"
      },
      "message": "[PATCH] severing skbuff.h -\u003e highmem.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ff1dcadb1b55dbf471c5ed109dbbdf06bd19ef3b",
      "tree": "cbcd17d33ecc52c90d218b43c5aec430be448058",
      "parents": [
        "5b14027bf2132c0631ea9f3be11ced89a5057220"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Nov 20 18:07:29 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:27:18 2006 -0800"
      },
      "message": "[NET]: Split skb-\u003ecsum\n\n... into anonymous union of __wsum and __u32 (csum and csum_offset resp.)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1f61ab5ca5cca939a6509892d84b34849e155036",
      "tree": "0a2f131065712c0526690ca0ac72970d62b9001d",
      "parents": [
        "5a5a852e45b651c71dfeb3972b30d58742f8941e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 14 21:44:08 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:23:44 2006 -0800"
      },
      "message": "[NET]: Preliminaty annotation of skb-\u003ecsum.\n\nIt\u0027s still not completely right; we need to split it into anon unions\nof __wsum and unsigned - for cases when we use it for partial checksum\nand for offset of checksum in skb\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b51655b958dfb1176bfcf99466231fdbef8751ff",
      "tree": "a53d0ec00d8db4169ba8c1c487fffbd34d6dde03",
      "parents": [
        "b1550f221255f7dd06048d832bf0f3d166840e1c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 14 21:40:42 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:23:38 2006 -0800"
      },
      "message": "[NET]: Annotate __skb_checksum_complete() and friends.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "81d77662763ae527ba3a9b9275467901aaab7dfd",
      "tree": "c0280981515d052535f24ac89cbb135dc68abe55",
      "parents": [
        "2bbbc86890ac4c911c5057f69af93853e52a42a8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 14 21:37:33 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:23:36 2006 -0800"
      },
      "message": "[NET]: Annotate skb_copy_and_csum_bits() and callers.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2bbbc86890ac4c911c5057f69af93853e52a42a8",
      "tree": "f05aa0eea53312afa5829a80da35d4500d7a1b52",
      "parents": [
        "5f92a7388a29594d6c365b23a48d4bb8299a3ea7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 14 21:37:14 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:23:35 2006 -0800"
      },
      "message": "[NET]: Annotate skb_checksum() and callers.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5084205faf45384fff25c4cf77dd5c96279283ad",
      "tree": "9a5a3cb74bf64a6ec4c1b77d7805b256978943ca",
      "parents": [
        "44bb93633f57a55979f3c2589b10fd6a2bfc7c08"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 14 21:36:34 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:23:33 2006 -0800"
      },
      "message": "[NET]: Annotate callers of csum_partial_copy_...() and csum_and_copy...() in net/*\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "82e91ffef60e6eba9848fe149ce1eecd2b5aef12",
      "tree": "9ccc6a518a1f678ae15cfb3a59c05127286cff96",
      "parents": [
        "0afc46c4683df512eef34a71a85065dc555c2af2"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Nov 09 15:19:14 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:21:38 2006 -0800"
      },
      "message": "[NET]: Turn nfmark into generic mark\n\nnfmark is being used in various subsystems and has become\nthe defacto mark field for all kinds of packets. Therefore\nit makes sense to rename it to `mark\u0027 and remove the\ndependency on CONFIG_NETFILTER.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ae08e1f092210619fe49551aa3ed0dc0003d5880",
      "tree": "80e0ef51a052f811394b29bb19422feba80795bb",
      "parents": [
        "98a4a86128d7179b22365e16bf880e849e20bc7d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 08 00:27:11 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:21:26 2006 -0800"
      },
      "message": "[IPV6]: ip6_output annotations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "84fa7933a33f806bbbaae6775e87459b1ec584c0",
      "tree": "5be404225d90f640997b12f631e9b496b3fd0d61",
      "parents": [
        "8584d6df39db5601965f9bc5e3bf2fea833ad7bb"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Aug 29 16:44:56 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 14:53:53 2006 -0700"
      },
      "message": "[NET]: Replace CHECKSUM_HW by CHECKSUM_PARTIAL/CHECKSUM_COMPLETE\n\nReplace CHECKSUM_HW by CHECKSUM_PARTIAL (for outgoing packets, whose\nchecksum still needs to be completed) and CHECKSUM_COMPLETE (for\nincoming packets, device supplied full checksum).\n\nPatch originally from Herbert Xu, updated by myself for 2.6.18-rc3.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e9fa4f7bd291c29a785666e2fa5a9cf3241ee6c3",
      "tree": "7313e7994ed8dbeb47ca454ee7c53d45e040738d",
      "parents": [
        "dcb7cd97f133f7cfbd181149a1e60215a869f895"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Aug 13 20:12:58 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 13 20:12:58 2006 -0700"
      },
      "message": "[INET]: Use pskb_trim_unique when trimming paged unique skbs\n\nThe IPv4/IPv6 datagram output path was using skb_trim to trim paged\npackets because they know that the packet has not been cloned yet\n(since the packet hasn\u0027t been given to anything else in the system).\n\nThis broke because skb_trim no longer allows paged packets to be\ntrimmed.  Paged packets must be given to one of the pskb_trim functions\ninstead.\n\nThis patch adds a new pskb_trim_unique function to cover the IPv4/IPv6\ndatagram output path scenario and replaces the corresponding skb_trim\ncalls with it.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "766ea8cce007e699679109df4fa469b870ba4860",
      "tree": "07b343a0be217f1cc2b1b06c65dc371ac45fadae",
      "parents": [
        "9f737633e6ee54fc174282d49b2559bd2208391d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 07 15:49:53 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 07 15:49:53 2006 -0700"
      },
      "message": "[NET]: Fix alloc_skb comment typo\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2b7e24b66d31d677d76b49918e711eb360c978b6",
      "tree": "53706b77ae3392064fbe2d8486804bf4d8714d90",
      "parents": [
        "76f10ad0e67cbc6ded2ee143e5188e0b7ff9fb15"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Aug 02 14:07:58 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 02 14:07:58 2006 -0700"
      },
      "message": "[NET]: skb_queue_lock_key() is no longer used.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "76f10ad0e67cbc6ded2ee143e5188e0b7ff9fb15",
      "tree": "d7afe6a19eaa80587736a447a240faefde6bd4fc",
      "parents": [
        "dafee490858f79e144c5e6cdd84ceb9efa20a3f1"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Wed Aug 02 14:06:55 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 02 14:06:55 2006 -0700"
      },
      "message": "[NET]: Remove lockdep_set_class() call from skb_queue_head_init().\n\nThe skb_queue_head_init() function is used both in drivers for private use\nand in the core networking code.  The usage models are vastly set of\nfunctions that is only softirq safe; while the driver usage tends to be\nmore limited to a few hardirq safe accessor functions.  Rather than\nannotating all 133+ driver usages, for now just split this lock into a per\nqueue class.  This change is obviously safe and probably should make\n2.6.18.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8af2745645243b5e5b031504a643bf2158571dc7",
      "tree": "32bf05d47473c2b586daee33f343e0eea1bbf943",
      "parents": [
        "52499afe40387524e9f46ef9ce4695efccdd2ed9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jul 31 22:35:23 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Aug 02 13:38:25 2006 -0700"
      },
      "message": "[NET]: Add netdev_alloc_skb().\n\nAdd a dev_alloc_skb variant that takes a struct net_device * paramater.\nFor now that paramater is unused, but I\u0027ll use it to allocate the skb\nfrom node-local memory in a follow-up patch.  Also there have been some\nother plans mentioned on the list that can use it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b4e54de8d34afe7fcf08bfe91070d9dfeae6ed27",
      "tree": "46b2088d28b1dc75df5ab8a8d277c243543fcb38",
      "parents": [
        "37182d1bd3264cf9c0dce3408bee48af0755de7e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jul 24 15:31:14 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 24 15:31:14 2006 -0700"
      },
      "message": "[NET]: Correct dev_alloc_skb kerneldoc\n\ndev_alloc_skb is designated for RX descriptors, not TX.  (Some drivers\nuse it for the latter anyway, but that\u0027s a different story)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "37182d1bd3264cf9c0dce3408bee48af0755de7e",
      "tree": "80d83a04deb7e4da9b733d49d7a6e6422c5b166c",
      "parents": [
        "6c753c3d3be0f8d1b570ec5720ad1bb4caf8232b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jul 24 15:30:28 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 24 15:30:28 2006 -0700"
      },
      "message": "[NET]: Remove CONFIG_HAVE_ARCH_DEV_ALLOC_SKB\n\nskbuff.h has an #ifndef CONFIG_HAVE_ARCH_DEV_ALLOC_SKB to allow\narchitectures to reimplement __dev_alloc_skb.  It\u0027s not set on any\narchitecture and now that we have an architecture-overrideable\nNET_SKB_PAD there is not point at all to have one either.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "89114afd435a486deb8583e89f490fc274444d18",
      "tree": "800e784ba59755f9f3c9926a6992e1d0f5b8eec7",
      "parents": [
        "9c6c6795eda34e4dc38ecac912a16b6314082beb"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jul 08 13:34:32 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 08 13:34:32 2006 -0700"
      },
      "message": "[NET] gso: Add skb_is_gso\n\nThis patch adds the wrapper function skb_is_gso which can be used instead\nof directly testing skb_shinfo(skb)-\u003egso_size.  This makes things a little\nnicer and allows us to change the primary key for indicating whether an skb\nis GSO (if we ever want to do that).\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "06825ba3553151eea24206bc53d4fc3de49e0ab1",
      "tree": "9fb7a35ebd98b57a8be1f5e992256da1c15e82b1",
      "parents": [
        "3aceafc1e2596f1c2c4e053126561f00b68e3a1a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:07 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate skb_queue_head_init\n\nTeach special (multi-initialized) locking code to the lock validator.  Has no\neffect on non-lockdep kernels.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f83ef8c0b58dac17211a4c0b6df0e2b1bd6637b1",
      "tree": "61661a587df97cb2a9f73b5d0d1cf30f09644051",
      "parents": [
        "bcd76111178ebccedd46a9b3eaff65c78e5a70af"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jun 30 13:37:03 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 30 14:12:10 2006 -0700"
      },
      "message": "[IPV6]: Added GSO support for TCPv6\n\nThis patch adds GSO support for IPv6 and TCPv6.  This is based on a patch\nby Ananda Raju \u003cAnanda.Raju@neterion.com\u003e.  His original description is:\n\n\tThis patch enables TSO over IPv6. Currently Linux network stacks\n\trestricts TSO over IPv6 by clearing of the NETIF_F_TSO bit from\n\t\"dev-\u003efeatures\". This patch will remove this restriction.\n\n\tThis patch will introduce a new flag NETIF_F_TSO6 which will be used\n\tto check whether device supports TSO over IPv6. If device support TSO\n\tover IPv6 then we don\u0027t clear of NETIF_F_TSO and which will make the\n\tTCP layer to create TSO packets. Any device supporting TSO over IPv6\n\twill set NETIF_F_TSO6 flag in \"dev-\u003efeatures\" along with NETIF_F_TSO.\n\n\tIn case when user disables TSO using ethtool, NETIF_F_TSO will get\n\tcleared from \"dev-\u003efeatures\". So even if we have NETIF_F_TSO6 we don\u0027t\n\tget TSO packets created by TCP layer.\n\n\tSKB_GSO_TCPV4 renamed to SKB_GSO_TCP to make it generic GSO packet.\n\tSKB_GSO_UDPV4 renamed to SKB_GSO_UDP as UFO is not a IPv4 feature.\n\tUFO is supported over IPv6 also\n\n\tThe following table shows there is significant improvement in\n\tthroughput with normal frames and CPU usage for both normal and jumbo.\n\n\t--------------------------------------------------\n\t|          |     1500        |      9600         |\n\t|          ------------------|-------------------|\n\t|          | thru     CPU    |  thru     CPU     |\n\t--------------------------------------------------\n\t| TSO OFF  | 2.00   5.5% id  |  5.66   20.0% id  |\n\t--------------------------------------------------\n\t| TSO ON   | 2.63   78.0 id  |  5.67   39.0% id  |\n\t--------------------------------------------------\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5bba17127e7c78e819560519449db237e1b0f99b",
      "tree": "e2a0700004fd8a0ae56cfbe54ed952c73bfef3bf",
      "parents": [
        "c22751b73a3770b3046102bb97b139218ff1875b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu Jun 29 13:02:35 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Jun 29 16:58:30 2006 -0700"
      },
      "message": "[NET]: make skb_release_data() static\n\nskb_release_data() no longer has any users in other files.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b0da8537037f337103348f239ad901477e907aa8",
      "tree": "498a5dceb0d536fa54dcf4acc26ae1d1b43dfaf1",
      "parents": [
        "877ce7c1b3afd69a9b1caeb1b9964c992641f52a"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "mchan@broadcom.com",
        "time": "Thu Jun 29 12:30:00 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Jun 29 16:58:08 2006 -0700"
      },
      "message": "[NET]: Add ECN support for TSO\n\nIn the current TSO implementation, NETIF_F_TSO and ECN cannot be\nturned on together in a TCP connection.  The problem is that most\nhardware that supports TSO does not handle CWR correctly if it is set\nin the TSO packet.  Correct handling requires CWR to be set in the\nfirst packet only if it is set in the TSO header.\n\nThis patch adds the ability to turn on NETIF_F_TSO and ECN using\nGSO if necessary to handle TSO packets with CWR set.  Hardware\nthat handles CWR correctly can turn on NETIF_F_TSO_ECN in the dev-\u003e\nfeatures flag.\n\nAll TSO packets with CWR set will have the SKB_GSO_TCPV4_ECN set.  If\nthe output device does not have the NETIF_F_TSO_ECN feature set, GSO\nwill split the packet up correctly with CWR only set in the first\nsegment.\n\nWith help from Herbert Xu \u003cherbert@gondor.apana.org.au\u003e.\n\nSince ECN can always be enabled with TSO, the SOCK_NO_LARGESEND sock\nflag is completely removed.\n\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "576a30eb6453439b3c37ba24455ac7090c247b5a",
      "tree": "e0c427a61e3de5c93e797c09903d910f6f060e64",
      "parents": [
        "68c1692e3ea5d79f24cb5cc566c4a73939d13d25"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Jun 27 13:22:38 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Jun 29 16:57:53 2006 -0700"
      },
      "message": "[NET]: Added GSO header verification\n\nWhen GSO packets come from an untrusted source (e.g., a Xen guest domain),\nwe need to verify the header integrity before passing it to the hardware.\n\nSince the first step in GSO is to verify the header, we can reuse that\ncode by adding a new bit to gso_type: SKB_GSO_DODGY.  Packets with this\nbit set can only be fed directly to devices with the corresponding bit\nNETIF_F_GSO_ROBUST.  If the device doesn\u0027t have that bit, then the skb\nis fed to the GSO engine which will allow the packet to be sent to the\nhardware if it passes the header check.\n\nThis patch changes the sg flag to a full features flag.  The same method\ncan be used to implement TSO ECN support.  We simply have to mark packets\nwith CWR set with SKB_GSO_ECN so that only hardware with a corresponding\nNETIF_F_TSO_ECN can accept them.  The GSO engine can either fully segment\nthe packet, or segment the first MTU and pass the rest to the hardware for\nfurther segmentation.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f4b8ea7849544114e9d3d682df4d400180854677",
      "tree": "502e33a7c2edaf9ffe899da39d0e7036128ccc12",
      "parents": [
        "c8a553ad7f0bf943047943a758cf07017819cb3c"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Thu Jun 22 16:00:11 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 23 02:07:42 2006 -0700"
      },
      "message": "[NET]: fix net-core kernel-doc\n\nWarning(/var/linsrc/linux-2617-g4//include/linux/skbuff.h:304): No description found for parameter \u0027dma_cookie\u0027\nWarning(/var/linsrc/linux-2617-g4//include/net/sock.h:1274): No description found for parameter \u0027copied_early\u0027\nWarning(/var/linsrc/linux-2617-g4//net/core/dev.c:3309): No description found for parameter \u0027chan\u0027\nWarning(/var/linsrc/linux-2617-g4//net/core/dev.c:3309): No description found for parameter \u0027event\u0027\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f4c50d990dcf11a296679dc05de3873783236711",
      "tree": "f4daf1c80fe591d45631e998b0b5d31d6fe76d85",
      "parents": [
        "f6a78bfcb141f963187464bac838d46a81c3882a"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jun 22 03:02:40 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 23 02:07:33 2006 -0700"
      },
      "message": "[NET]: Add software TSOv4\n\nThis patch adds the GSO implementation for IPv4 TCP.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7967168cefdbc63bf332d6b1548eca7cd65ebbcc",
      "tree": "c45759149ae0acdc89d746e556a0ae278d11776d",
      "parents": [
        "d4828d85d188dc70ed172802e798d3978bb6e29e"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jun 22 02:40:14 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 23 02:07:29 2006 -0700"
      },
      "message": "[NET]: Merge TSO/UFO fields in sk_buff\n\nHaving separate fields in sk_buff for TSO/UFO (tso_size/ufo_size) is not\ngoing to scale if we add any more segmentation methods (e.g., DCCP).  So\nlet\u0027s merge them.\n\nThey were used to tell the protocol of a packet.  This function has been\nsubsumed by the new gso_type field.  This is essentially a set of netdev\nfeature bits (shifted by 16 bits) that are required to process a specific\nskb.  As such it\u0027s easy to tell whether a given device can process a GSO\nskb: you just have to and the gso_type field and the netdev\u0027s features\nfield.\n\nI\u0027ve made gso_type a conjunction.  The idea is that you have a base type\n(e.g., SKB_GSO_TCPV4) that can be modified further to support new features.\nFor example, if we add a hardware TSO type that supports ECN, they would\ndeclare NETIF_F_TSO | NETIF_F_TSO_ECN.  All TSO packets with CWR set would\nhave a gso_type of SKB_GSO_TCPV4 | SKB_GSO_TCPV4_ECN while all other TSO\npackets would be SKB_GSO_TCPV4.  This means that only the CWR packets need\nto be emulated in software.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5b057c6b1a25d57edf2b4d1e956e50936480a9ff",
      "tree": "e641febd6f562e0ed1198c160ff353ab513f0612",
      "parents": [
        "5fa21d821f6972e70942f2c555ec29dde962bdb2"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jun 23 02:06:41 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 23 02:06:41 2006 -0700"
      },
      "message": "[NET]: Avoid allocating skb in skb_pad\n\nFirst of all it is unnecessary to allocate a new skb in skb_pad since\nthe existing one is not shared.  More importantly, our hard_start_xmit\ninterface does not allow a new skb to be allocated since that breaks\nrequeueing.\n\nThis patch uses pskb_expand_head to expand the existing skb and linearize\nit if needed.  Actually, someone should sift through every instance of\nskb_pad on a non-linear skb as they do not fit the reasons why this was\noriginally created.\n\nIncidentally, this fixes a minor bug when the skb is cloned (tcpdump,\nTCP, etc.).  As it is skb_pad will simply write over a cloned skb.  Because\nof the position of the write it is unlikely to cause problems but still\nit\u0027s best if we don\u0027t do it.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cee4cca740d209bcb4b9857baa2253d5ba4e3fbe",
      "tree": "88a23004393ea4a32cad79839479c8e653e401d6",
      "parents": [
        "2edc322d420a4cec8dbc184a1220ecd7fa9f8ae6",
        "9348f0de2d2b541b4ba64fb1f4efee9710a3d731"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 20 15:10:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 20 15:10:08 2006 -0700"
      },
      "message": "Merge git://git.infradead.org/hdrcleanup-2.6\n\n* git://git.infradead.org/hdrcleanup-2.6: (63 commits)\n  [S390] __FD_foo definitions.\n  Switch to __s32 types in joystick.h instead of C99 types for consistency.\n  Add \u003csys/types.h\u003e to headers included for userspace in \u003clinux/input.h\u003e\n  Move inclusion of \u003clinux/compat.h\u003e out of user scope in asm-x86_64/mtrr.h\n  Remove struct fddi_statistics from user view in \u003clinux/if_fddi.h\u003e\n  Move user-visible parts of drivers/s390/crypto/z90crypt.h to include/asm-s390\n  Revert include/media changes: Mauro says those ioctls are only used in-kernel(!)\n  Include \u003clinux/types.h\u003e and use __uXX types in \u003clinux/cramfs_fs.h\u003e\n  Use __uXX types in \u003clinux/i2o_dev.h\u003e, include \u003clinux/ioctl.h\u003e too\n  Remove private struct dx_hash_info from public view in \u003clinux/ext3_fs.h\u003e\n  Include \u003clinux/types.h\u003e and use __uXX types in \u003clinux/affs_hardblocks.h\u003e\n  Use __uXX types in \u003clinux/divert.h\u003e for struct divert_blk et al.\n  Use __u32 for elf_addr_t in \u003casm-powerpc/elf.h\u003e, not u32. It\u0027s user-visible.\n  Remove PPP_FCS from user view in \u003clinux/ppp_defs.h\u003e, remove __P mess entirely\n  Use __uXX types in user-visible structures in \u003clinux/nbd.h\u003e\n  Don\u0027t use \u0027u32\u0027 in user-visible struct ip_conntrack_old_tuple.\n  Use __uXX types for S390 DASD volume label definitions which are user-visible\n  S390 BIODASDREADCMB ioctl should use __u64 not u64 type.\n  Remove unneeded inclusion of \u003clinux/time.h\u003e from \u003clinux/ufs_fs.h\u003e\n  Fix private integer types used in V4L2 ioctls.\n  ...\n\nManually resolve conflict in include/linux/mtd/physmap.h\n"
    },
    {
      "commit": "3cc0e873986fe594d0e96d07259b11f755325cb2",
      "tree": "5d3e9a57333a2d7088a6a63c09bc97db98f480af",
      "parents": [
        "b38dfee3d616ffadb58d4215e3ff9d1d7921031e"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jun 09 16:13:38 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:30:22 2006 -0700"
      },
      "message": "[NET]: Warn in __skb_trim if skb is paged\n\nIt\u0027s better to warn and fail rather than rarely triggering BUG on paths\nthat incorrectly call skb_trim/__skb_trim on a non-linear skb.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "364c6badde0dd62a0a38e5ed67f85d87d6665780",
      "tree": "56c8ad3e3f45fafec010da4f5858825db5dbc86c",
      "parents": [
        "932ff279a43ab7257942cddff2595acd541cc49b"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jun 09 16:10:40 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:30:16 2006 -0700"
      },
      "message": "[NET]: Clean up skb_linearize\n\nThe linearisation operation doesn\u0027t need to be super-optimised.  So we can\nreplace __skb_linearize with __pskb_pull_tail which does the same thing but\nis more general.\n\nAlso, most users of skb_linearize end up testing whether the skb is linear\nor not so it helps to make skb_linearize do just that.\n\nSome callers of skb_linearize also use it to copy cloned data, so it\u0027s\nuseful to have a new function skb_linearize_cow to copy the data if it\u0027s\neither non-linear or cloned.\n\nLast but not least, I\u0027ve removed the gfp argument since nobody uses it\nanymore.  If it\u0027s ever needed we can easily add it back.\n\nMisc bugs fixed by this patch:\n\n* via-velocity error handling (also, no SG \u003d\u003e no frags)\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "984bc16cc92ea3c247bf34ad667cfb95331b9d3c",
      "tree": "2342638457f43980501179056f4ba1e4e3c2c1aa",
      "parents": [
        "c749b29fae74ed59c507d84025b3298202b42609"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Jun 09 00:29:17 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:29:57 2006 -0700"
      },
      "message": "[SECMARK]: Add secmark support to core networking.\n\nAdd a secmark field to the skbuff structure, to allow security subsystems to\nplace security markings on network packets.  This is similar to the nfmark\nfield, except is intended for implementing security policy, rather than than\nnetworking policy.\n\nThis patch was already acked in principle by Dave Miller.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "97fc2f0848c928c63c2ae619deee61a0b1107b69",
      "tree": "651f5ec78128605736d6c777a13697d5e58a1b62",
      "parents": [
        "de5506e155276d385712c2aa1c2d9a27cd4ed947"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue May 23 17:55:33 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:25:48 2006 -0700"
      },
      "message": "[I/OAT]: Structure changes for TCP recv offload to I/OAT\n\nAdds an async_wait_queue and some additional fields to tcp_sock, and a\ndma_cookie_t to sk_buff.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "dc6de33674608f978ec29f5c2f7e3af458c06f78",
      "tree": "1b314717cdb27cf75478c13f85249f85f6997f48",
      "parents": [
        "b60b49ea6a3e1f8dcaf4148dad0daab61ab766d2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Apr 20 00:10:50 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Apr 20 00:10:50 2006 -0700"
      },
      "message": "[NET]: Add skb-\u003etruesize assertion checking.\n\nAdd some sanity checking.  truesize should be at least sizeof(struct\nsk_buff) plus the current packet length.  If not, then truesize is\nseriously mangled and deserves a kernel log message.\n\nCurrently we\u0027ll do the check for release of stream socket buffers.\n\nBut we can add checks to more spots over time.\n\nIncorporating ideas from Herbert Xu.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "025be81e83043f20538dcced1e12c5f8d152fbdb",
      "tree": "b5789ee2931739c7066f5369ce699ef4f3fa758e",
      "parents": [
        "0803dbed7a23721d091639c9e173c0389dcd524a"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Fri Mar 31 02:27:06 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 31 02:27:06 2006 -0800"
      },
      "message": "[NET]: Allow skb headroom to be overridden\n\nPreviously we added NET_IP_ALIGN so an architecture can override the\npadding done to align headers. The next step is to allow the skb\nheadroom to be overridden.\n\nWe currently always reserve 16 bytes to grow into, meaning all DMAs\nstart 16 bytes into a cacheline. On ppc64 we really want DMA writes to\nstart on a cacheline boundary, so we increase that headroom to one\ncacheline.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cbb042f9e1292434e3cacb90e67d8d381aeac5a9",
      "tree": "cc42f42232e56b68111cfebdc175197d8607bdd7",
      "parents": [
        "ecba320f2e95c9a0c35011d1ecb1db4419980536"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Mar 20 22:43:56 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:43:56 2006 -0800"
      },
      "message": "[NET]: Replace skb_pull/skb_postpull_rcsum with skb_pull_rcsum\n\nWe\u0027re now starting to have quite a number of places that do skb_pull\nfollowed immediately by an skb_postpull_rcsum.  We can merge these two\noperations into one function with skb_pull_rcsum.  This makes sense\nsince most pull operations on receive skb\u0027s need to update the\nchecksum.\n\nI\u0027ve decided to make this out-of-line since it is fairly big and the\nfast path where hardware checksums are enabled need to call\ncsum_partial anyway.\n\nSince this is a brand new function we get to add an extra check on the\nlen argument.  As it is most callers of skb_pull ignore its return\nvalue which essentially means that there is no check on the len\nargument.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "231d06ae826664b83369166449144304859a62fa",
      "tree": "1c761b91405573f4e787454b454ead8354c3ba23",
      "parents": [
        "2e1f47c74c26a591fc490eb339f1b3167361158b"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Mon Mar 20 21:28:35 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 21:28:35 2006 -0800"
      },
      "message": "[NET]: Uninline kfree_skb and allow NULL argument\n\no Uninline kfree_skb, which saves some 15k of object code on my notebook.\n\no Allow kfree_skb to be called with a NULL argument.\n\n  Subsequent patches can remove conditional from drivers and further\n  reduce source and object size.\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a193a4abdd1f742a57f3f70b6a83c3e536876e97",
      "tree": "1b77f9f388ae153815248e8ef30b0297943c7016",
      "parents": [
        "6ffd30fbbb1b4a01a9f56049521693375a864d3e"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Mar 20 19:23:05 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 19:23:05 2006 -0800"
      },
      "message": "[NETFILTER]: Fix skb-\u003enf_bridge lifetime issues\n\nThe bridge netfilter code simulates the NF_IP_PRE_ROUTING hook and skips\nthe real hook by registering with high priority and returning NF_STOP if\nskb-\u003enf_bridge is present and the BRNF_NF_BRIDGE_PREROUTING flag is not\nset. The flag is only set during the simulated hook.\n\nBecause skb-\u003enf_bridge is only freed when the packet is destroyed, the\npacket will not only skip the first invocation of NF_IP_PRE_ROUTING, but\nin the case of tunnel devices on top of the bridge also all further ones.\nForwarded packets from a bridge encapsulated by a tunnel device and sent\nas locally outgoing packet will also still have the incorrect bridge\ninformation from the input path attached.\n\nWe already have nf_reset calls on all RX/TX paths of tunnel devices,\nso simply reset the nf_bridge field there too. As an added bonus,\nthe bridge information for locally delivered packets is now also freed\nwhen the packet is queued to a socket.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "77d2ca350018c507815f5d38a40ffb597eb9ae25"
}
