)]}'
{
  "log": [
    {
      "commit": "c81c2d95449cd218c2022ce6014c52fef1eb1f66",
      "tree": "3da987f71e3a6807b1d48637766724412689805b",
      "parents": [
        "f4188d8affc8267a0f0f1b587a4d0a4b9b7f2999"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Wed Dec 02 16:49:02 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 02 19:57:15 2009 -0800"
      },
      "message": "skbuff: remove skb_dma_map/unmap\n\nThe two functions skb_dma_map/unmap are unsafe to use as they cause\nproblems when packets are cloned and sent to multiple devices while a HW\nIOMMU is enabled.  Due to this it is best to remove the code so it is not\nused by any other network driver maintainters.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8964be4a9a5ca8cab1219bb046db2f6d1936227c",
      "tree": "8838c73a03cc69c010b55928fce3725d17bc26a9",
      "parents": [
        "fa9a6fed87df1b50804405e700f8d30251d3aaf1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Nov 20 15:35:04 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 20 15:35:04 2009 -0800"
      },
      "message": "net: rename skb-\u003eiif to skb-\u003eskb_iif\n\nTo help grep games, rename iif to skb_iif\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "230f9bb701d37ae9b48e96456689452978f5c439",
      "tree": "9d2690917533bbb4498c8c9df838de2d38360912",
      "parents": [
        "000ba2e43f33901859fd794bb33c885909d53b3b",
        "887e671f324d9898aaedb29a6ece6c853c394067"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 06 00:55:55 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 06 00:55:55 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/usb/cdc_ether.c\n\nAll CDC ethernet devices of type USB_CLASS_COMM need to use\n\u0027\u0026mbm_info\u0027.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d94d9fee9fa4e66a0b91640a694b8b10177075b3",
      "tree": "330b2b19e63c92f1fef3d9dbe0733ddeb0109664",
      "parents": [
        "b8883a65be2d925ea82b14ca0068ce9a6c8bac1f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Nov 04 09:50:58 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 04 09:50:58 2009 -0800"
      },
      "message": "net: cleanup include/linux\n\nThis cleanup patch puts struct/union/enum opening braces,\nin first line to ease grep games.\n\nstruct something\n{\n\nbecomes :\n\nstruct something {\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d410c796067686b1e032d54ce475b7055537138",
      "tree": "4442bdbe4a4be1cce024f2e83a12b7404ef935fa",
      "parents": [
        "63ca2d74ea4f9c7a7ac082c915609a7b224908e7"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 30 05:03:53 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 30 12:25:12 2009 -0700"
      },
      "message": "net: fix sk_forward_alloc corruption\n\nOn UDP sockets, we must call skb_free_datagram() with socket locked,\nor risk sk_forward_alloc corruption. This requirement is not respected\nin SUNRPC.\n\nAdd a convenient helper, skb_free_datagram_locked() and use it in SUNRPC\n\nReported-by: Francis Moreau \u003cfrancis.moro@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "14d18a81b5171d4433e41129619c75748b4f4d26",
      "tree": "715d5d99fc74e05d8530b6af2ea5059e5a00749b",
      "parents": [
        "1d5846b9216665d0ae743bf351d0b8fa90c40523"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Oct 29 00:10:37 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 29 22:48:44 2009 -0700"
      },
      "message": "net: fix kmemcheck annotations\n\nstruct sk_buff kmemcheck annotations enlarged this structure by 8/16 bytes\n\nFix this by moving \u0027protocol\u0027 inside flags1 bitfield,\nand queue_mapping inside flags2 bitfield.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "61321bbd6235ca9a40ba3bc249e8906cc66233c3",
      "tree": "20f50af5ea5cef41ca28dcc8e79f9a7cc2a52579",
      "parents": [
        "f373b53b5fe67aa4a6f28f921a529cc90f88e79b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Oct 07 17:11:23 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 13 03:44:03 2009 -0700"
      },
      "message": "net: Add netdev_alloc_skb_ip_align() helper\n\nInstead of hardcoding NET_IP_ALIGN stuff in various network drivers,\nwe can add a helper around netdev_alloc_skb()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3b885787ea4112eaa80945999ea0901bf742707f",
      "tree": "06fc15f8e8083d5652ccb4d06653d9812dce9c0b",
      "parents": [
        "d5e63bded6e819ca77ee1a1d97c783a31f6caf30"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Mon Oct 12 13:26:31 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 12 13:26:31 2009 -0700"
      },
      "message": "net: Generalize socket rx gap / receive queue overflow cmsg\n\nCreate a new socket level option to report number of queue overflows\n\nRecently I augmented the AF_PACKET protocol to report the number of frames lost\non the socket receive queue between any two enqueued frames.  This value was\nexported via a SOL_PACKET level cmsg.  AFter I completed that work it was\nrequested that this feature be generalized so that any datagram oriented socket\ncould make use of this option.  As such I\u0027ve created this patch, It creates a\nnew SOL_SOCKET level option called SO_RXQ_OVFL, which when enabled exports a\nSOL_SOCKET level cmsg that reports the nubmer of times the sk_receive_queue\noverflowed between any two given frames.  It also augments the AF_PACKET\nprotocol to take advantage of this new feature (as it previously did not touch\nsk-\u003esk_drops, which this patch uses to record the overflow count).  Tested\nsuccessfully by me.\n\nNotes:\n\n1) Unlike my previous patch, this patch simply records the sk_drops value, which\nis not a number of drops between packets, but rather a total number of drops.\nDeltas must be computed in user space.\n\n2) While this patch currently works with datagram oriented protocols, it will\nalso be accepted by non-datagram oriented protocols. I\u0027m not sure if thats\nagreeable to everyone, but my argument in favor of doing so is that, for those\nprotocols which aren\u0027t applicable to this option, sk_drops will always be zero,\nand reporting no drops on a receive queue that isn\u0027t used for those\nnon-participating protocols seems reasonable to me.  This also saves us having\nto code in a per-protocol opt in mechanism.\n\n3) This applies cleanly to net-next assuming that commit\n977750076d98c7ff6cbda51858bb5a5894a9d9ab (my af packet cmsg patch) is reverted\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "72bce62775db0315511474e8d8f8e25d25b48366",
      "tree": "7e97b6a26e0f8e7f8913c6cbd024e6d80e9a3e11",
      "parents": [
        "3b8d81e020f77c9da8b85b0685c8cd2ca7c7b150"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Jun 17 17:45:28 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Jul 24 15:05:31 2009 -0400"
      },
      "message": "net: remove unused skb-\u003edo_not_encrypt\n\nmac80211 required this due to the master netdev, but now\nit can put all information into skb-\u003ecb and this can go.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8660c1240ec6016522b882c88751cb4ce40bf0e8",
      "tree": "560b0136efdface63b6c3dc52d5ab7bcf30b4021",
      "parents": [
        "79fbe134832ebb70a49d8802cfeb2401dc35bb38"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "klto@zhaw.ch",
        "time": "Mon Jul 13 22:48:16 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 14 12:03:42 2009 -0700"
      },
      "message": "skbuff.h: Fix comment for NET_IP_ALIGN\n\nUse the correct function call for skb_reserve in the comment for\nNET_IP_ALIGN.\n\nSigned-off-by: Tobias Klauser \u003cklto@zhaw.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d2aa4550379f92e929af7ed1dd4f55e6a1e331f8",
      "tree": "5ef0fc69a507f0d701fd157b6652427eabd5efdd",
      "parents": [
        "9e3e4b1d2d13bead8d52703c82a02b55f108b491",
        "cb2107be43d2fc5eadec58b92b54bf32c00bfff3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 14:07:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 14:07:15 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (55 commits)\n  netxen: fix tx ring accounting\n  netxen: fix detection of cut-thru firmware mode\n  forcedeth: fix dma api mismatches\n  atm: sk_wmem_alloc initial value is one\n  net: correct off-by-one write allocations reports\n  via-velocity : fix no link detection on boot\n  Net / e100: Fix suspend of devices that cannot be power managed\n  TI DaVinci EMAC : Fix rmmod error\n  net: group address list and its count\n  ipv4: Fix fib_trie rebalancing, part 2\n  pkt_sched: Update drops stats in act_police\n  sky2: version 1.23\n  sky2: add GRO support\n  sky2: skb recycling\n  sky2: reduce default transmit ring\n  sky2: receive counter update\n  sky2: fix shutdown synchronization\n  sky2: PCI irq issues\n  sky2: more receive shutdown\n  sky2: turn off pause during shutdown\n  ...\n\nManually fix trivial conflict in net/core/skbuff.c due to kmemcheck\n"
    },
    {
      "commit": "a42fc8f6943127787ad2a416436cf211d5531229",
      "tree": "bab06b9e3310bbe5230cc9c480e0aa9935f4f9b1",
      "parents": [
        "05e9e61a2e742d33ed24392d989fff912a68d04f"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jun 16 16:56:38 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 17 04:31:11 2009 -0700"
      },
      "message": "skbuff.h: fix skb_dst kernel-doc\n\nFix kernel-doc warnings (missing + extra entries) in skbuff.h.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b3fec0fe35a4ff048484f1408385a27695d4273b",
      "tree": "088c23f098421ea681d9976a83aad73d15be1027",
      "parents": [
        "e1f5b94fd0c93c3e27ede88b7ab652d086dc960f",
        "722f2a6c87f34ee0fd0130a8cf45f81e0705594a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 13:09:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 13:09:51 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vegard/kmemcheck\n\n* \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vegard/kmemcheck: (39 commits)\n  signal: fix __send_signal() false positive kmemcheck warning\n  fs: fix do_mount_root() false positive kmemcheck warning\n  fs: introduce __getname_gfp()\n  trace: annotate bitfields in struct ring_buffer_event\n  net: annotate struct sock bitfield\n  c2port: annotate bitfield for kmemcheck\n  net: annotate inet_timewait_sock bitfields\n  ieee1394/csr1212: fix false positive kmemcheck report\n  ieee1394: annotate bitfield\n  net: annotate bitfields in struct inet_sock\n  net: use kmemcheck bitfields API for skbuff\n  kmemcheck: introduce bitfield API\n  kmemcheck: add opcode self-testing at boot\n  x86: unify pte_hidden\n  x86: make _PAGE_HIDDEN conditional\n  kmemcheck: make kconfig accessible for other architectures\n  kmemcheck: enable in the x86 Kconfig\n  kmemcheck: add hooks for the page allocator\n  kmemcheck: add hooks for page- and sg-dma-mappings\n  kmemcheck: don\u0027t track page tables\n  ...\n"
    },
    {
      "commit": "fe55f6d5c0cfec4a710ef6ff63f162b99d5f7842",
      "tree": "4c4f0960d7355647e67f62e30e10c9215c123b65",
      "parents": [
        "fc7d0c9f2122e8bf58deaf1252b0e750df5b0e91"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Sat Aug 30 12:16:35 2008 +0200"
      },
      "committer": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Mon Jun 15 15:49:25 2009 +0200"
      },
      "message": "net: use kmemcheck bitfields API for skbuff\n\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\n"
    },
    {
      "commit": "8f77f3849cc3ae2d6df9301785a3d316ea7d7ee1",
      "tree": "02143d1e81c85f64900546e3e9c2b820f72745d1",
      "parents": [
        "fc240e3fc5791c572402b0857948da7b1e68d77f"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun Jun 07 21:58:37 2009 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jun 10 13:28:37 2009 -0400"
      },
      "message": "mac80211: do not pass PS frames out of mac80211 again\n\nIn order to handle powersave frames properly we had needed\nto pass these out to the device queues again, and introduce\nthe skb-\u003erequeue bit. This, however, also has unnecessary\noverhead by needing to \u0027clean up\u0027 already tried frames, and\nthis clean-up code is also buggy when software encryption\nis used.\n\nInstead of sending the frames via the master netdev queue\nagain, simply put them into the pending queue. This also\nfixes a problem where frames for that particular station\ncould be reordered when some were still on the software\nqueues and older ones are re-injected into the software\nqueue after them.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ee0398717078260ee4ffa97d407071bc774e2dac",
      "tree": "57dff8cfd1c2dde383f3fcb49cdb8eb7b7d640a7",
      "parents": [
        "05f77f85f47e30a53f7971b687f3b0250e42f665"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:17:13 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:17:13 2009 -0700"
      },
      "message": "skbuff: Add frag list abstraction interfaces.\n\nWith the hope that these can be used to eliminate direct\nreferences to the frag list implementation.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "042a53a9e437feaf2230dd2cadcecfae9c7bfe05",
      "tree": "ae9078f61e390a3014aecb3fe80d3438ab25ee51",
      "parents": [
        "eae3f29cc73f83cc3f1891d3ad40021b5172c630"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Jun 05 04:04:16 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 00:21:48 2009 -0700"
      },
      "message": "net: skb_shared_info optimization\n\nskb_dma_unmap() is quite expensive for small packets,\nbecause we use two different cache lines from skb_shared_info.\n\nOne to access nr_frags, one to access dma_maps[0]\n\nInstead of dma_maps being an array of MAX_SKB_FRAGS + 1 elements,\nlet dma_head alone in a new dma_head field, close to nr_frags,\nto reduce cache lines misses.\n\nTested on my dev machine (bnx2 \u0026 tg3 adapters), nice speedup !\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eae3f29cc73f83cc3f1891d3ad40021b5172c630",
      "tree": "71c5555b3b67cae80c1aae8b9fd907e3be957e24",
      "parents": [
        "f957bcf0164e45bd77867e02412035e1c2fd7058"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Jun 05 04:03:35 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 00:20:23 2009 -0700"
      },
      "message": "net: num_dma_maps is not used\n\nGet rid of num_dma_maps in struct skb_shared_info, as it seems unused.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e5b9215ef9a274eb9fb65f6aa4602ad82d10a6cb",
      "tree": "2b3a4ac7f0a52b3ade1b6cae1de34d461706670a",
      "parents": [
        "adf30907d63893e4208dfe3f5c88ae12bc2f25d5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:20:21 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:05 2009 -0700"
      },
      "message": "net: skb cleanup\n\nCan remove anonymous union now it has one field.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "adf30907d63893e4208dfe3f5c88ae12bc2f25d5",
      "tree": "0f07542bb95de2ad537540868aba6cf87a86e17d",
      "parents": [
        "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:19:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:04 2009 -0700"
      },
      "message": "net: skb-\u003edst accessors\n\nDefine three accessors to get/set dst attached to a skb\n\nstruct dst_entry *skb_dst(const struct sk_buff *skb)\n\nvoid skb_dst_set(struct sk_buff *skb, struct dst_entry *dst)\n\nvoid skb_dst_drop(struct sk_buff *skb)\nThis one should replace occurrences of :\ndst_release(skb-\u003edst)\nskb-\u003edst \u003d NULL;\n\nDelete skb-\u003edst field\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a",
      "tree": "3e368d9a78f87eb9dd7ff9e57f4aab3f4a96e3b1",
      "parents": [
        "dfbf97f3ac980b69dfbc41c83a208211a38443e8"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:14:27 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:02 2009 -0700"
      },
      "message": "net: skb-\u003ertable accessor\n\nDefine skb_rtable(const struct sk_buff *skb) accessor to get rtable from skb\n\nDelete skb-\u003ertable field\n\nSetting rtable is not allowed, just set dst instead as rtable is an alias.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dfbf97f3ac980b69dfbc41c83a208211a38443e8",
      "tree": "5d05ba74f63681c7690cdbbe6182de6263f3dfad",
      "parents": [
        "3be8c940a64009afc484c380cb0f8f4a07136519"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:13:45 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:01 2009 -0700"
      },
      "message": "net: add _skb_dst opaque field\n\nstruct sk_buff uses one union to define dst and rtable fields.\n\nWe want to replace direct access to these pointers by accessors.\n\nFirst patch adds a new \"unsigned long _skb_dst;\" opaque field\nin this union.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "69e3c75f4d541a6eb151b3ef91f34033cb3ad6e1",
      "tree": "24920f17ea435627978af9d5fe0e99763bf6a533",
      "parents": [
        "f67f34084914144de55c785163d047d5d8dddd2d"
      ],
      "author": {
        "name": "Johann Baudy",
        "email": "johann.baudy@gnu-log.net",
        "time": "Mon May 18 22:11:22 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 18 22:11:22 2009 -0700"
      },
      "message": "net: TX_RING and packet mmap\n\nNew packet socket feature that makes packet socket more efficient for\ntransmission.\n\n- It reduces number of system call through a PACKET_TX_RING mechanism,\n  based on PACKET_RX_RING (Circular buffer allocated in kernel space\n  which is mmapped from user space).\n\n- It minimizes CPU copy using fragmented SKB (almost zero copy).\n\nSigned-off-by: Johann Baudy \u003cjohann.baudy@gnu-log.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f26c9a7555e5bcca3560919db9b852015077dae",
      "tree": "9ca7509cd0cbbdae158b752c234cb23add8370f0",
      "parents": [
        "43b39dcdbdf823a1c0ac1f2aa2d76bd2f210adc8"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Apr 20 01:26:11 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 21 05:42:46 2009 -0700"
      },
      "message": "tun: fix tun_chr_aio_write so that aio works\n\naio_write gets const struct iovec * but tun_chr_aio_write casts this to struct\niovec * and modifies the iovec. As a result, attempts to use io_submit\nto send packets to a tun device fail with weird errors such as EINVAL.\n\nSince tun is the only user of skb_copy_datagram_from_iovec, we can\nfix this simply by changing the later so that it does not\ntouch the iovec passed to it.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a1ec07a67bd8b0033dace237249654d015efa21",
      "tree": "1963b9ba273f0786c8a972c27b5599dfb4a19f06",
      "parents": [
        "0cededf3ffbb775c3716aa1d246338fdc24b1259"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Apr 20 01:25:46 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 21 05:42:44 2009 -0700"
      },
      "message": "net: skb_copy_datagram_const_iovec()\n\nThere\u0027s an skb_copy_datagram_iovec() to copy out of a paged skb,\nbut it modifies the iovec, and does not support starting\nat an offset in the destination. We want both in tun.c, so let\u0027s\nadd the function.\n\nIt\u0027s a carbon copy of skb_copy_datagram_iovec() with enough changes to\nbe annoying.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "13223cb02ccfa375f2d683d08d30db5b72264f1e",
      "tree": "d3fc7d803d22bbfe03b96cf0ba38041d42c8a1c2",
      "parents": [
        "1383bdb98c01bbd28d72336d1bf614ce79114d29",
        "07d43ba98621f08e252a48c96b258b4d572b0257"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 29 01:40:34 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 29 01:40:34 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n"
    },
    {
      "commit": "4b21cd4eedff2123712c2132c8c6264d40332465",
      "tree": "b7fad2b06145f0684d5501ba604ecd02f39efe88",
      "parents": [
        "79f1bc06dbb05f222756d6df4a9ff95588c9cc06"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Mar 28 23:38:40 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 28 23:38:40 2009 -0700"
      },
      "message": "skbuff.h: fix missing kernel-doc\n\nAdd missing struct field to fix kernel-doc warning:\n\nWarning(include/linux/skbuff.h:182): No description found for parameter \u0027flags\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d54b3538b0bfb31351d02d1669d4a978d2abfc5f",
      "tree": "5ce539ecba525b30bbfb1c46c55487099264947e",
      "parents": [
        "5d80f8e5a9dc9c9a94d4aeaa567e219a808b8a4a",
        "af50bb993dfa673cf21ab812efe620d7e0c36319"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 13:30:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 13:30:43 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (119 commits)\n  [SCSI] scsi_dh_rdac: Retry for NOT_READY check condition\n  [SCSI] mpt2sas: make global symbols unique\n  [SCSI] sd: Make revalidate less chatty\n  [SCSI] sd: Try READ CAPACITY 16 first for SBC-2 devices\n  [SCSI] sd: Refactor sd_read_capacity()\n  [SCSI] mpt2sas v00.100.11.15\n  [SCSI] mpt2sas: add MPT2SAS_MINOR(221) to miscdevice.h\n  [SCSI] ch: Add scsi type modalias\n  [SCSI] 3w-9xxx: add power management support\n  [SCSI] bsg: add linux/types.h include to bsg.h\n  [SCSI] cxgb3i: fix function descriptions\n  [SCSI] libiscsi: fix possbile null ptr session command cleanup\n  [SCSI] iscsi class: remove host no argument from session creation callout\n  [SCSI] libiscsi: pass session failure a session struct\n  [SCSI] iscsi lib: remove qdepth param from iscsi host allocation\n  [SCSI] iscsi lib: have lib create work queue for transmitting IO\n  [SCSI] iscsi class: fix lock dep warning on logout\n  [SCSI] libiscsi: don\u0027t cap queue depth in iscsi modules\n  [SCSI] iscsi_tcp: replace scsi_debug/tcp_debug logging with iscsi conn logging\n  [SCSI] libiscsi_tcp: replace tcp_debug/scsi_debug logging with session/conn logging\n  ...\n"
    },
    {
      "commit": "9247744e5eaa29aecee5342a0c8694187a6aadcd",
      "tree": "74ccf6e63f2a8192502f432376b1f68136ace8b1",
      "parents": [
        "1f1900f935e810d01c716fa2aaf8c9d25caa4151"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Sat Mar 21 13:39:26 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 21 13:39:26 2009 -0700"
      },
      "message": "skb: expose and constify hash primitives\n\nSome minor changes to queue hashing:\n 1. Use const on accessor functions\n 2. Export skb_tx_hash for use in drivers (see ixgbe)\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "01d5b2fca1fa58ed5039239fd531e9f658971ace",
      "tree": "7b1c89ee47110b9581f10797a24d5f12d46e081a",
      "parents": [
        "43eb99c5b349b188f82725652f3d1018c619d682"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Fri Feb 27 14:06:49 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 13 15:11:07 2009 -0500"
      },
      "message": "[SCSI] net: define feature flags for FCoE offloads\n\nDefine feature flags for FCoE offloads.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "ead2ceb0ec9f85cff19c43b5cdb2f8a054484431",
      "tree": "258874b824bf241698d943daa9298bb18955e451",
      "parents": [
        "4893d39e865b2897bf9fcd329697d37032d853a1"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Wed Mar 11 09:49:55 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 13 12:09:28 2009 -0700"
      },
      "message": "Network Drop Monitor: Adding kfree_skb_clean for non-drops and modifying end-of-line points for skbs\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\n\n include/linux/skbuff.h |    4 +++-\n net/core/datagram.c    |    2 +-\n net/core/skbuff.c      |   22 ++++++++++++++++++++++\n net/ipv4/arp.c         |    2 +-\n net/ipv4/udp.c         |    2 +-\n net/packet/af_packet.c |    2 +-\n 6 files changed, 29 insertions(+), 5 deletions(-)\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d3a21be86c178964167aa54c39a01260d33e7509",
      "tree": "4dbce3db76be1ec0bf11662d94921be2e13e7572",
      "parents": [
        "94f52cd152ce20aa72415bcf0804faee0d31d023"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Mar 02 03:15:58 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 02 03:15:58 2009 -0800"
      },
      "message": "skbuff.h: fix timestamps kernel-doc\n\nFix skbuff.h kernel-doc for timestamps: must include \"struct\" keyword,\notherwise there are kernel-doc errors:\n\nError(linux-next-20090227//include/linux/skbuff.h:161): cannot understand prototype: \u0027struct skb_shared_hwtstamps \u0027\nError(linux-next-20090227//include/linux/skbuff.h:177): cannot understand prototype: \u0027union skb_shared_tx \u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e70049b9e74267dd47e1ffa62302073487afcb48",
      "tree": "2cd000c0751ef31c9044b020d63f278cdf4f332d",
      "parents": [
        "d18921a0e319ab512f8186b1b1142c7b8634c779",
        "f7e603ad8f78cd3b59e33fa72707da0cbabdf699"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 24 03:50:29 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 24 03:50:29 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n"
    },
    {
      "commit": "92a0acce186cde8ead56c6915d9479773673ea1a",
      "tree": "97b7663f77f8274cb52d429c8a7db97c70daf745",
      "parents": [
        "34edaa88324004baf4884fb0388f86059d9c4878"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 17 21:24:05 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 17 21:24:05 2009 -0800"
      },
      "message": "net: Kill skb_truesize_check(), it only catches false-positives.\n\nA long time ago we had bugs, primarily in TCP, where we would modify\nskb-\u003etruesize (for TSO queue collapsing) in ways which would corrupt\nthe socket memory accounting.\n\nskb_truesize_check() was added in order to try and catch this error\nmore systematically.\n\nHowever this debugging check has morphed into a Frankenstein of sorts\nand these days it does nothing other than catch false-positives.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ac45f602ee3d1b6f326f68bc0c2591ceebf05ba4",
      "tree": "c92c86bd0d89b844a3794c0e441aa2fccb36725f",
      "parents": [
        "cb9eff097831007afb30d64373f29d99825d0068"
      ],
      "author": {
        "name": "Patrick Ohly",
        "email": "patrick.ohly@intel.com",
        "time": "Thu Feb 12 05:03:37 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 15 22:43:34 2009 -0800"
      },
      "message": "net: infrastructure for hardware time stamping\n\nThe additional per-packet information (16 bytes for time stamps, 1\nbyte for flags) is stored for all packets in the skb_shared_info\nstruct. This implementation detail is hidden from users of that\ninformation via skb_* accessor functions. A separate struct resp.\nunion is used for the additional information so that it can be\nstored/copied easily outside of skb_shared_info.\n\nCompared to previous implementations (reusing the tstamp field\ndepending on the context, optional additional structures) this\nis the simplest solution. It does not extend sk_buff itself.\n\nTX time stamping is implemented in software if the device driver\ndoesn\u0027t support hardware time stamping.\n\nThe new semantic for hardware/software time stamping around\nndo_start_xmit() is based on two assumptions about existing\nnetwork device drivers which don\u0027t support hardware time\nstamping and know nothing about it:\n - they leave the new skb_shared_tx unmodified\n - the keep the connection to the originating socket in skb-\u003esk\n   alive, i.e., don\u0027t call skb_orphan()\n\nGiven that skb_shared_tx is new, the first assumption is safe.\nThe second is only true for some drivers. As a result, software\nTX time stamping currently works with the bnx2 driver, but not\nwith the unmodified igb driver (the two drivers this patch series\nwas tested with).\n\nSigned-off-by: Patrick Ohly \u003cpatrick.ohly@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d54e6d872767ae6512978f86a35d623a8ed948c5",
      "tree": "44966ce66e10fd61f3a810ea93bd1392af7e8b8a",
      "parents": [
        "4b53b361e0fbb2390f1d98ed9eede8e0c9a887b6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 09 23:45:29 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 09 23:45:29 2009 -0800"
      },
      "message": "net: Kill skbuff macros from the stone ages.\n\nThis kills of HAVE_ALLOC_SKB and HAVE_ALIGNABLE_SKB.\n\nNothing in-tree uses them and nothing in-tree has used them\nsince 2.0.x times.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d6301d3dd1c287b32132dda15272a50c11e92a14",
      "tree": "d4e329fc83fd47331be454b916e4bf770c5371c4",
      "parents": [
        "409f0a9014fe24d906ba21aaccff80eb7f7304da"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 08 19:24:13 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 08 19:24:13 2009 -0800"
      },
      "message": "net: Increase default NET_SKB_PAD to 32.\n\nSeveral devices need to insert some \"pre headers\" in front of the\nmain packet data when they transmit a packet.\n\nCurrently we allocate only 16 bytes of pad room and this ends up not\nbeing enough for some types of hardware (NIU, usb-net, s390 qeth,\netc.)\n\nSo increase this to 32.\n\nNote that drivers still need to check in their transmit routine\nwhether enough headroom exists, and if not use skb_realloc_headroom().\nTunneling, IPSEC, and other encapsulation methods can cause the\npadding area to be used up.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "86911732d3996a9da07914b280621450111bb6da",
      "tree": "e787240d5ba869ddf4d0adfc3f9c69e0372e96ef",
      "parents": [
        "5d0d9be8ef456afc6c3fb5f8aad06ef19b704b05"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jan 29 14:19:50 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 29 16:33:03 2009 -0800"
      },
      "message": "gro: Avoid copying headers of unmerged packets\n\nUnfortunately simplicity isn\u0027t always the best.  The fraginfo\ninterface turned out to be suboptimal.  The problem was quite\nobvious.  For every packet, we have to copy the headers from\nthe frags structure into skb-\u003ehead, even though for 99% of the\npackets this part is immediately thrown away after the merge.\n\nLRO didn\u0027t have this problem because it directly read the headers\nfrom the frags structure.\n\nThis patch attempts to address this by creating an interface\nthat allows GRO to access the headers in the first frag without\nhaving to copy it.  Because all drivers that use frags place the\nheaders in the first frag this optimisation should be enough.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d5a9e24afb4ab38110ebb777588ea0bd0eacbd0a",
      "tree": "819b2f875a9a1835aa92e051460ddcfe53e9e00f",
      "parents": [
        "a73efd0a8552927ebe5dff84936f7fdac4f7e314"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 27 16:22:11 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 27 16:22:11 2009 -0800"
      },
      "message": "net: Allow RX queue selection to seed TX queue hashing.\n\nThe idea is that drivers which implement multiqueue RX\npre-seed the SKB by recording the RX queue selected by\nthe hardware.\n\nIf such a seed is found on TX, we\u0027ll use that to select\nthe outgoing TX queue.\n\nThis helps get more consistent load balancing on router\nand firewall loads.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "71d93b39e52e92aea35f1058d957cf12250d0b75",
      "tree": "270e3fe674d15467454504a99af2146c0324e08b",
      "parents": [
        "73cc19f1556b95976934de236fd9043f7208844f"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Dec 15 23:42:33 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 15 23:42:33 2008 -0800"
      },
      "message": "net: Add skb_gro_receive\n\nThis patch adds the helper skb_gro_receive to merge packets for\nGRO.  The current method is to allocate a new header skb and then\nchain the original packets to its frag_list.  This is done to\nmake it easier to integrate into the existing GSO framework.\n\nIn future as GSO is moved into the drivers, we can undo this and\nsimply chain the original packets together.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "832d11c5cd076abc0aa1eaf7be96c81d1a59ce41",
      "tree": "95b22ad16d1ff414cab39578ed8c927c2ce08723",
      "parents": [
        "f58b22fd3c16444edc393a217a74208f1894b601"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Nov 24 21:20:15 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 21:20:15 2008 -0800"
      },
      "message": "tcp: Try to restore large SKBs while SACK processing\n\nDuring SACK processing, most of the benefits of TSO are eaten by\nthe SACK blocks that one-by-one fragment SKBs to MSS sized chunks.\nThen we\u0027re in problems when cleanup work for them has to be done\nwhen a large cumulative ACK comes. Try to return back to pre-split\nstate already while more and more SACK info gets discovered by\ncombining newly discovered SACK areas with the previous skb if\nthat\u0027s SACKed as well.\n\nThis approach has a number of benefits:\n\n1) The processing overhead is spread more equally over the RTT\n2) Write queue has less skbs to process (affect everything\n   which has to walk in the queue past the sacked areas)\n3) Write queue is consistent whole the time, so no other parts\n   of TCP has to be aware of this (this was not the case with\n   some other approach that was, well, quite intrusive all\n   around).\n4) Clean_rtx_queue can release most of the pages using single\n   put_page instead of previous PAGE_SIZE/mss+1 calls\n\nIn case a hole is fully filled by the new SACK block, we attempt\nto combine the next skb too which allows construction of skbs\nthat are even larger than what tso split them to and it handles\nhole per on every nth patterns that often occur during slow start\novershoot pretty nicely. Though this to be really useful also\na retransmission would have to get lost since cumulative ACKs\nadvance one hole at a time in the most typical case.\n\nTODO: handle upwards only merging. That should be rather easy\nwhen segment is fully sacked but I\u0027m leaving that as future\nwork item (it won\u0027t make very large difference anyway since\nthis current approach already covers quite a lot of normal\ncases).\n\nI was earlier thinking of some sophisticated way of tracking\ntimestamps of the first and the last segment but later on\nrealized that it won\u0027t be that necessary at all to store the\ntimestamp of the last segment. The cases that can occur are\nbasically either:\n  1) ambiguous \u003d\u003e no sensible measurement can be taken anyway\n  2) non-ambiguous is due to reordering \u003d\u003e having the timestamp\n     of the last segment there is just skewing things more off\n     than does some good since the ack got triggered by one of\n     the holes (besides some substle issues that would make\n     determining right hole/skb even harder problem). Anyway,\n     it has nothing to do with this change then.\n\nI choose to route some abnormal looking cases with goto noop,\nsome could be handled differently (eg., by stopping the\nwalking at that skb but again). In general, they either\nshouldn\u0027t happen at all or are rare enough to make no difference\nin practice.\n\nIn theory this change (as whole) could cause some macroscale\nregression (global) because of cache misses that are taken over\nthe round-trip time but it gets very likely better because of much\nless (local) cache misses per other write queue walkers and the\nbig recovery clearing cumulative ack.\n\nWorth to note that these benefits would be very easy to get also\nwithout TSO/GSO being on as long as the data is in pages so that\nwe can merge them. Currently I won\u0027t let that happen because\nDSACK splitting at fragment that would mess up pcounts due to\nsk_can_gso in tcp_set_skb_tso_segs. Once DSACKs fragments gets\navoided, we have some conditions that can be made less strict.\n\nTODO: I will probably have to convert the excessive pointer\npassing to struct sacktag_state... :-)\n\nMy testing revealed that considerable amount of skbs couldn\u0027t\nbe shifted because they were cloned (most likely still awaiting\ntx reclaim)...\n\n[The rest is considering future work instead since I got\nrepeatably EFAULT to tcpdump\u0027s recvfrom when I added\npskb_expand_head to deal with clones, so I separated that\ninto another, later patch]\n\n...To counter that, I gave up on the fifth advantage:\n\n5) When growing previous SACK block, less allocs for new skbs\n   are done, basically a new alloc is needed only when new hole\n   is detected and when the previous skb runs out of frags space\n\n...which now only happens of if reclaim is fast enough to dispose\nthe clone before the SACK block comes in (the window is RTT long),\notherwise we\u0027ll have to alloc some.\n\nWith clones being handled I got these numbers (will be somewhat\nworse without that), taken with fine-grained mibs:\n\n                  TCPSackShifted 398\n                   TCPSackMerged 877\n            TCPSackShiftFallback 320\n      TCPSACKCOLLAPSEFALLBACKGSO 0\n  TCPSACKCOLLAPSEFALLBACKSKBBITS 0\n  TCPSACKCOLLAPSEFALLBACKSKBDATA 0\n    TCPSACKCOLLAPSEFALLBACKBELOW 0\n    TCPSACKCOLLAPSEFALLBACKFIRST 1\n TCPSACKCOLLAPSEFALLBACKPREVBITS 318\n      TCPSACKCOLLAPSEFALLBACKMSS 1\n   TCPSACKCOLLAPSEFALLBACKNOHEAD 0\n    TCPSACKCOLLAPSEFALLBACKSHIFT 0\n          TCPSACKCOLLAPSENOOPSEQ 0\n  TCPSACKCOLLAPSENOOPSMALLPCOUNT 0\n     TCPSACKCOLLAPSENOOPSMALLLEN 0\n             TCPSACKCOLLAPSEHOLE 12\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8b30b1fe368ab03049435884c11c5c50e4c4ef0b",
      "tree": "02b27b36cf90267d59584b493ad652e3a4cc6a7e",
      "parents": [
        "4393dce9402c58744433c7a4f3931e17ddde4fb4"
      ],
      "author": {
        "name": "Sujith",
        "email": "Sujith.Manoharan@atheros.com",
        "time": "Fri Oct 24 09:55:27 2008 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Oct 31 19:02:14 2008 -0400"
      },
      "message": "mac80211: Re-enable aggregation\n\nWireless HW without any dedicated queues for aggregation\ndo not need the ampdu_queues mechanism present right now\nin mac80211. Since mac80211 is still incomplete wrt TX MQ\nchanges, do not allow aggregation sessions for drivers that\nset ampdu_queues.\n\nThis is only an interim hack until Intel fixes the requeue issue.\n\nSigned-off-by: Sujith \u003cSujith.Manoharan@atheros.com\u003e\nSigned-off-by: Luis Rodriguez \u003cLuis.Rodriguez@Atheros.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "def8b4faff5ca349beafbbfeb2c51f3602a6ef3a",
      "tree": "a90fbb0b6ae2a49c507465801f31df77bc5ebf9d",
      "parents": [
        "b057efd4d226fcc3a92b0dc6d8ea8e8185ecb260"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Oct 28 13:24:06 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 28 13:24:06 2008 -0700"
      },
      "message": "net: reduce structures when XFRM\u003dn\n\nifdef out\n* struct sk_buff::sp\t\t(pointer)\n* struct dst_entry::xfrm\t(pointer)\n* struct sock::sk_policy\t(2 pointers)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "654bed16cf86a9ef94495d9e6131b7ff7840a3dd",
      "tree": "7d64fdb8de3e893b1acf5f420890a503a4e0327f",
      "parents": [
        "c57943a1c96214ee68f3890bb6772841ffbfd606"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 07 14:22:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 07 14:22:33 2008 -0700"
      },
      "message": "net: packet split receive api\n\nAdd some packet-split receive hooks.\n\nFor one this allows to do NUMA node affine page allocs. Later on these\nhooks will be extended to do emergency reserve allocations for\nfragments.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "04a4bb55bcf35b63d40fd2725e58599ff8310dd7",
      "tree": "a4be70eeb5b33829467851904fcdc26522c24a68",
      "parents": [
        "788df7322a7543a337c1ea400d38b621346ea78e"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@marvell.com",
        "time": "Wed Oct 01 02:33:12 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 01 02:33:12 2008 -0700"
      },
      "message": "net: add skb_recycle_check() to enable netdriver skb recycling\n\nThis patch adds skb_recycle_check(), which can be used by a network\ndriver after transmitting an skb to check whether this skb can be\nrecycled as a receive buffer.\n\nskb_recycle_check() checks that the skb is not shared or cloned, and\nthat it is linear and its head portion large enough (as determined by\nthe driver) to be recycled as a receive buffer.  If these conditions\nare met, it does any necessary reference count dropping and cleans\nup the skbuff as if it just came from __alloc_skb().\n\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1164f52a244204830c7625b3c22812781996d7b4",
      "tree": "afbc8f208e299bc0a68d8d50ba1dd9b5fe5b596d",
      "parents": [
        "249c8b42c7e5e6f33d0ff983041f08278b137e53"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 23 00:49:44 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 23 00:49:44 2008 -0700"
      },
      "message": "net: Add skb_queue_walk_from() and skb_queue_walk_from_safe().\n\nThese will be used by TCP write queue handling and elsewhere.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "249c8b42c7e5e6f33d0ff983041f08278b137e53",
      "tree": "d7ea5f0e659833a719978d0f76f4db109e013f6d",
      "parents": [
        "d258b4914bcda9177bcc7bbd8e1a97b281b460af"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 23 00:44:42 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 23 00:44:42 2008 -0700"
      },
      "message": "net: Add skb_queue_next().\n\nA lot of code wants to iterate over an SKB queue at the top level using\nit\u0027s own control structure and iterator scheme.\n\nProvide skb_queue_next(), which is only valid to invoke if\nskb_queue_is_last() returns false.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc7ebb212d3e51d1188948d975aa93dbb0f58b25",
      "tree": "b4b0c1922e1128626b02482636c767392866b581",
      "parents": [
        "b5f61ab96dd093c5190c1540fed14f71ed821ce7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 23 00:34:07 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 23 00:34:07 2008 -0700"
      },
      "message": "net: Add skb_queue_is_last().\n\nSeveral bits of code want to know \"is this the last SKB in\na queue\", and all of them implement this by hand.\n\nProvide an common interface to make this check.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1d4a31dde95af56edac4dee268249a29a21fa7c0",
      "tree": "68d9bd2d277aa13da4020111d2e8420b129dc373",
      "parents": [
        "0b815a1a6d43ab498674b8430c8c35ab08487a16"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 22 21:57:21 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 22 21:57:21 2008 -0700"
      },
      "message": "net: Fix bus in SKB queue splicing interfaces.\n\nHandle the case of head being non-empty, by adding list-\u003eqlen\nto head-\u003eqlen instead of using direct assignment.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "67fed45930fa31e92c11beb3a3dbf83a1a92a58d",
      "tree": "7c7aa03a8cc730b109193a8fd127b83f69187e85",
      "parents": [
        "ceade961c4c8d8bc033dc7907047818c9525c326"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 21 22:36:24 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 21 22:36:24 2008 -0700"
      },
      "message": "net: Add new interfaces for SKB list light-weight init and splicing.\n\nThis will be used by subsequent changesets.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a40c24a13366e324bc0ff8c3bb107db89312c984",
      "tree": "e09838bb9becdc16220b8d1bbc67b67010543190",
      "parents": [
        "271bff7afbb2cbaa81e744006ad2fff1f3e10b1b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 11 04:51:14 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 11 04:51:14 2008 -0700"
      },
      "message": "net: Add SKB DMA mapping helper functions.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "271bff7afbb2cbaa81e744006ad2fff1f3e10b1b",
      "tree": "3c745b63aa7c1dca020960ad5d13b93ff1d82b48",
      "parents": [
        "1e493d1946a0b26b79001c18d7312d536156ff5a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 11 04:48:58 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 11 04:48:58 2008 -0700"
      },
      "message": "net: Add DMA mapping tokens to skb_shared_info.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "db543c1f973cd1d557cc32ceee76737c1e4d2898",
      "tree": "a87f3d359895b08648362f785a01559adbb30b24",
      "parents": [
        "e3b99556975907530aeb9745e7b3945a0da48f17"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Aug 15 15:13:53 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 15 19:52:30 2008 -0700"
      },
      "message": "net: skb_copy_datagram_from_iovec()\n\nThere\u0027s an skb_copy_datagram_iovec() to copy out of a paged skb, but\nnothing the other way around (because we don\u0027t do that).\n\nWe want to allocate big skbs in tun.c, so let\u0027s add the function.\nIt\u0027s a carbon copy of skb_copy_datagram_iovec() with enough changes to\nbe annoying.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "987c402ac31988f7ecdb38b657bcfeea5831d479",
      "tree": "64917b72fe9171d3de5b6950e3cc3889bb17af3a",
      "parents": [
        "1cfa26661a85549063e369e2b40275eeaa7b923c"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Aug 11 18:17:17 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 11 18:17:17 2008 -0700"
      },
      "message": "skbuff: Code readability NiT\n\nInserting a space between the `-\u0027 improved the C readability (some languages\nallow hyphens within functions and variable names, which is confusing).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4a7b61d23505854dff7d04cc11944566cffdd0ee",
      "tree": "9781004b3b7ce3f1e0da150ed376a1e3c485c670",
      "parents": [
        "8a9204db665365354b349ed5b0bc054f0433a2a4"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Jul 31 20:52:08 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 31 20:52:08 2008 -0700"
      },
      "message": "skbuff: add missing kernel-doc for do_not_encrypt\n\nAdd missing kernel-doc notation to sk_buff:\n\nWarning(linux-2.6.27-rc1-git2//include/linux/skbuff.h:345): No description found for parameter \u0027do_not_encrypt\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d0f09804144fd9471a13cf4d80e66842c7fa114f",
      "tree": "4a1f0f78bad7e5be4ad400397a19d4b8d6fbbdcd",
      "parents": [
        "0ccd58fc03f40529f66190b1a41e92a732d2bda8"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue Jul 29 11:32:07 2008 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jul 29 16:55:08 2008 -0400"
      },
      "message": "mac80211: partially fix skb-\u003ecb use\n\nThis patch fixes mac80211 to not use the skb-\u003ecb over the queue step\nfrom virtual interfaces to the master. The patch also, for now,\ndisables aggregation because that would still require requeuing,\nwill fix that in a separate patch. There are two other places (software\nrequeue and powersaving stations) where requeue can happen, but that is\nnot currently used by any drivers/not possible to use respectively.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "6aa895b047720f71ec4eb11452f7c3ce8426941f",
      "tree": "ba52827c2e90de0678043ecf9d43208057d05da7",
      "parents": [
        "968edbe1c82f1a50d80225ed7e410aba419e55bf"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jul 14 22:49:06 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 22:49:06 2008 -0700"
      },
      "message": "vlan: Don\u0027t store VLAN tag in cb\n\nUse a real skb member to store the skb to avoid clashes with qdiscs,\nwhich are allowed to use the cb area themselves. As currently only real\ndevices that consume the skb set the NETIF_F_HW_VLAN_TX flag, no explicit\ninvalidation is neccessary.\n\nThe new member fills a hole on 64 bit, the skb layout changes from:\n\n        __u32                      mark;                 /*   172     4 */\n        sk_buff_data_t             transport_header;     /*   176     4 */\n        sk_buff_data_t             network_header;       /*   180     4 */\n        sk_buff_data_t             mac_header;           /*   184     4 */\n        sk_buff_data_t             tail;                 /*   188     4 */\n        /* --- cacheline 3 boundary (192 bytes) --- */\n        sk_buff_data_t             end;                  /*   192     4 */\n\n        /* XXX 4 bytes hole, try to pack */\n\nto\n\n        __u32                      mark;                 /*   172     4 */\n        __u16                      vlan_tci;             /*   176     2 */\n\n        /* XXX 2 bytes hole, try to pack */\n\n        sk_buff_data_t             transport_header;     /*   180     4 */\n        sk_buff_data_t             network_header;       /*   184     4 */\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b19fa1fa91845234961c64dbd564671aa7c0fd27",
      "tree": "efb09da87299ef503b59396b69a7667f1650e378",
      "parents": [
        "c773e847ea8f6812804e40f52399c6921a00eab1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:14:24 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 23:14:24 2008 -0700"
      },
      "message": "net: Delete NETDEVICES_MULTIQUEUE kconfig option.\n\nMultiple TX queue support is a core networking feature.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4497b0763cb1afae463f5e144c28b5d806e28b60",
      "tree": "3e86c53b5eb461eac7523885e43f36033cc03968",
      "parents": [
        "0187bdfb05674147774ca79a79942537f3ad54bd"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Thu Jun 19 16:22:28 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 19 16:22:28 2008 -0700"
      },
      "message": "net: Discard and warn about LRO\u0027d skbs received for forwarding\n\nAdd skb_warn_if_lro() to test whether an skb was received with LRO and\nwarn if so.\n\nChange br_forward(), ip_forward() and ip6_forward() to call it) and\ndiscard the skb if it returns true.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "553a56726be86c09cfa53c84da1ea0e2043e364e",
      "tree": "1a9d99ab82fffd8019bc584d1685f949ca796114",
      "parents": [
        "9a64388d83f6ef08dfff405a9d122e3dbcb6bf38"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun Apr 20 10:51:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 21 15:51:36 2008 -0700"
      },
      "message": "skbuff: fix missing kernel-doc notation\n\nAdd kernel-doc notation for ndisc_nodetype:\n\nWarning(linux-2.6.25-git2//include/linux/skbuff.h:340): No description found for parameter \u0027ndisc_nodetype\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5572855ec492334d8c3ec0e0e86c31865d5cf07",
      "tree": "b33ff667553a0592d621a02852964afc926ee0f3",
      "parents": [
        "7de6c033367ab86f39c7723392caf73325cbf286"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Apr 14 00:05:28 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 14 00:05:28 2008 -0700"
      },
      "message": "[SKB]: __skb_queue_tail \u003d __skb_insert before\n\nThis expresses __skb_queue_tail() in terms of __skb_insert(),\nusing __skb_insert_before() as auxiliary function.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7de6c033367ab86f39c7723392caf73325cbf286",
      "tree": "e05d84e6e02b7a0245bfa62e02835882ffdffa48",
      "parents": [
        "bf299275882624b1908521ee8074df85160e9679"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Apr 14 00:05:09 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 14 00:05:09 2008 -0700"
      },
      "message": "[SKB]: __skb_append \u003d __skb_queue_after \n\nThis expresses __skb_append in terms of __skb_queue_after, exploiting that\n\n  __skb_append(old, new, list) \u003d __skb_queue_after(list, old, new).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bf299275882624b1908521ee8074df85160e9679",
      "tree": "f35ff7ad85ca54f3028bda5fe125c0e7bd291d59",
      "parents": [
        "f525c06d12b72cddb085df7f6f348c3c5a39b3ce"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Apr 14 00:04:51 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 14 00:04:51 2008 -0700"
      },
      "message": "[SKB]: __skb_queue_after(prev) \u003d __skb_insert(prev, prev-\u003enext)\n\nBy reordering, __skb_queue_after() is expressed in terms of __skb_insert().\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f525c06d12b72cddb085df7f6f348c3c5a39b3ce",
      "tree": "b2b919ff924d0feb3c8cb1b565a001949ec92270",
      "parents": [
        "0912ea38de61378c5c753aef78c12e2f95854313"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Apr 14 00:04:12 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 14 00:04:12 2008 -0700"
      },
      "message": "[SKB]: __skb_dequeue \u003d skb_peek + __skb_unlink\n\nBy rearranging the order of declarations, __skb_dequeue() is expressed in terms of\n\n * skb_peek() and\n * __skb_unlink(),\n\nthus in effect mirroring the analogue implementation of __skb_dequeue_tail().\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "de357cc01334a468e4d5b7ba66a17b0d3ca9d63e",
      "tree": "8cae8de67f575dac77c265bf061f46820d6b8c68",
      "parents": [
        "52eeeb8481d705e61e2e9aae974e7799a93783e9"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sat Mar 15 23:59:18 2008 -0400"
      },
      "committer": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Thu Apr 03 10:06:01 2008 +0900"
      },
      "message": "[IPV6] NDISC: Don\u0027t rely on node-type hint from L2 unless required.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    },
    {
      "commit": "fadf6bf06069138f8e97c9a963be38348ba2708b",
      "tree": "a21470d3db41e5969143f5cd272bc6270dcb384a",
      "parents": [
        "f0bdb7ba5af5a7028479e9067ee74e9d66eea6df"
      ],
      "author": {
        "name": "Templin, Fred L",
        "email": "Fred.L.Templin@boeing.com",
        "time": "Tue Mar 11 18:35:59 2008 -0400"
      },
      "committer": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Thu Apr 03 10:05:58 2008 +0900"
      },
      "message": "[IPV6] SIT: Add PRL management for ISATAP.\n\nThis patch updates the Linux the Intra-Site Automatic Tunnel Addressing\nProtocol (ISATAP) implementation. It places the ISATAP potential router\nlist (PRL) in the kernel and adds three new private ioctls for PRL\nmanagement.\n\n[Add several changes of structure name, constant names etc. - yoshfuji]\n\nSigned-off-by: Fred L. Templin \u003cfred.l.templin@boeing.com\u003e\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    },
    {
      "commit": "419ae74ecc9494e58928a5c6652f4c072f3ca744",
      "tree": "5725c6b6558d07e0c39fc98c32f68f2a7e0cf3aa",
      "parents": [
        "8d3308687f7f1eaa1bb5d202d14752d5f90068eb"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Mar 27 17:54:01 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 27 17:54:01 2008 -0700"
      },
      "message": "[NET]: uninline skb_trim, de-bloats\n\nAllyesconfig (v2.6.24-mm1):\n-10976  209 funcs, 123 +, 11099 -, diff: -10976 --- skb_trim\n\nWithout number of debug related CONFIGs (v2.6.25-rc2-mm1):\n-7360  192 funcs, 131 +, 7491 -, diff: -7360 --- skb_trim\nskb_trim                      |  +42\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c2aa270ad73d385bd6cdebf5d741bdf18a3e17ad",
      "tree": "1e8de0edce4f149a9918505f495550c8ac9bac56",
      "parents": [
        "f58518e678e5eef430c8d5cdcc7cd28d285f1980"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Mar 27 17:52:40 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 27 17:52:40 2008 -0700"
      },
      "message": "[NET]: uninline skb_push, de-bloats a lot\n\nAllyesconfig (v2.6.24-mm1):\n\n-21593  356 funcs, 2418 +, 24011 -, diff: -21593 --- skb_push\n\nWithout many debug related CONFIGs (v2.6.25-rc2-mm1):\n\n-13890  341 funcs, 189 +, 14079 -, diff: -13890 --- skb_push\nskb_push                      |  +46\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f58518e678e5eef430c8d5cdcc7cd28d285f1980",
      "tree": "e452fd4e737c69d969dc373bbdc24e3ac4ab1175",
      "parents": [
        "6be8ac2fdc5e69dec53913a42312a92dbfbd4907"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Mar 27 17:51:31 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 27 17:51:31 2008 -0700"
      },
      "message": "[NET]: uninline dev_alloc_skb, de-bloats a lot\n\nAllyesconfig (v2.6.24-mm1):\n\n-23668  392 funcs, 104 +, 23772 -, diff: -23668 --- dev_alloc_skb\n\nWithout many debug CONFIGs (v2.6.25-rc2-mm1):\n\n-12178  382 funcs, 157 +, 12335 -, diff: -12178 --- dev_alloc_skb\ndev_alloc_skb                 |  +37\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6be8ac2fdc5e69dec53913a42312a92dbfbd4907",
      "tree": "ad0dc3bad1b36a7b1d682ee5ec8dacc1467c09f7",
      "parents": [
        "0dde3e16485dca16eb682dd59da1a598bf62e284"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Mar 27 17:47:24 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 27 17:47:24 2008 -0700"
      },
      "message": "[NET]: uninline skb_pull, de-bloats a lot\n\nAllyesconfig (v2.6.24-mm1):\n\n-28162  354 funcs, 3005 +, 31167 -, diff: -28162 --- skb_pull\n\nWithout number of debug related CONFIGs (v2.6.25-rc2-mm1):\n\n-9697  338 funcs, 221 +, 9918 -, diff: -9697 --- skb_pull\nskb_pull                      |  +44\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0dde3e16485dca16eb682dd59da1a598bf62e284",
      "tree": "9b3f3f1b54286ecf62e3101de104915a315a53c7",
      "parents": [
        "4f95165d4bf6369d57052d60cc0266c569c6b077"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Mar 27 17:43:41 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 27 17:43:41 2008 -0700"
      },
      "message": "[NET]: uninline skb_put, de-bloats a lot\n\nAllyesconfig (v2.6.24-mm1):\n\n~500 files changed\n...\n 869 funcs, 198 +, 111003 -, diff: -110805 --- skb_put\n  skb_put                       | +104\n\nWithout number of debug related CONFIGs (v2.6.25-rc2-mm1):\n\n-60744  855 funcs, 861 +, 61605 -, diff: -60744 --- skb_put\n  skb_put                       |  +57\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee6b967301b4aa5d4a4b61e2f682f086266db9fb",
      "tree": "197c2430f87733dc80d00d1971f1be2a0e562358",
      "parents": [
        "a05c44f6d5fb6cd29da04f96bf5ffaa05f545ac5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Mar 05 18:30:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 05 18:30:47 2008 -0800"
      },
      "message": "[IPV4]: Add \u0027rtable\u0027 field in struct sk_buff to alias \u0027dst\u0027 and avoid casts\n\n(Anonymous) unions can help us to avoid ugly casts.\n\nA common cast it the (struct rtable *)skb-\u003edst one.\n\nDefining an union like  :\nunion {\n     struct dst_entry *dst;\n     struct rtable *rtable;\n};\npermits to use skb-\u003ertable in place.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "31729363418ea25b01aa9410838c38e36792e44c",
      "tree": "a6ddbab1cc5c6f5b732401b2c3521b41cfbec72a",
      "parents": [
        "2df96af03d97e98cbea9f9cb71fc56ea5fc544b2"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Feb 18 20:52:13 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 18 20:52:13 2008 -0800"
      },
      "message": "net: fix kernel-doc warnings in header files\n\nAdd missing structure kernel-doc descriptions to sock.h \u0026 skbuff.h\nto fix kernel-doc warnings.\n\n(I think that Stephen H. sent a similar patch, but I can\u0027t find it.\nI just want to kill the warnings, with either patch.)\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f35d9d8aae08940b7fdd1bb8110619da2ece6b28",
      "tree": "562d8d7a6583d0a0750ec8d996026b73e8315421",
      "parents": [
        "9135f1901ee6449dfe338adf6e40e9c2025b8150"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Feb 04 23:49:54 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Feb 04 23:49:56 2008 +1100"
      },
      "message": "virtio: Implement skb_partial_csum_set, for setting partial csums on untrusted packets.\n\nUse it in virtio_net (replacing buggy version there), it\u0027s also going\nto be used by TAP for partial csum support.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2fd8e526f44beaf439f351b310648b559e62a7cb",
      "tree": "aae812290eef88f76efd682d8e4dd3cde67bd046",
      "parents": [
        "d44caf88e8f7906a4f99dbfc92108d660cfcd280"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 03:56:35 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:27:29 2008 -0800"
      },
      "message": "[NETFILTER]: bridge netfilter: remove nf_bridge_info read-only netoutdev member\n\nBefore the removal of the deferred output hooks, netoutdev was used in\ncase of VLANs on top of a bridge to store the VLAN device, so the\ndeferred hooks would see the correct output device. This isn\u0027t\nnecessary anymore since we\u0027re calling the output hooks for the correct\ndevice directly in the IP stack.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a59322be07c964e916d15be3df473fb7ba20c41e",
      "tree": "16d4caa41c1fd6c3fb907ce792202b157e6c9a1e",
      "parents": [
        "1781f7f5804e52ee2d35328b129602146a8d8254"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed Dec 05 01:53:40 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:34 2008 -0800"
      },
      "message": "[UDP]: Only increment counter on first peek/recv\n\nThe previous move of the the UDP inDatagrams counter caused each\npeek of the same packet to be counted separately.  This may be\nundesirable.\n\nThis patch fixes this by adding a bit to sk_buff to record whether\nthis packet has already been seen through skb_recv_datagram.  We\nthen only increment the counter when the packet is seen for the\nfirst time.\n\nThe only dodgy part is the fact that skb_recv_datagram doesn\u0027t have\na good way of returning this new bit of information.  So I\u0027ve added\na new function __skb_recv_datagram that does return this and made\nskb_recv_datagram a wrapper around it.\n\nThe plan is to eventually replace all uses of skb_recv_datagram with\nthis new function at which time it can be renamed its proper name.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27ab2568649d5ba6c5a20212079b7c4f6da4ca0d",
      "tree": "19bb85e73d7deb0adf40386af3117c2f397b653d",
      "parents": [
        "c8fecf2242a0ab7230210665986b8ef915e1ae9e"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed Dec 05 01:51:58 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:32 2008 -0800"
      },
      "message": "[UDP]: Avoid repeated counting of checksum errors due to peeking\n\nCurrently it is possible for two processes to peek on the same socket\nand end up incrementing the error counter twice for the same packet.\n\nThis patch fixes it by making skb_kill_datagram return whether it\nsucceeded in unlinking the packet and only incrementing the counter\nif it did.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9c55e01c0cc835818475a6ce8c4d684df9949ac8",
      "tree": "1115311436677f837a4b477e3fd23c5e0ae184ef",
      "parents": [
        "bbdfc2f70610bebb841d0874dc901c648308e43a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 06 23:30:13 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:53:31 2008 -0800"
      },
      "message": "[TCP]: Splice receive support.\n\nSupport for network splice receive.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2d4baff8da06f424a6fca10e26434c4926a7c3df",
      "tree": "c0f537d5cf0aca544ba77d11b529f146f5ba5bc8",
      "parents": [
        "218ad12f42e0b6207105cde8fd13017d1ed449e4"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Nov 26 23:11:19 2007 +0800"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Nov 26 23:11:19 2007 +0800"
      },
      "message": "[SKBUFF]: Free old skb properly in skb_morph\n\nThe skb_morph function only freed the data part of the dst skb, but leaked\nthe auxiliary data such as the netfilter fields.  This patch fixes this by\nmoving the relevant parts from __kfree_skb to skb_release_all and calling\nit in skb_morph.\n\nIt also makes kfree_skbmem static since it\u0027s no longer called anywhere else\nand it now no longer does skb_release_data.\n\nThanks to Yasuyuki KOZAKAI for finding this problem and posting a patch for\nit.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "78608ba0326f1448f9a10dbb402a38192559f639",
      "tree": "beed02e8e886be6a9661e9eb6ca60cc1208c59d2",
      "parents": [
        "39aaac114e192bce500204f9c9e1fffff4c2b519"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sat Nov 10 21:53:30 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 10 21:53:30 2007 -0800"
      },
      "message": "[NET]: Fix skb_truesize_check() assertion\n\nThe intent of the assertion in skb_truesize_check() is to check\nfor skb-\u003etruesize being decremented too much by other code,\nresulting in a wraparound below zero.\n\nThe type of the right side of the comparison causes the compiler to\npromote the left side to an unsigned type, despite the presence of an\nexplicit type cast.  This defeats the check for negativity.\n\nEnsure both sides of the comparison are a signed type to prevent the\nimplicit type conversion.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c2636b4d9e8ab8d16b9e2bf0f0744bb8418d4026",
      "tree": "4db39ee9b93871385d72e776bec2e640166e3b34",
      "parents": [
        "0ffdd581497286e8af529b0b39770c01eab15b30"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Oct 23 21:07:32 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Oct 23 21:27:55 2007 -0700"
      },
      "message": "[NET]: Treat the sign of the result of skb_headroom() consistently\n\nIn some places, the result of skb_headroom() is compared to an unsigned\ninteger, and in others, the result is compared to a signed integer.  Make\nthe comparisons consistent and correct.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e3fa259bcbbca25c8e8275c8dcedcf484854465b",
      "tree": "73698ab7037d9a71fa0cff28d95a9b878572c6c1",
      "parents": [
        "668f895a85b0c3a62a690425145f13dabebebd7a"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Oct 21 17:02:30 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:57 2007 -0700"
      },
      "message": "[NET]: Cut off the queue_mapping field from sk_buff\n\nJust hide it behind the #ifdef, because nobody wants\nit now.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4e3ab47a547616e583c7a5458beced6aa34c8ef3",
      "tree": "b889a8a472c657f706f91c4831c2fd5ee19f6a4e",
      "parents": [
        "dfa4091129019959f4608756f76dc687495287ad"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Oct 21 17:01:29 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:56 2007 -0700"
      },
      "message": "[NET]: Make and use skb_get_queue_mapping\n\nMake the helper for getting the field, symmetrical to\nthe \"set\" one. Return 0 if CONFIG_NETDEVICES_MULTIQUEUE\u003dn\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "deea84b0ae3d26b41502ae0a39fe7fe134e703d0",
      "tree": "4730d75c6e2edf50b0e61087178baa9092647b94",
      "parents": [
        "bfb85c9f753a7172bd962e8717118191dfd612cc"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Oct 21 16:27:46 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:53 2007 -0700"
      },
      "message": "[NET]: Fix SKB_WITH_OVERHEAD calculation\n\nThe calculation in SKB_WITH_OVERHEAD is incorrect in that it can cause\nan overflow across a page boundary which is what it\u0027s meant to prevent.\nIn particular, the header length (X) should not be lumped together with\nskb_shared_info.  The latter needs to be aligned properly while the header\nhas no choice but to sit in front of wherever the payload is.\n\nTherefore the correct calculation is to take away the aligned size of\nskb_shared_info, and then subtract the header length.  The resulting\nquantity L satisfies the following inequality:\n\n\tSKB_DATA_ALIGN(L + X) + sizeof(struct skb_shared_info) \u003c\u003d PAGE_SIZE\n\nThis is the quantity used by alloc_skb to do the actual allocation.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "663ead3bb8d5b561e70fc3bb3861c9220b5a77eb"
}
