)]}'
{
  "log": [
    {
      "commit": "f9599ce11192f24dbb0f4fdb70121a05edc58342",
      "tree": "12da3fa1947471845ac4277cc030e81fbfd78483",
      "parents": [
        "36d12690a2e9bcacae5a2a7e0fb6345a3caad625"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Wed Aug 04 04:43:44 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 04 21:53:14 2010 -0700"
      },
      "message": "sk_buff: introduce pskb_network_may_pull()\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cff0d6e6edac7672b3f915bb4fb59f279243b7f9",
      "tree": "a12b08344380a9f02c9d043b176b82e921266d6e",
      "parents": [
        "3578b0c8abc7bdb4f02152ce5db7e09d484c6866"
      ],
      "author": {
        "name": "Oliver Hartkopp",
        "email": "socketcan@hartkopp.net",
        "time": "Tue Aug 03 00:31:48 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 03 00:31:48 2010 -0700"
      },
      "message": "can-raw: Fix skb_orphan_try handling\n\nCommit fc6055a5ba31e2c14e36e8939f9bf2b6d586a7f5 (net: Introduce\nskb_orphan_try()) allows an early orphan of the skb and takes care on\ntx timestamping, which needs the sk-reference in the skb on driver level.\nSo does the can-raw socket, which has not been taken into account here.\n\nThe patch below adds a \u0027prevent_sk_orphan\u0027 bit in the skb tx shared info,\nwhich fixes the problem discovered by Matthias Fuchs here:\n\n      http://marc.info/?t\u003d128030411900003\u0026r\u003d1\u0026w\u003d2\n\nEven if it\u0027s not a primary tx timestamp topic it fits well into some skb\nshared tx context. Or should be find a different place for the information to\nprotect the sk reference until it reaches the driver level?\n\nSigned-off-by: Oliver Hartkopp \u003csocketcan@hartkopp.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fed66381d65a35198639f564365e61a7f256bf79",
      "tree": "e4d4c83f135f58c32a85454e28e33407711f7718",
      "parents": [
        "c1f79426e2df5ef96fe3e76de6c7606d15bf390b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jul 22 19:09:08 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 24 21:05:57 2010 -0700"
      },
      "message": "net: pskb_expand_head() optimization\n\nMove frags[] at the end of struct skb_shared_info, and make\npskb_expand_head() copy only the used part of it instead of whole array.\n\nThis should avoid kmemcheck warnings and speedup pskb_expand_head() as\nwell, avoiding a lot of cache misses.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1f19b51d1d87f3e3bb7e6648f43f7d57ed2da6b",
      "tree": "d9525359409e3493b48e8676717cc11ed69b640a",
      "parents": [
        "15f0127d1d189fda3294b7823e3e654afca54055"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Sat Jul 17 08:49:36 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 18 19:15:26 2010 -0700"
      },
      "message": "net: support time stamping in phy devices.\n\nThis patch adds a new networking option to allow hardware time stamps\nfrom PHY devices. When enabled, likely candidates among incoming and\noutgoing network packets are offered to the PHY driver for possible\ntime stamping. When accepted by the PHY driver, incoming packets are\ndeferred for later delivery by the driver.\n\nThe patch also adds phylib driver methods for the SIOCSHWTSTAMP ioctl\nand callbacks for transmit and receive time stamping. Drivers may\noptionally implement these functions.\n\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4507a71507d4ff37e9a499c4241b7701ed1feab4",
      "tree": "775ff8a11852f37ebc78363cf41729221cd92718",
      "parents": [
        "ad1afb00393915a51c21b1ae8704562bf036855f"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Sat Jul 17 08:48:28 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 18 19:15:25 2010 -0700"
      },
      "message": "net: add driver hook for tx time stamping.\n\nThis patch adds a hook for transmit time stamps. The transmit hook\nallows a software fallback for transmit time stamps, for MACs\nlacking time stamping hardware. Using the hook will still require\nadding an inline function call to each MAC driver.\n\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5933dd2f028cdcbb4b3169dca594324704ba10ae",
      "tree": "c49d33589cf1ee2047ed4aa00f700e7ddb090447",
      "parents": [
        "a95d8c88bea0c93505e1d143d075f112be2b25e3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 15 18:16:43 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 15 18:16:43 2010 -0700"
      },
      "message": "net: NET_SKB_PAD should depend on L1_CACHE_BYTES\n\nIn old kernels, NET_SKB_PAD was defined to 16.\n\nThen commit d6301d3dd1c2 (net: Increase default NET_SKB_PAD to 32), and\ncommit 18e8c134f4e9 (net: Increase NET_SKB_PAD to 64 bytes) increased it\nto 64.\n\nWhile first patch was governed by network stack needs, second was more\ndriven by performance issues on current hardware. Real intent was to\nalign data on a cache line boundary.\n\nSo use max(32, L1_CACHE_BYTES) instead of 64, to be more generic.\n\nRemove microblaze and powerpc own NET_SKB_PAD definitions.\n\nThanks to Alexander Duyck and David Miller for their comments.\n\nSuggested-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62522d36d74a843e78d17f2dffc90468c6762803",
      "tree": "d9d21de6724425c1b0ba12991e0865556aeda6b4",
      "parents": [
        "a71fba97295db924c0b90266e9833e5059fead24",
        "e79aa8671033535c2e9ffc0a68010ae49ed5734c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 11 13:32:31 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 11 13:32:31 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "597a264b1a9c7e36d1728f677c66c5c1f7e3b837",
      "tree": "22db16f0a7b54ece127e127e152e9172456d9e1c",
      "parents": [
        "00d9d6a185de89edc0649ca4ead58f0283dfcbac"
      ],
      "author": {
        "name": "John Fastabend",
        "email": "john.r.fastabend@intel.com",
        "time": "Thu Jun 03 09:30:11 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 10 22:23:34 2010 -0700"
      },
      "message": "net: deliver skbs on inactive slaves to exact matches\n\nCurrently, the accelerated receive path for VLAN\u0027s will\ndrop packets if the real device is an inactive slave and\nis not one of the special pkts tested for in\nskb_bond_should_drop().  This behavior is different then\nthe non-accelerated path and for pkts over a bonded vlan.\n\nFor example,\n\nvlanx -\u003e bond0 -\u003e ethx\n\nwill be dropped in the vlan path and not delivered to any\npacket handlers at all.  However,\n\nbond0 -\u003e vlanx -\u003e ethx\n\nand\n\nbond0 -\u003e ethx\n\nwill be delivered to handlers that match the exact dev,\nbecause the VLAN path checks the real_dev which is not a\nslave and netif_recv_skb() doesn\u0027t drop frames but only\ndelivers them to exact matches.\n\nThis patch adds a sk_buff flag which is used for tagging\nskbs that would previously been dropped and allows the\nskb to continue to skb_netif_recv().  Here we add\nlogic to check for the deliver_no_wcard flag and if it\nis set only deliver to handlers that match exactly.  This\nmakes both paths above consistent and gives pkt handlers\na way to identify skbs that come from inactive slaves.\nWithout this patch in some configurations skbs will be\ndelivered to handlers with exact matches and in others\nbe dropped out right in the vlan path.\n\nI have tested the following 4 configurations in failover modes\nand load balancing modes.\n\n# bond0 -\u003e ethx\n\n# vlanx -\u003e bond0 -\u003e ethx\n\n# bond0 -\u003e vlanx -\u003e ethx\n\n# bond0 -\u003e ethx\n            |\n  vlanx -\u003e --\n\nSigned-off-by: John Fastabend \u003cjohn.r.fastabend@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b78462ebc6a4ef9074aa80abebcdd470dc5f0ce0",
      "tree": "fba32dab1e3dca2c5bb5b7d73a64a77c2b6872e8",
      "parents": [
        "55c95e738da85373965cb03b4f975d0fd559865b"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Wed Jun 02 12:24:37 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 05 02:23:16 2010 -0700"
      },
      "message": "skbuff: add check for non-linear to warn_if_lro and needs_linearize\n\nWe can avoid an unecessary cache miss by checking if the skb is non-linear\nbefore accessing gso_size/gso_type in skb_warn_if_lro, the same can also be\ndone to avoid a cache miss on nr_frags if data_len is 0.\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": "5b0daa3474d52bed906c4d5e92b44e10148c6972",
      "tree": "3ed95111a3637d1b64f4c1bf27a0e86a785ca104",
      "parents": [
        "6057fd78a8dcce6269f029b967051d5a2e9b0895"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Sat May 29 00:12:13 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 29 00:12:13 2010 -0700"
      },
      "message": "skb: make skb_recycle_check() return a bool value\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7fee226ad2397b635e2fd565a59ca3ae08a164cd",
      "tree": "0bcd26150ad74ec1a237109de87a3d214a07fc22",
      "parents": [
        "ebda37c27d0c768947e9b058332d7ea798210cf8"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue May 11 23:19:48 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 17 17:18:50 2010 -0700"
      },
      "message": "net: add a noref bit on skb dst\n\nUse low order bit of skb-\u003e_skb_dst to tell dst is not refcounted.\n\nChange _skb_dst to _skb_refdst to make sure all uses are catched.\n\nskb_dst() returns the dst, regardless of noref bit set or not, but\nwith a lockdep check to make sure a noref dst is not given if current\nuser is not rcu protected.\n\nNew skb_dst_set_noref() helper to set an notrefcounted dst on a skb.\n(with lockdep check)\n\nskb_dst_drop() drops a reference only if skb dst was refcounted.\n\nskb_dst_force() helper is used to force a refcount on dst, when skb\nis queued and not anymore RCU protected.\n\nUse skb_dst_force() in __sk_add_backlog(), __dev_xmit_skb() if\n!IFF_XMIT_DST_RELEASE or skb enqueued on qdisc queue, in\nsock_queue_rcv_skb(), in __nf_queue().\n\nUse skb_dst_force() in dev_requeue_skb().\n\nNote: dst_use_noref() still dirties dst, we might transform it\nlater to do one dirtying per jiffies.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "18e8c134f4e984e6639e62846345192816f06d5c",
      "tree": "81bb46de14f020424716bd41915e831b07ce00c6",
      "parents": [
        "d6bc0149d8f2300bffa03ea6fea3ca39744277a6"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu May 06 21:58:51 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 06 21:58:51 2010 -0700"
      },
      "message": "net: Increase NET_SKB_PAD to 64 bytes\n\neth_type_trans() \u0026 get_rps_cpus() currently need two 64bytes cache\nlines in packet to compute rxhash.\n\nIncreasing NET_SKB_PAD from 32 to 64 reduces the need to one cache\nline only, and makes RPS faster.\n\nNET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ec7d2f2cf3a1b76202986519ec4f8ec75b2de232",
      "tree": "177c324eb0cf7e687d1bbd10a6add3a7d5979002",
      "parents": [
        "8753d29fd5daf890004a38c80835e1eb3acda394"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed May 05 01:07:37 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 05 01:07:37 2010 -0700"
      },
      "message": "net: __alloc_skb() speedup\n\nWith following patch I can reach maximum rate of my pktgen+udpsink\nsimulator :\n- \u0027old\u0027 machine : dual quad core E5450  @3.00GHz\n- 64 UDP rx flows (only differ by destination port)\n- RPS enabled, NIC interrupts serviced on cpu0\n- rps dispatched on 7 other cores. (~130.000 IPI per second)\n- SLAB allocator (faster than SLUB in this workload)\n- tg3 NIC\n- 1.080.000 pps without a single drop at NIC level.\n\nIdea is to add two prefetchw() calls in __alloc_skb(), one to prefetch\nfirst sk_buff cache line, the second to prefetch the shinfo part.\n\nAlso using one memset() to initialize all skb_shared_info fields instead\nof one by one to reduce number of instructions, using long word moves.\n\nAll skb_shared_info fields before \u0027dataref\u0027 are cleared in \n__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": "47d29646a2c1c147d8a7598aeac2c87dd71ed638",
      "tree": "b38f05d82883b5c0fc885812172a546af966d419",
      "parents": [
        "43815482370c510c569fd18edb57afcb0fa8cab6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 02 02:21:44 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 02 02:21:44 2010 -0700"
      },
      "message": "net: Inline skb_pull() in eth_type_trans().\n\nIn commit 6be8ac2f (\"[NET]: uninline skb_pull, de-bloats a lot\")\nwe uninlined skb_pull.\n\nBut in some critical paths it makes sense to inline this thing\nand it helps performance significantly.\n\nCreate an skb_pull_inline() so that we can do this in a way that\nserves also as annotation.\n\nBased upon a patch by Eric Dumazet.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ccb7c7732e2ceb4e81a7806faf1670be9681ccd2",
      "tree": "76508ab431133ca9a085a9e3fa62fbfed607c9fb",
      "parents": [
        "0eae88f31ca2b88911ce843452054139e028771f"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Tue Apr 20 22:39:53 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 22:39:53 2010 -0700"
      },
      "message": "net: Remove two unnecessary exports (skbuff).\n\nThere is no need to export skb_under_panic() and skb_over_panic() in\nskbuff.c, since these methods are used only in skbuff.c ; this patch\nremoves these two exports. It also marks these functions as \u0027static\u0027\nand removeS the extern declarations of them from\ninclude/linux/skbuff.h\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cd58950a5345f006a318f178705b9250aa54425c",
      "tree": "dcb03a8a7fc911be029bf5d8efc3e98de04b386a",
      "parents": [
        "1b6e66182dab42c42bdac72633dbe35b3dba8f69"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Fri Apr 09 10:01:37 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 13 02:58:24 2010 -0700"
      },
      "message": "skbuff: remove unused dev_consume_skb macro definition\n\ndev_consume_skb and kfree_skb_clean have no users and in the case of\nkfree_skb_clean could cause potential build issues since I cannot find\nwhere it is defined.  Based on the patch in which it was introduced it\nappears to have been a bit of leftover code from an earlier version of the\npatch in which kfree_skb_clean was dropped in favor of consume_skb.\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": "4a35ecf8bf1c4b039503fa554100fe85c761de76",
      "tree": "9b75f5d5636004d9a9aa496924377379be09aa1f",
      "parents": [
        "b4d562e3c3553ac58c7120555c4e4aefbb090a2a",
        "fb9e2d887243499b8d28efcf80821c4f6a092395"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 06 23:53:30 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 06 23:53:30 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/bonding/bond_main.c\n\tdrivers/net/via-velocity.c\n\tdrivers/net/wireless/iwlwifi/iwl-agn.c\n"
    },
    {
      "commit": "03e6d819c2cb2cc8ce5642669a0a7c72336ee7a2",
      "tree": "80ae5a328cf6b5a7cdbefba59a2931218923d874",
      "parents": [
        "f6b9f4b263f3178fc0f23f0e67d04386528cc727"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Tue Mar 23 20:40:50 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 24 11:13:35 2010 -0700"
      },
      "message": "skbuff: remove unused dma_head \u0026 dma_maps fields\n\nThe dma map fields in the skb_shared_info structure no longer has any users\nand can be dropped since it is making the skb_shared_info unecessarily larger.\n\nRunning slabtop show that we were using 4K slabs for the skb-\u003ehead on x86_64 w/\nan allocation size of 1522.  It turns out that the dma_head and dma_maps array\nmade skb_shared large enough that we had crossed over the 2k boundary with\nstandard frames and as such we were using 4k blocks of memory for all skbs.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a9627f2649a02bea165cfd529d7bcb625c2fcad",
      "tree": "e5d4424b99208c78e2b2fe6ff5a158fc21bdf782",
      "parents": [
        "768bbedf9ca4cc4784eae2003f37abe0818fe0b0"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Tue Mar 16 08:03:29 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 16 21:23:18 2010 -0700"
      },
      "message": "rps: Receive Packet Steering\n\nThis patch implements software receive side packet steering (RPS).  RPS\ndistributes the load of received packet processing across multiple CPUs.\n\nProblem statement: Protocol processing done in the NAPI context for received\npackets is serialized per device queue and becomes a bottleneck under high\npacket load.  This substantially limits pps that can be achieved on a single\nqueue NIC and provides no scaling with multiple cores.\n\nThis solution queues packets early on in the receive path on the backlog queues\nof other CPUs.   This allows protocol processing (e.g. IP and TCP) to be\nperformed on packets in parallel.   For each device (or each receive queue in\na multi-queue device) a mask of CPUs is set to indicate the CPUs that can\nprocess packets. A CPU is selected on a per packet basis by hashing contents\nof the packet header (e.g. the TCP or UDP 4-tuple) and using the result to index\ninto the CPU mask.  The IPI mechanism is used to raise networking receive\nsoftirqs between CPUs.  This effectively emulates in software what a multi-queue\nNIC can provide, but is generic requiring no device support.\n\nMany devices now provide a hash over the 4-tuple on a per packet basis\n(e.g. the Toeplitz hash).  This patch allow drivers to set the HW reported hash\nin an skb field, and that value in turn is used to index into the RPS maps.\nUsing the HW generated hash can avoid cache misses on the packet when\nsteering it to a remote CPU.\n\nThe CPU mask is set on a per device and per queue basis in the sysfs variable\n/sys/class/net/\u003cdevice\u003e/queues/rx-\u003cn\u003e/rps_cpus.  This is a set of canonical\nbit maps for receive queues in the device (numbered by \u003cn\u003e).  If a device\ndoes not support multi-queue, a single variable is used for the device (rx-0).\n\nGenerally, we have found this technique increases pps capabilities of a single\nqueue device with good CPU utilization.  Optimal settings for the CPU mask\nseem to depend on architectures and cache hierarcy.  Below are some results\nrunning 500 instances of netperf TCP_RR test with 1 byte req. and resp.\nResults show cumulative transaction rate and system CPU utilization.\n\ne1000e on 8 core Intel\n   Without RPS: 108K tps at 33% CPU\n   With RPS:    311K tps at 64% CPU\n\nforcedeth on 16 core AMD\n   Without RPS: 156K tps at 15% CPU\n   With RPS:    404K tps at 49% CPU\n\nbnx2x on 16 core AMD\n   Without RPS  567K tps at 61% CPU (4 HW RX queues)\n   Without RPS  738K tps at 96% CPU (8 HW RX queues)\n   With RPS:    854K tps at 76% CPU (4 HW RX queues)\n\nCaveats:\n- The benefits of this patch are dependent on architecture and cache hierarchy.\nTuning the masks to get best performance is probably necessary.\n- This patch adds overhead in the path for processing a single packet.  In\na lightly loaded server this overhead may eliminate the advantages of\nincreased parallelism, and possibly cause some relative performance degradation.\nWe have found that masks that are cache aware (share same caches with\nthe interrupting CPU) mitigate much of this.\n- The RPS masks can be changed dynamically, however whenever the mask is changed\nthis introduces the possibility of generating out of order packets.  It\u0027s\nprobably best not change the masks too frequently.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\n\n include/linux/netdevice.h |   32 ++++-\n include/linux/skbuff.h    |    3 +\n net/core/dev.c            |  335 +++++++++++++++++++++++++++++++++++++--------\n net/core/net-sysfs.c      |  225 ++++++++++++++++++++++++++++++-\n net/core/skbuff.c         |    2 +\n 5 files changed, 538 insertions(+), 59 deletions(-)\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4ab408dea0f0dba4dec0555f4f35b7ae703f5e91",
      "tree": "9bb765972530c87a9f010d45f63027c607864b76",
      "parents": [
        "85b3526932645269f67fee3583fa2aa500ab4f34"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Mar 01 03:09:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 02 03:05:05 2010 -0800"
      },
      "message": "net: fix protocol sk_buff field\n\nCommit e992cd9b72a18 (kmemcheck: make bitfield annotations truly no-ops\nwhen disabled) allows us to revert a workaround we did in the past to\nnot add holes in sk_buff structure.\n\nThis patch partially reverts commit 14d18a81b5171\n(net: fix kmemcheck annotations) so that sparse doesnt complain:\n\ninclude/linux/skbuff.h:357:41: error: invalid bitfield specifier for\ntype restricted __be16.\n\nReported-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "da3f5cf1f8ebb0fab5c5fd09adb189166594ad6c",
      "tree": "b00659673aee2b4461b1b7c9b352dc1add211fe4",
      "parents": [
        "8d6184e4881b423522136aeb3ec1cbd9c35e8813"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Tue Feb 23 11:45:51 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 27 03:16:59 2010 -0800"
      },
      "message": "skbuff: align sk_buff::cb to 64 bit and close some potential holes\n\nThe alignment requirement for 64-bit load/store instructions on ARM is\nimplementation defined. Some CPUs (such as Marvell Feroceon) do not\ngenerate an exception, if such an instruction is executed with an\naddress that is not 64 bit aligned. In such a case, the Feroceon\ncorrupts adjacent memory, which showed up in my tests as a crash in the\nrx path of ath9k that only occured with CONFIG_XFRM set.\n\nThis crash happened, because the first field of the mac80211 rx status\ninfo in the cb is an u64, and changing it corrupted the skb-\u003esp field.\n\nThis patch also closes some potential pre-existing holes in the sk_buff\nstruct surrounding the cb[] area.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nCc: stable@kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1a5778aa000ebfec7f07eed0ffa2852ffb5d16bb",
      "tree": "86ec6c8f9f5a43e3bca90a45eec6dd32f565b2d6",
      "parents": [
        "5ecccb74dc91e22496a142b103ba958f93c29275"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Sun Feb 14 22:35:47 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 14 22:35:47 2010 -0800"
      },
      "message": "net: Fix first line of kernel-doc for a few functions\n\nThe function name must be followed by a space, hypen, space, and a\nshort description.\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "2d4baff8da06f424a6fca10e26434c4926a7c3df"
}
