)]}'
{
  "log": [
    {
      "commit": "de960aa9ab4decc3304959f69533eef64d05d8e8",
      "tree": "1f225ca6fef5512f121856b7572534d2ed171e39",
      "parents": [
        "77d143de75812596a58d126606f42d1214e09dde"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Sun Jan 26 10:58:16 2014 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 26 22:38:23 2014 -0800"
      },
      "message": "net: add and use skb_gso_transport_seglen()\n\nThis moves part of Eric Dumazets skb_gso_seglen helper from tbf sched to\nskbuff core so it may be reused by upcoming ip forwarding path patch.\n\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "57bdf7f42be05640f8080b06844c94367ad1884b",
      "tree": "91da4922463f2cab9e7b36326c1f0d44608303b3",
      "parents": [
        "e40c10fc8973ccd6a451a84dd30f16e5c1cd070c"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Wed Jan 15 08:57:54 2014 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 16 16:22:54 2014 -0800"
      },
      "message": "net: Add skb_get_hash_raw\n\nFunction to just return skb-\u003erxhash without checking to see if it needs\nto be recomputed.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed1f50c3a7c1ad1b1b4d584308eab77d57a330f8",
      "tree": "81bf10db834db5e50a915548acf87c492688ec0e",
      "parents": [
        "b86f81cca9442ce6cfbe76d10fb8d2c61122ae12"
      ],
      "author": {
        "name": "Paul Durrant",
        "email": "Paul.Durrant@citrix.com",
        "time": "Thu Jan 09 10:02:46 2014 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 14 14:24:19 2014 -0800"
      },
      "message": "net: add skb_checksum_setup\n\nThis patch adds a function to set up the partial checksum offset for IP\npackets (and optionally re-calculate the pseudo-header checksum) into the\ncore network code.\nThe implementation was previously private and duplicated between xen-netback\nand xen-netfront, however it is not xen-specific and is potentially useful\nto any network driver.\n\nSigned-off-by: Paul Durrant \u003cpaul.durrant@citrix.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Veaceslav Falico \u003cvfalico@redhat.com\u003e\nCc: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nCc: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fd44b93cb5eee218231f6ce5883df937b3b9c3eb",
      "tree": "351f82fcc93a0d998d178b947c039289e0735269",
      "parents": [
        "be7928d20bab8517a0e38db2418394e8b2fd6a8e"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "dborkman@redhat.com",
        "time": "Tue Jan 07 23:23:44 2014 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 07 18:34:00 2014 -0500"
      },
      "message": "net: skbuff: const-ify casts in skb_queue_* functions\n\nWe should const-ify comparisons on skb_queue_* inline helper\nfunctions as their parameters are const as well, so lets not\ndrop that.\n\nSuggested-by: Brad Spengler \u003cspender@grsecurity.net\u003e\nSigned-off-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "39b6b2992f9dc65d1de5c66e7ec2271b8a5fac33",
      "tree": "c0fc4e2be0429bb4d7643e6b6f8f5a56212f9284",
      "parents": [
        "56a4342dfe3145cd66f766adccb28fd9b571606d",
        "443cd88c8a31379e95326428bbbd40af25c1d440"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 06 19:48:38 2014 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 06 19:48:38 2014 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jesse/openvswitch\n\nJesse Gross says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[GIT net-next] Open vSwitch\n\nOpen vSwitch changes for net-next/3.14. Highlights are:\n * Performance improvements in the mechanism to get packets to userspace\n   using memory mapped netlink and skb zero copy where appropriate.\n * Per-cpu flow stats in situations where flows are likely to be shared\n   across CPUs. Standard flow stats are used in other situations to save\n   memory and allocation time.\n * A handful of code cleanups and rationalization.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "af2806f8f90a150160be898cd85332459c83c5cb",
      "tree": "d3476ee225083ad769e8d2374b840a4af0816560",
      "parents": [
        "5f03f47c9c05086e181db3ec7a809f8454e28370"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Fri Dec 13 15:22:17 2013 +0100"
      },
      "committer": {
        "name": "Jesse Gross",
        "email": "jesse@nicira.com",
        "time": "Mon Jan 06 15:52:42 2014 -0800"
      },
      "message": "net: Export skb_zerocopy() to zerocopy from one skb to another\n\nMake the skb zerocopy logic written for nfnetlink queue available for\nuse by other modules.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nReviewed-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Jesse Gross \u003cjesse@nicira.com\u003e\n"
    },
    {
      "commit": "56a4342dfe3145cd66f766adccb28fd9b571606d",
      "tree": "d1593764488ff8cbb0b83cb9ae35fd968bf81760",
      "parents": [
        "805c1f4aedaba1bc8d839e7c27b128083dd5c2f0",
        "fe0d692bbc645786bce1a98439e548ae619269f5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 06 17:37:45 2014 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 06 17:37:45 2014 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tdrivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c\n\tnet/ipv6/ip6_tunnel.c\n\tnet/ipv6/ip6_vti.c\n\nipv6 tunnel statistic bug fixes conflicting with consolidation into\ngeneric sw per-cpu net stats.\n\nqlogic conflict between queue counting bug fix and the addition\nof multiple MAC address support.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "73409f3b0ff0ae7bc1f647936b23e6d5d5dcbe28",
      "tree": "51dbcef70dc3b374e6e720aa5fde10f783301277",
      "parents": [
        "37ec274e9713eafc2ba6c4471420f06cb8f68ecf"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 27 13:04:33 2013 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 27 13:04:33 2013 -0500"
      },
      "message": "net: Add some clarification to skb_tx_timestamp() comment.\n\nWe\u0027ve seen so many instances of people invoking skb_tx_timestamp()\nafter the device already has been given the packet, that it\u0027s worth\nbeing a little bit more verbose and explicit in this comment.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "78ea85f17b15390e30d8b47488ec7b6cf0790663",
      "tree": "45098c05d529632f8e3b22766449082b01e4947b",
      "parents": [
        "10239edf86f137ce4c39b62ea9575e8053c549a0"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "dborkman@redhat.com",
        "time": "Mon Dec 16 23:27:09 2013 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 19 14:51:32 2013 -0500"
      },
      "message": "net: skbuff: improve comment on checksumming\n\nIt can be a bit confusing when looking for checksumming flags that\nthe actual comment for this resides elsewhere further below in the\nheader file.\n\nThus, bring the documentation where we define these flags, and\nslightly improve the doc text to make it a bit more clear/readable.\n\nAlso, whitespace-align values of the define while at it.\n\nSigned-off-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0e3da5bb8da45890b1dc413404e0f978ab71173e",
      "tree": "2d3bd7a6e9c9c38520ac3bbe132e0f8940a9a18a",
      "parents": [
        "a81d8762d71396f69d27187a909fcc69f1a7be75"
      ],
      "author": {
        "name": "Timo Teräs",
        "email": "timo.teras@iki.fi",
        "time": "Mon Dec 16 11:02:09 2013 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 18 17:44:33 2013 -0500"
      },
      "message": "ip_gre: fix msg_name parsing for recvfrom/recvmsg\n\nipgre_header_parse() needs to parse the tunnel\u0027s ip header and it\nuses mac_header to locate the iphdr. This got broken when gre tunneling\nwas refactored as mac_header is no longer updated to point to iphdr.\nIntroduce skb_pop_mac_header() helper to do the mac_header assignment\nand use it in ipgre_rcv() to fix msg_name parsing.\n\nBug introduced in commit c54419321455 (GRE: Refactor GRE tunneling code.)\n\nCc: Pravin B Shelar \u003cpshelar@nicira.com\u003e\nSigned-off-by: Timo Teräs \u003ctimo.teras@iki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3df7a74e797aa2d8be9b7c649cfd56a8517dcf6e",
      "tree": "5d5e556692e3c945517319e812520286905a4af6",
      "parents": [
        "09323cc479316e046931a2c679932204b36fea6c"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Sun Dec 15 22:16:29 2013 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 17 16:36:22 2013 -0500"
      },
      "message": "net: Add utility function to copy skb hash\n\nAdds skb_copy_hash to copy rxhash and l4_rxhash from one skb to another.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "09323cc479316e046931a2c679932204b36fea6c",
      "tree": "80a3b4f3674c469a68dc65ef4446a652b68a9e2f",
      "parents": [
        "7539fadcb8146a5f0db51e80d99c9e724efec7b0"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Sun Dec 15 22:16:19 2013 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 17 16:36:22 2013 -0500"
      },
      "message": "net: Add function to set the rxhash\n\nThe function skb_set_rxash was added for drivers to call to set\nthe rxhash in an skb. The type of hash is also specified as\na parameter (L2, L3, L4, or unknown type).\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7539fadcb8146a5f0db51e80d99c9e724efec7b0",
      "tree": "7d3563c2240b16402d536162b4f49bdf036b91ed",
      "parents": [
        "3958afa1b272eb07109fd31549e69193b4d7c364"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Sun Dec 15 22:12:18 2013 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 17 16:36:21 2013 -0500"
      },
      "message": "net: Add utility functions to clear rxhash\n\nIn several places \u0027skb-\u003erxhash \u003d 0\u0027 is being done to clear the\nrxhash value in an skb.  This does not clear l4_rxhash which could\nstill be set so that the rxhash wouldn\u0027t be recalculated on subsequent\ncall to skb_get_rxhash.  This patch adds an explict function to clear\nall the rxhash related information in the skb properly.\n\nskb_clear_hash_if_not_l4 clears the rxhash only if it is not marked as\nl4_rxhash.\n\nFixed up places where \u0027skb-\u003erxhash \u003d 0\u0027 was being called.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3958afa1b272eb07109fd31549e69193b4d7c364",
      "tree": "71ef9fff60aa85320c09b4aefa1b64c206f4639a",
      "parents": [
        "1aee6cc2a5193aa9963ea49b0d452723c1d493d8"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Sun Dec 15 22:12:06 2013 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 17 16:36:21 2013 -0500"
      },
      "message": "net: Change skb_get_rxhash to skb_get_hash\n\nChanging name of function as part of making the hash in skbuff to be\ngeneric property, not just for receive path.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4262e5ccbbb5171abd2921eed16ed339633d6478",
      "tree": "20b11bfb690a4ab70c726f81a1f0826eb5a939f0",
      "parents": [
        "34f9f437104b86f6ddfa2770e2cd852846385dc3"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "dborkman@redhat.com",
        "time": "Fri Dec 06 11:36:16 2013 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 09 20:23:33 2013 -0500"
      },
      "message": "net: dev: move inline skb_needs_linearize helper to header\n\nAs we need it elsewhere, move the inline helper function of\nskb_needs_linearize() over to skbuff.h include file. While\nat it, also convert the return to \u0027bool\u0027 instead of \u0027int\u0027\nand add a proper kernel doc.\n\nSigned-off-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nSigned-off-by: Jesper Dangaard Brouer \u003cbrouer@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7ce5a27f2ef8ed4f8f892f46391f933c0e2ac0f1",
      "tree": "0841c7f73548bfecd44049497a0833765431793c",
      "parents": [
        "28e24c62ab3062e965ef1b3bcc244d50aee7fa85"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 02 17:26:05 2013 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 02 17:26:05 2013 -0500"
      },
      "message": "Revert \"net: Handle CHECKSUM_COMPLETE more adequately in pskb_trim_rcsum().\"\n\nThis reverts commit 018c5bba052b3a383d83cf0c756da0e7bc748397.\n\nIt causes regressions for people using chips driven by the sungem\ndriver.  Suspicion is that the skb-\u003ecsum value isn\u0027t being adjusted\nproperly.\n\nThe change also has a bug in that if __pskb_trim() fails, we\u0027ll leave\na corruped skb-\u003ecsum value in there.  We would really need to revert\nit to it\u0027s original value in that case.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "018c5bba052b3a383d83cf0c756da0e7bc748397",
      "tree": "5baf9a09e9619cf10d0e399e4ba347eab32b5afb",
      "parents": [
        "f52ed89971adbe79b6438c459814034707b8ab91"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 15 21:11:16 2013 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 15 21:11:16 2013 -0500"
      },
      "message": "net: Handle CHECKSUM_COMPLETE more adequately in pskb_trim_rcsum().\n\nCurrently pskb_trim_rcsum() just balks on CHECKSUM_COMPLETE packets\nand remarks them as CHECKSUM_NONE, forcing a software checksum\nvalidation later.\n\nWe have all of the mechanics available to fixup the skb-\u003ecsum value,\neven for complicated fragmented packets, via the helpers\nskb_checksum() and csum_sub().\n\nSo just use them.\n\nBased upon a suggestion by Herbert Xu.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6aafeef03b9d9ecf255f3a80ed85ee070260e1ae",
      "tree": "48c7f8ff1709c9874342c02c7039d4431a00b333",
      "parents": [
        "9037c3579a277f3a23ba476664629fda8c35f7c4"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@resnulli.us",
        "time": "Wed Nov 06 17:52:20 2013 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 11 00:19:35 2013 -0500"
      },
      "message": "netfilter: push reasm skb through instead of original frag skbs\n\nPushing original fragments through causes several problems. For example\nfor matching, frags may not be matched correctly. Take following\nexample:\n\n\u003cexample\u003e\nOn HOSTA do:\nip6tables -I INPUT -p icmpv6 -j DROP\nip6tables -I INPUT -p icmpv6 -m icmp6 --icmpv6-type 128 -j ACCEPT\n\nand on HOSTB you do:\nping6 HOSTA -s2000    (MTU is 1500)\n\nIncoming echo requests will be filtered out on HOSTA. This issue does\nnot occur with smaller packets than MTU (where fragmentation does not happen)\n\u003c/example\u003e\n\nAs was discussed previously, the only correct solution seems to be to use\nreassembled skb instead of separete frags. Doing this has positive side\neffects in reducing sk_buff by one pointer (nfct_reasm) and also the reams\ndances in ipvs and conntrack can be removed.\n\nFuture plan is to remove net/ipv6/netfilter/nf_conntrack_reasm.c\nentirely and use code in net/ipv6/reassembly.c instead.\n\nSigned-off-by: Jiri Pirko \u003cjiri@resnulli.us\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Marcelo Ricardo Leitner \u003cmleitner@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bc32383cd6496d595e6a25cdc7cff1da6b694462",
      "tree": "e4db3f844522adf5a62a7ce1fc3cee5cd177673a",
      "parents": [
        "253c6daa343104c1278facd11cb5ecfc7554fb38"
      ],
      "author": {
        "name": "Mathias Krause",
        "email": "mathias.krause@secunet.com",
        "time": "Thu Nov 07 14:18:26 2013 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 07 19:28:59 2013 -0500"
      },
      "message": "net: skbuff - kernel-doc fixes\n\nUse \"@\" to refer to parameters in the kernel-doc description. According\nto Documentation/kernel-doc-nano-HOWTO.txt \"\u0026\" shall be used to refer to\nstructures only.\n\nSigned-off-by: Mathias Krause \u003cmathias.krause@secunet.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c7ddf36c29c3ce12f2d2931a357ccaa0861035a",
      "tree": "98d09efb875438c09ba8eea351e11c15eff7cc59",
      "parents": [
        "b5ad795e52dae6e9f88b193a5e779b70005d005c"
      ],
      "author": {
        "name": "Mathias Krause",
        "email": "mathias.krause@secunet.com",
        "time": "Thu Nov 07 14:18:24 2013 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 07 19:28:58 2013 -0500"
      },
      "message": "net: move pskb_put() to core code\n\nThis function has usage beside IPsec so move it to the core skbuff code.\nWhile doing so, give it some documentation and change its return type to\n\u0027unsigned char *\u0027 to be in line with skb_put().\n\nSigned-off-by: Mathias Krause \u003cmathias.krause@secunet.com\u003e\nCc: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f8e617e100d7369a0108f96abf4414e9fb82ced7",
      "tree": "669f70c7c3ce6ed05097771890d708d83f1eb8be",
      "parents": [
        "e50fddc8b0c0698cba446221be3654aa0a642372"
      ],
      "author": {
        "name": "Jason Wang",
        "email": "jasowang@redhat.com",
        "time": "Fri Nov 01 14:07:47 2013 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 04 20:03:52 2013 -0500"
      },
      "message": "net: introduce skb_coalesce_rx_frag()\n\nSometimes we need to coalesce the rx frags to avoid frag list. One example is\nvirtio-net driver which tries to use small frags for both MTU sized packet and\nGSO packet. So this patch introduce skb_coalesce_rx_frag() to do this.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nCc: Michael Dalton \u003cmwdalton@google.com\u003e\nCc: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Jason Wang \u003cjasowang@redhat.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2817a336d4d533fb8b68719723cd60ea7dd7c09e",
      "tree": "71aac3aa2a48588fd0b5372cca9499bd1cbe2a5f",
      "parents": [
        "efba721f636ee016859d86d15748650119402b10"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "dborkman@redhat.com",
        "time": "Wed Oct 30 11:50:51 2013 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 03 23:04:57 2013 -0500"
      },
      "message": "net: skb_checksum: allow custom update/combine for walking skb\n\nCurrently, skb_checksum walks over 1) linearized, 2) frags[], and\n3) frag_list data and calculats the one\u0027s complement, a 32 bit\nresult suitable for feeding into itself or csum_tcpudp_magic(),\nbut unsuitable for SCTP as we\u0027re calculating CRC32c there.\n\nHence, in order to not re-implement the very same function in\nSCTP (and maybe other protocols) over and over again, use an\nupdate() + combine() callback internally to allow for walking\nover the skb with different algorithms.\n\nSigned-off-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "61c1db7fae21ed33c614356a43bf6580c5e53118",
      "tree": "74e9756895dcf0006f57791684f6435d29c226ab",
      "parents": [
        "d3e5e0062de5f2c6444455b5708a62a50c93a50c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun Oct 20 20:47:30 2013 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 21 18:49:39 2013 -0400"
      },
      "message": "ipv6: sit: add GSO/TSO support\n\nNow ipv6_gso_segment() is stackable, its relatively easy to\nimplement GSO/TSO support for SIT tunnels\n\nPerformance results, when segmentation is done after tunnel\ndevice (as no NIC is yet enabled for TSO SIT support) :\n\nBefore patch :\n\nlpq84:~# ./netperf -H 2002:af6:1153:: -Cc\nMIGRATED TCP STREAM TEST from ::0 (::) port 0 AF_INET6 to 2002:af6:1153:: () port 0 AF_INET6\nRecv   Send    Send                          Utilization       Service Demand\nSocket Socket  Message  Elapsed              Send     Recv     Send    Recv\nSize   Size    Size     Time     Throughput  local    remote   local   remote\nbytes  bytes   bytes    secs.    10^6bits/s  % S      % S      us/KB   us/KB\n\n 87380  16384  16384    10.00      3168.31   4.81     4.64     2.988   2.877\n\nAfter patch :\n\nlpq84:~# ./netperf -H 2002:af6:1153:: -Cc\nMIGRATED TCP STREAM TEST from ::0 (::) port 0 AF_INET6 to 2002:af6:1153:: () port 0 AF_INET6\nRecv   Send    Send                          Utilization       Service Demand\nSocket Socket  Message  Elapsed              Send     Recv     Send    Recv\nSize   Size    Size     Time     Throughput  local    remote   local   remote\nbytes  bytes   bytes    secs.    10^6bits/s  % S      % S      us/KB   us/KB\n\n 87380  16384  16384    10.00      5525.00   7.76     5.17     2.763   1.840\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cb32f511a70be8967ac9025cf49c44324ced9a39",
      "tree": "9e3fa3245096053bcf67cc61b60a72f3bb946008",
      "parents": [
        "3347c960295583eee3fd58e5c539fb1972fbc005"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sat Oct 19 11:42:57 2013 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Oct 19 19:36:19 2013 -0400"
      },
      "message": "ipip: add GSO/TSO support\n\nNow inet_gso_segment() is stackable, its relatively easy to\nimplement GSO/TSO support for IPIP\n\nPerformance results, when segmentation is done after tunnel\ndevice (as no NIC is yet enabled for TSO IPIP support) :\n\nBefore patch :\n\nlpq83:~# ./netperf -H 7.7.9.84 -Cc\nMIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 7.7.9.84 () port 0 AF_INET\nRecv   Send    Send                          Utilization       Service Demand\nSocket Socket  Message  Elapsed              Send     Recv     Send    Recv\nSize   Size    Size     Time     Throughput  local    remote   local   remote\nbytes  bytes   bytes    secs.    10^6bits/s  % S      % S      us/KB   us/KB\n\n 87380  16384  16384    10.00      3357.88   5.09     3.70     2.983   2.167\n\nAfter patch :\n\nlpq83:~# ./netperf -H 7.7.9.84 -Cc\nMIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 7.7.9.84 () port 0 AF_INET\nRecv   Send    Send                          Utilization       Service Demand\nSocket Socket  Message  Elapsed              Send     Recv     Send    Recv\nSize   Size    Size     Time     Throughput  local    remote   local   remote\nbytes  bytes   bytes    secs.    10^6bits/s  % S      % S      us/KB   us/KB\n\n 87380  16384  16384    10.00      7710.19   4.52     6.62     1.152   1.687\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3347c960295583eee3fd58e5c539fb1972fbc005",
      "tree": "c0763cf5b85c136e72d226a0be56cc66e98bbcb0",
      "parents": [
        "2d26f0a3c0e22f6b3096a2503d086e4b5e99d708"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sat Oct 19 11:42:56 2013 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Oct 19 19:36:18 2013 -0400"
      },
      "message": "ipv4: gso: make inet_gso_segment() stackable\n\nIn order to support GSO on IPIP, we need to make\ninet_gso_segment() stackable.\n\nIt should not assume network header starts right after mac\nheader.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "400dfd3ae899849b27d398ca7894e1b44430887f",
      "tree": "5478cafc2fd175ea7f2307e4eda1f6a9a8618733",
      "parents": [
        "baf785bacc9f840104fc2dfedd2b72b5cbb4e103"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Thu Oct 17 16:27:07 2013 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 18 00:08:51 2013 -0400"
      },
      "message": "net: refactor sk_page_frag_refill()\n\nWhile working on virtio_net new allocation strategy to increase\npayload/truesize ratio, we found that refactoring sk_page_frag_refill()\nwas needed.\n\nThis patch splits sk_page_frag_refill() into two parts, adding\nskb_page_frag_refill() which can be used without a socket.\n\nWhile we are at it, add a minimum frag size of 32 for\nsk_page_frag_refill()\n\nMichael will either use netdev_alloc_frag() from softirq context,\nor skb_page_frag_refill() from process context in refill_work()\n (GFP_KERNEL allocations)\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Michael Dalton \u003cmwdalton@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0b3d8e087bbee2a4e3f479d538a7edd3f1d2950c",
      "tree": "426b2e87d70a32f76abc940e83af3cdb2f09f443",
      "parents": [
        "6ae705323b716ea7a8cc26bee79176398a9b2e89"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "kda@linux-powerpc.org",
        "time": "Wed Oct 02 05:58:32 2013 +0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 02 16:50:40 2013 -0400"
      },
      "message": "include/linux/skbuff.h: move CONFIG_XFRM check inside the skb_sec_path()\n\nAnd thus we have only one function definition\n\nSigned-off-by: Denis Kirjanov \u003ckda@linux-powerpc.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4fbef95af4e62d4aada6c1728e04d3b1c828abe0",
      "tree": "19cb25e39583119c98dee7114aada6a3b57d18a9",
      "parents": [
        "5229432f15e6f1b1e34e519e51d07917dee8790e",
        "c31eeaced22ce8bd61268a3c595d542bb38c0a4f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 01 17:06:14 2013 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 01 17:06:14 2013 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tdrivers/net/ethernet/emulex/benet/be.h\n\tdrivers/net/usb/qmi_wwan.c\n\tdrivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h\n\tinclude/net/netfilter/nf_conntrack_synproxy.h\n\tinclude/net/secure_seq.h\n\nThe conflicts are of two varieties:\n\n1) Conflicts with Joe Perches\u0027s \u0027extern\u0027 removal from header file\n   function declarations.  Usually it\u0027s an argument signature change\n   or a function being added/removed.  The resolutions are trivial.\n\n2) Some overlapping changes in qmi_wwan.c and be.h, one commit adds\n   a new value, another changes an existing value.  That sort of\n   thing.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "45906723578f768d029ba7774cd97b435f2c5125",
      "tree": "3f26d65ccb4ab928b4d302f573754544f6bdbb47",
      "parents": [
        "d9a71f97d5ad4ac912e0bb60813ae992da1e18b2"
      ],
      "author": {
        "name": "Nicolas Dichtel",
        "email": "nicolas.dichtel@6wind.com",
        "time": "Mon Sep 30 14:16:41 2013 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 30 22:32:39 2013 -0700"
      },
      "message": "skbuff: size of hole is wrong in a comment\n\nSince commit c93bdd0e03e8 (\"netvm: allow skb allocation to use PFMEMALLOC\nreserves\"), hole size is one bit less than what is written in the comment.\n\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "36a8f39e05ccc308a5619a7edb5ad6e15ee82ff6",
      "tree": "3f3cc0acf69af141e804e0506919f33912e13c1e",
      "parents": [
        "c3f40d7c04152c6f168db2f9b43438015cf092c4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun Sep 29 01:21:32 2013 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 30 22:09:00 2013 -0700"
      },
      "message": "net: skb_is_gso_v6() requires skb_is_gso()\n\nbnx2x makes a dangerous use of skb_is_gso_v6().\n\nIt should first make sure skb is a gso packet\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Eilon Greenstein \u003ceilong@broadcom.com\u003e\nAcked-by: Dmitry Kravkov \u003cdmitry@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7965bd4d71ef7cf1db00afb9e406ddfc13443c13",
      "tree": "580d04df7eb2576a4d239702c54b6e37b968efad",
      "parents": [
        "a0f4ecf3494c9869d20f606e7e2b2f50f0e67a7f"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Sep 26 14:48:15 2013 -0700"
      },
      "committer": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Sep 26 14:53:19 2013 -0700"
      },
      "message": "net.h/skbuff.h: Remove extern from function prototypes\n\nThere are a mix of function prototypes with and without extern\nin the kernel sources.  Standardize on not using extern for\nfunction prototypes.\n\nFunction prototypes don\u0027t need to be written with extern.\nextern is assumed by the compiler.  Its use is as unnecessary as\nusing auto to declare automatic/local variables in a block.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\n"
    },
    {
      "commit": "8b27f27797cac5ed9b2f3e63dac89a7ae70e70a7",
      "tree": "c77b49fdf6883aab5bea6988d89f7e204f49329b",
      "parents": [
        "117961878cc1386923cfddcdd9016b777827c8dd"
      ],
      "author": {
        "name": "Nicolas Dichtel",
        "email": "nicolas.dichtel@6wind.com",
        "time": "Mon Sep 02 15:34:56 2013 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 04 00:27:25 2013 -0400"
      },
      "message": "skb: allow skb_scrub_packet() to be used by tunnels\n\nThis function was only used when a packet was sent to another netns. Now, it can\nalso be used after tunnel encapsulation or decapsulation.\n\nOnly skb_orphan() should not be done when a packet is not crossing netns.\n\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bc6fc9fa0e1686d8a06aaa14005d3dbf7978d81f",
      "tree": "0ea1729d7ae0038c0f1e45ea251f2d9c83d21b53",
      "parents": [
        "50ad076ba43d88956707cd9d6849715de5e282bf"
      ],
      "author": {
        "name": "Florian Fainelli",
        "email": "f.fainelli@gmail.com",
        "time": "Fri Aug 30 15:36:14 2013 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 03 22:17:40 2013 -0400"
      },
      "message": "net: fix comment typo for __skb_alloc_pages()\n\nThe name of the function in the comment is __skb_alloc_page() while we\nare actually commenting __skb_alloc_pages(). Fix this typo and make it\na valid kernel doc comment.\n\nSigned-off-by: Florian Fainelli \u003cf.fainelli@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c3bdeb5c7cc073ccf5ff9624642022a8613a956e",
      "tree": "59dd31538e9da9d5adecbc9c96d7d8a1aa0aa50d",
      "parents": [
        "b4bf07771faaf959b0a916d35b1b930c030e30a8"
      ],
      "author": {
        "name": "Jason Wang",
        "email": "jasowang@redhat.com",
        "time": "Tue Aug 06 17:45:04 2013 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 07 16:52:34 2013 -0700"
      },
      "message": "net: move zerocopy_sg_from_iovec() to net/core/datagram.c\n\nTo let it be reused and reduce code duplication. Also document this function.\n\nSigned-off-by: Jason Wang \u003cjasowang@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0e76a3a587fc7abda2badf249053b427baad255e",
      "tree": "646a1da67dc25654552028225ca4b7a0a8043cc9",
      "parents": [
        "fba3679d34511c42bf452e89dda457a1219eb43a",
        "72a67a94bcba71a5fddd6b3596a20604d2b5dcd6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Aug 03 21:36:46 2013 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Aug 03 21:36:46 2013 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nMerge net into net-next to setup some infrastructure Eric\nDumazet needs for usbnet changes.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e0d1095ae3405404d247afb00233ef837d58da83",
      "tree": "1f83aed50dbe9298ca0cdc5a0d51a3750f0fd720",
      "parents": [
        "dfcefb0be1231982784df2152213103ad33c1cfd"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Thu Aug 01 11:10:25 2013 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 01 15:11:17 2013 -0700"
      },
      "message": "net: rename CONFIG_NET_LL_RX_POLL to CONFIG_NET_RX_BUSY_POLL\n\nEliezer renames several *ll_poll to *busy_poll, but forgets\nCONFIG_NET_LL_RX_POLL, so in case of confusion, rename it too.\n\nCc: Eliezer Tamir \u003celiezer.tamir@linux.intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "376c7311bdb6efea3322310333576a04d73fbe4c",
      "tree": "7f3218e1bc7cfbda553714a4d2c82c0eeb02d3be",
      "parents": [
        "46b3a421903aa2a4bc9731ca4663cee3ea869dab"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Thu Aug 01 11:43:08 2013 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 01 12:49:28 2013 -0700"
      },
      "message": "net: add a temporary sanity check in skb_orphan()\n\nDavid suggested to add a BUG_ON() to catch if some layer\nsets skb-\u003esk pointer without a corresponding destructor.\n\nAs skb can sit in a queue, it\u0027s mandatory to make sure the\nsocket cannot disappear, and it\u0027s usually done by taking a\nreference on the socket, then releasing it from the skb\ndestructor.\n\nThis patch is a follow-up to commit c34a761231b5\n(\"net: skb_orphan() changes\") and will be reverted after\ncatching all possible offenders if any.\n\nSuggested-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c34a761231b56dea4bd205cb9c29ffe37475d232",
      "tree": "43f6880f06f781f2fa10ee54be32c426f9b58620",
      "parents": [
        "f2f872f9272a79a1048877ea14c15576f46c225e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Tue Jul 30 16:11:15 2013 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 31 15:24:08 2013 -0700"
      },
      "message": "net: skb_orphan() changes\n\nIt is illegal to set skb-\u003esk without corresponding destructor.\n\nIts therefore safe for skb_orphan() to not clear skb-\u003esk if\nskb-\u003edestructor is not set.\n\nAlso avoid clearing skb-\u003edestructor if already NULL.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c1072ae0242fbdffd9a0bba36e7a7033d287f9c",
      "tree": "e0f4dbdbf5078d4a707911177e7bdc17a70bdce5",
      "parents": [
        "c50cd357887acf9fd7af3a5d492911bd825555a2",
        "8bb495e3f02401ee6f76d1b1d77f3ac9f079e376"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 03 14:50:41 2013 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 03 14:55:13 2013 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tdrivers/net/ethernet/freescale/fec_main.c\n\tdrivers/net/ethernet/renesas/sh_eth.c\n\tnet/ipv4/gre.c\n\nThe GRE conflict is between a bug fix (kfree_skb --\u003e kfree_skb_list)\nand the splitting of the gre.c code into seperate files.\n\nThe FEC conflict was two sets of changes adding ethtool support code\nin an \"!CONFIG_M5272\" CPP protected block.\n\nFinally the sh_eth.c conflict was between one commit add bits set\nin the .eesr_err_check mask whilst another commit removed the\n.tx_error_check member and assignments.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "621e84d6f373dcb273ebfd772638b8e7dc3c2c48",
      "tree": "55135ee5450006f25cca4f14c8206524f976149b",
      "parents": [
        "38ae92dc215e939897f17861d658f882d0eaab0f"
      ],
      "author": {
        "name": "Nicolas Dichtel",
        "email": "nicolas.dichtel@6wind.com",
        "time": "Wed Jun 26 16:11:27 2013 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 27 22:29:05 2013 -0700"
      },
      "message": "dev: introduce skb_scrub_packet()\n\nThe goal of this new function is to perform all needed cleanup before sending\nan skb into another netns.\n\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bd8a7036c06cf15779b31a5397d4afcb12be81ea",
      "tree": "d78794e12fb4ac0005f019e6a51e797230d38970",
      "parents": [
        "2b7a5db060f5e7d7f79bc45f818e08b8f244a3b8"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Jun 24 06:26:00 2013 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 25 16:07:44 2013 -0700"
      },
      "message": "gre: fix a possible skb leak\n\ncommit 68c331631143 (\"v4 GRE: Add TCP segmentation offload for GRE\")\nadded a possible skb leak, because it frees only the head of segment\nlist, in case a skb_linearize() call fails.\n\nThis patch adds a kfree_skb_list() helper to fix the bug.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Pravin B Shelar \u003cpshelar@nicira.com\u003e\nCc: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "30f3a40f9a2a2869a560a9cb9ef488d10c803e14",
      "tree": "cdaf18b7bf9c7f38eaaaa95f45a073d693223e18",
      "parents": [
        "0a4db187a999c4a715bf56b8ab6c4705b524e4bb"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Wed Jun 05 20:14:10 2013 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 10 22:22:23 2013 -0700"
      },
      "message": "net: remove last caller of skb_tail_offset() and itself\n\nSimilar to the following commits:\n\ncommit 00f97da17a0c8d656d0c9 (netpoll: fix position of network header)\ncommit 525cebedb32a87fa48584 (pktgen: Fix position of ip and udp header)\n\nusing skb_tail_offset() seems not correct since the offset\nis based on head pointer.\n\nWith the last caller removed, skb_tail_offset() can be killed\nfinally.\n\nCc: Thomas Graf \u003ctgraf@suug.ch\u003e\nCc: Daniel Borkmann \u003cdborkmann@redhat.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "060212928670593fb89243640bf05cf89560b023",
      "tree": "32ae5c7be094983fb06430dbe09d36e2b317ca9c",
      "parents": [
        "af12fa6e46aa651e7b86a4c4117b562518fef184"
      ],
      "author": {
        "name": "Eliezer Tamir",
        "email": "eliezer.tamir@linux.intel.com",
        "time": "Mon Jun 10 11:39:50 2013 +0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 10 21:22:35 2013 -0700"
      },
      "message": "net: add low latency socket poll\n\nAdds an ndo_ll_poll method and the code that supports it.\nThis method can be used by low latency applications to busy-poll\nEthernet device queues directly from the socket code.\nsysctl_net_ll_poll controls how many microseconds to poll.\nDefault is zero (disabled).\nIndividual protocol support will be added by subsequent patches.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Jesse Brandeburg \u003cjesse.brandeburg@intel.com\u003e\nSigned-off-by: Eliezer Tamir \u003celiezer.tamir@linux.intel.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nTested-by: Willem de Bruijn \u003cwillemb@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6bc19fb82d4c05a9eee19d6d2aab2ce26e499ec2",
      "tree": "8b049ef383307f5dae91b5c9cf78dbfb9b74a4d1",
      "parents": [
        "11a164a04382d735230b01f4cc46ad78a7c4abf6",
        "4d3797d7e1861ac1af150a6189315786c5e1c820"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 05 15:56:43 2013 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 05 16:37:30 2013 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nMerge \u0027net\u0027 bug fixes into \u0027net-next\u0027 as we have patches\nthat will build on top of them.\n\nThis merge commit includes a change from Emil Goode\n(emilgoode@gmail.com) that fixes a warning that would\nhave been introduced by this merge.  Specifically it\nfixes the pingv6_ops method ipv6_chk_addr() to add a\n\"const\" to the \"struct net_device *dev\" argument and\nlikewise update the dummy_ipv6_chk_addr() declaration.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1e2bd517c108816220f262d7954b697af03b5f9c",
      "tree": "28fd8bea22513b7fcf8caa1a644f075f13ec5f48",
      "parents": [
        "b190a50875b95e58ebe2b00ed3bf7f1d44961471"
      ],
      "author": {
        "name": "Pravin B Shelar",
        "email": "pshelar@nicira.com",
        "time": "Thu May 30 06:45:27 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 31 17:06:07 2013 -0700"
      },
      "message": "udp6: Fix udp fragmentation for tunnel traffic.\n\nudp6 over GRE tunnel does not work after to GRE tso changes. GRE\ntso handler passes inner packet but keeps track of outer header\nstart in SKB_GSO_CB(skb)-\u003emac_offset.  udp6 fragment need to\ntake care of outer header, which start at the mac_offset, while\nadding fragment header.\nThis bug is introduced by commit 68c3316311 (GRE: Add TCP\nsegmentation offload for GRE).\n\nReported-by: Dmitry Kravkov \u003cdkravkov@gmail.com\u003e\nSigned-off-by: Pravin B Shelar \u003cpshelar@nicira.com\u003e\nTested-by: Dmitry Kravkov \u003cdmitry@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "35d0461061f27eeb62de63174959edbbb9e434de",
      "tree": "d314524f383b508e02055c84b25b72c7e38d77e3",
      "parents": [
        "938177e9f3e0238c1712210f7bb6def38a5c8d7f"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Wed May 29 15:16:05 2013 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 31 17:02:47 2013 -0700"
      },
      "message": "net: clean up skb headers code\n\ncommit 1a37e412a0225fcba5587 (net: Use 16bits for *_headers\nfields of struct skbuff) converts skb-\u003e*_header to u16,\nsome #if NET_SKBUFF_DATA_USES_OFFSET are now useless,\nand to be safe, we could just use \"X \u003d (typeof(X)) ~0U;\"\nas suggested by David.\n\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7cc461900549fc480eb133948649a1edb7eaaa6f",
      "tree": "32782f0156c0eb27b2b188d7882e9c2e77d7c8c5",
      "parents": [
        "158874cac61245b84e939c92c53db7000122b7b0"
      ],
      "author": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Tue May 28 20:34:29 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 28 23:49:07 2013 -0700"
      },
      "message": "net, ipv4, ipv6: Correct assignment of skb-\u003enetwork_header to skb-\u003etail\n\nThis corrects an regression introduced by \"net: Use 16bits for *_headers\nfields of struct skbuff\" when NET_SKBUFF_DATA_USES_OFFSET is not set. In\nthat case skb-\u003etail will be a pointer however skb-\u003enetwork_header is now\nan offset.\n\nThis patch corrects the problem by adding a wrapper to return skb tail as\nan offset regardless of the value of NET_SKBUFF_DATA_USES_OFFSET. It seems\nthat skb-\u003etail that this offset may be more than 64k and some care has been\ntaken to treat such cases as an error.\n\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0d89d2035fe063461a5ddb609b2c12e7fb006e44",
      "tree": "cc7fd6947941ba8e7cb63d5e190e14f48503ca37",
      "parents": [
        "1a37e412a0225fcba5587f24c0dfc7636efc8b69"
      ],
      "author": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu May 23 21:02:52 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 27 22:50:59 2013 -0700"
      },
      "message": "MPLS: Add limited GSO support\n\nIn the case where a non-MPLS packet is received and an MPLS stack is\nadded it may well be the case that the original skb is GSO but the\nNIC used for transmit does not support GSO of MPLS packets.\n\nThe aim of this code is to provide GSO in software for MPLS packets\nwhose skbs are GSO.\n\nSKB Usage:\n\nWhen an implementation adds an MPLS stack to a non-MPLS packet it should do\nthe following to skb metadata:\n\n* Set skb-\u003einner_protocol to the old non-MPLS ethertype of the packet.\n  skb-\u003einner_protocol is added by this patch.\n\n* Set skb-\u003eprotocol to the new MPLS ethertype of the packet.\n\n* Set skb-\u003enetwork_header to correspond to the\n  end of the L3 header, including the MPLS label stack.\n\nI have posted a patch, \"[PATCH v3.29] datapath: Add basic MPLS support to\nkernel\" which adds MPLS support to the kernel datapath of Open vSwtich.\nThat patch sets the above requirements in datapath/actions.c:push_mpls()\nand was used to exercise this code.  The datapath patch is against the Open\nvSwtich tree but it is intended that it be added to the Open vSwtich code\npresent in the mainline Linux kernel at some point.\n\nFeatures:\n\nI believe that the approach that I have taken is at least partially\nconsistent with the handling of other protocols.  Jesse, I understand that\nyou have some ideas here.  I am more than happy to change my implementation.\n\nThis patch adds dev-\u003empls_features which may be used by devices\nto advertise features supported for MPLS packets.\n\nA new NETIF_F_MPLS_GSO feature is added for devices which support\nhardware MPLS GSO offload.  Currently no devices support this\nand MPLS GSO always falls back to software.\n\nAlternate Implementation:\n\nOne possible alternate implementation is to teach netif_skb_features()\nand skb_network_protocol() about MPLS, in a similar way to their\nunderstanding of VLANs. I believe this would avoid the need\nfor net/mpls/mpls_gso.c and in particular the calls to\n__skb_push() and __skb_push() in mpls_gso_segment().\n\nI have decided on the implementation in this patch as it should\nnot introduce any overhead in the case where mpls_gso is not compiled\ninto the kernel or inserted as a module.\n\nMPLS GSO suggested by Jesse Gross.\nBased in part on \"v4 GRE: Add TCP segmentation offload for GRE\"\nby Pravin B Shelar.\n\nCc: Jesse Gross \u003cjesse@nicira.com\u003e\nCc: Pravin B Shelar \u003cpshelar@nicira.com\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1a37e412a0225fcba5587f24c0dfc7636efc8b69",
      "tree": "34abfd79e6e06b0be580ebacfa497330e4dc1634",
      "parents": [
        "50ab731e967d65549b11b808f129329dd614e8d9"
      ],
      "author": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu May 23 21:02:51 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 27 22:50:59 2013 -0700"
      },
      "message": "net: Use 16bits for *_headers fields of struct skbuff\n\nIn order to mitigate ongoing incresase in the size of struct skbuff\nuse 16 bit integer offsets rather than pointers for inner_*_headers.\n\nThis appears to reduce the size of struct skbuff from 0xd0 to 0xc0\nbytes on x86_64 with the following all unset.\n\n\tCONFIG_XFRM\n\tCONFIG_NF_CONNTRACK\n\tCONFIG_NF_CONNTRACK_MODULE\n\tNET_SKBUFF_NF_DEFRAG_NEEDED\n\tCONFIG_BRIDGE_NETFILTER\n\tCONFIG_NET_SCHED\n\tCONFIG_IPV6_NDISC_NODETYPE\n\tCONFIG_NET_DMA\n\tCONFIG_NETWORK_SECMARK\n\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0ebd0ac5ff01ebf412e1bd3c33620ef7ffc5d866",
      "tree": "0f91f0bb25b2674c97ac97ff05e572f6d2394562",
      "parents": [
        "e32123e59871b9389d5b3fe9318611c7f1d1307a"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Apr 17 06:46:58 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 19 14:57:57 2013 -0400"
      },
      "message": "net: add function to allocate sk_buff head without data area\n\nAdd a function to allocate a sk_buff head without any data. This will\nbe used by memory mapped netlink to attach data from the mmaped area\nto the skb.\n\nAdditionally change skb_release_all() to check whether the skb has a\ndata area to allow the skb destructor to clear the data pointer in case\nonly a head has been allocated.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "86a9bad3ab6b6f858fd4443b48738cabbb6d094c",
      "tree": "21d41b1c81e0f3e53ac4004627a8c9588099fea1",
      "parents": [
        "1fd9b1fc310314911f66d2f14a8e4f0ef37bf47b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Apr 19 02:04:30 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 19 14:46:06 2013 -0400"
      },
      "message": "net: vlan: add protocol argument to packet tagging functions\n\nAdd a protocol argument to the VLAN packet tagging functions. In case of HW\ntagging, we need that protocol available in the ndo_start_xmit functions,\nso it is stored in a new field in the skb. The new field fits into a hole\n(on 64 bit) and doesn\u0027t increase the sks\u0027s size.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d978a6361ad13f1f9694fcb7b5852d253a544d92",
      "tree": "8e8a8c62286fab2c044c4b53563222c1b66d7cb0",
      "parents": [
        "8303e699f7089a1cd1421750fb33f289e5f3e1b9",
        "cb28ea3b13b86fb23448525f34720e659bda7aa8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 07 18:37:01 2013 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 07 18:37:01 2013 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tdrivers/nfc/microread/mei.c\n\tnet/netfilter/nfnetlink_queue_core.c\n\nPull in \u0027net\u0027 to get Eric Biederman\u0027s AF_UNIX fix, upon which\nsome cleanups are going to go on-top.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "124dff01afbdbff251f0385beca84ba1b9adda68",
      "tree": "57fe790d91b0d56df456f61b25cce398bc6f4271",
      "parents": [
        "34e2ed34a035de07277cca817fe8264324398141"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Apr 05 20:42:05 2013 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 05 15:38:10 2013 -0400"
      },
      "message": "netfilter: don\u0027t reset nf_trace in nf_reset()\n\nCommit 130549fe (\"netfilter: reset nf_trace in nf_reset\") added code\nto reset nf_trace in nf_reset(). This is wrong and unnecessary.\n\nnf_reset() is used in the following cases:\n\n- when passing packets up the the socket layer, at which point we want to\n  release all netfilter references that might keep modules pinned while\n  the packet is queued. nf_trace doesn\u0027t matter anymore at this point.\n\n- when encapsulating or decapsulating IPsec packets. We want to continue\n  tracing these packets after IPsec processing.\n\n- when passing packets through virtual network devices. Only devices on\n  that encapsulate in IPv4/v6 matter since otherwise nf_trace is not\n  used anymore. Its not entirely clear whether those packets should\n  be traced after that, however we\u0027ve always done that.\n\n- when passing packets through virtual network devices that make the\n  packet cross network namespace boundaries. This is the only cases\n  where we clearly want to reset nf_trace and is also what the\n  original patch intended to fix.\n\nAdd a new function nf_reset_trace() and use it in dev_forward_skb() to\nfix this properly.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "932bc4d7a53ba418de67fdab533248df5b36c752",
      "tree": "19747cdef824180014d98baf8959757d0bae1198",
      "parents": [
        "e5c5d22e8dcf7c2d430336cbf8e180bd38e8daf1"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Thu Mar 21 11:57:58 2013 +0200"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue Apr 02 00:22:53 2013 +0200"
      },
      "message": "net: add skb_dst_set_noref_force\n\nRename skb_dst_set_noref to __skb_dst_set_noref and\nadd force flag as suggested by David Miller. The new wrapper\nskb_dst_set_noref_force will force dst entries that are not\ncached to be attached as skb dst without taking reference\nas long as provided dst is reclaimed after RCU grace period.\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off by: Hans Schillstrom \u003chans@schillstrom.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "fbbdb8f096e0e5d8244e1ffa46e364146ab9a440",
      "tree": "697ea6b58fa25f3481b7a6a31cccdfa0e9c422c8",
      "parents": [
        "429a22ca39e531d9f8bacac1f81f7207909bcbd2"
      ],
      "author": {
        "name": "Ying Xue",
        "email": "ying.xue@windriver.com",
        "time": "Wed Mar 27 16:46:06 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 27 23:21:58 2013 -0400"
      },
      "message": "net: fix compile error of implicit declaration of skb_probe_transport_header\n\nThe commit 40893fd(net: switch to use skb_probe_transport_header())\ninvoles a new error accidently. When NET_SKBUFF_DATA_USES_OFFSE is\nnot enabled, below compile error happens:\n\n  CC      net/packet/af_packet.o\n  net/packet/af_packet.c: In function ‘packet_sendmsg_spkt’:\n  net/packet/af_packet.c:1516:2: error: implicit declaration of function ‘skb_probe_transport_header’ [-Werror\u003dimplicit-function-declaration]\n  cc1: some warnings being treated as errors\n  make[2]: *** [net/packet/af_packet.o] Error 1\n  make[1]: *** [net/packet] Error 2\n  make: *** [net] Error 2\n\nAs it seems skb_probe_transport_header() is not related to\nNET_SKBUFF_DATA_USES_OFFSE, we should move the definition of\nskb_probe_transport_header() out of scope of\nNET_SKBUFF_DATA_USES_OFFSE macro.\n\nCc: Jason Wang \u003cjasowang@redhat.com\u003e\nCc: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: Ying Xue \u003cying.xue@windriver.com\u003e\nAcked-by: Jason Wang \u003cjasowang@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5203cd28db6dc05c3618a602cf4cf81203d00257",
      "tree": "062761308de223744f78111cbbd2ab37772a03d4",
      "parents": [
        "e5d5decaedf41f5b03e6819789cc3ba8744d9f54"
      ],
      "author": {
        "name": "Jason Wang",
        "email": "jasowang@redhat.com",
        "time": "Tue Mar 26 23:11:21 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 27 12:48:31 2013 -0400"
      },
      "message": "net: core: introduce skb_probe_transport_header()\n\nSometimes, we need probe and set the transport header for packets (e.g from\nuntrusted source). This patch introduces a new helper\nskb_probe_transport_header() which tries to probe and set the l4 header through\nskb_flow_dissect(), if not just set the transport header to the hint passed by\ncaller.\n\nCc: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: Jason Wang \u003cjasowang@redhat.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "130549fed828cc34c22624c6195afcf9e7ae56fe",
      "tree": "4d2f1ff9247a0708100d2c8b4fe15f96cc757ca5",
      "parents": [
        "7ebe183c6d444ef5587d803b64a1f4734b18c564"
      ],
      "author": {
        "name": "Gao feng",
        "email": "gaofeng@cn.fujitsu.com",
        "time": "Thu Mar 21 19:48:41 2013 +0000"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Mon Mar 25 14:21:23 2013 +0100"
      },
      "message": "netfilter: reset nf_trace in nf_reset\n\nWe forgot to clear the nf_trace of sk_buff in nf_reset,\nWhen we use veth device, this nf_trace information will\nbe leaked from one net namespace to another net namespace.\n\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "f77668dc25b27270fe589031b22c432c3462b1d8",
      "tree": "99e8e81cccb347d42d0edf2a72715b2dc0796a89",
      "parents": [
        "61816596d1c9026d0ecb20c44f90452c41596ffe"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "dborkman@redhat.com",
        "time": "Tue Mar 19 06:39:30 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 20 13:15:45 2013 -0400"
      },
      "message": "net: flow_dissector: add __skb_get_poff to get a start offset to payload\n\n__skb_get_poff() returns the offset to the payload as far as it could\nbe dissected. The main user is currently BPF, so that we can dynamically\ntruncate packets without needing to push actual payload to the user\nspace and instead can analyze headers only.\n\nSuggested-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "61816596d1c9026d0ecb20c44f90452c41596ffe",
      "tree": "3027ed6dc62f71e14b9d525405747fa0eb8f074d",
      "parents": [
        "23a9072e3af0d9538e25837fb2b56bb94e4a8e67",
        "da2191e31409d1058dcbed44e8f53e39a40e86b3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 20 12:46:26 2013 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 20 12:46:26 2013 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull in the \u0027net\u0027 tree to get Daniel Borkmann\u0027s flow dissector\ninfrastructure change.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cca7af3889bfa343d33d5e657a38d876abd10e58",
      "tree": "5a18b472ad22f863d24ba17435a8471f9dcd178b",
      "parents": [
        "16fad69cfe4adbbfa813de516757b87bcae36d93"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu Mar 14 03:29:40 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 14 11:53:32 2013 -0400"
      },
      "message": "skb: Propagate pfmemalloc on skb from head page only\n\nHi.\n\nI\u0027m trying to send big chunks of memory from application address space via\nTCP socket using vmsplice + splice like this\n\n   mem \u003d mmap(128Mb);\n   vmsplice(pipe[1], mem); /* splice memory into pipe */\n   splice(pipe[0], tcp_socket); /* send it into network */\n\nWhen I\u0027m lucky and a huge page splices into the pipe and then into the socket\n_and_ client and server ends of the TCP connection are on the same host,\ncommunicating via lo, the whole connection gets stuck! The sending queue\nbecomes full and app stops writing/splicing more into it, but the receiving\nqueue remains empty, and that\u0027s why.\n\nThe __skb_fill_page_desc observes a tail page of a huge page and erroneously\npropagates its page-\u003epfmemalloc value onto socket (the pfmemalloc on tail pages\ncontain garbage). Then this skb-\u003epfmemalloc leaks through lo and due to the\n\n    tcp_v4_rcv\n    sk_filter\n        if (skb-\u003epfmemalloc \u0026\u0026 !sock_flag(sk, SOCK_MEMALLOC)) /* true */\n            return -ENOMEM\n        goto release_and_discard;\n\nno packets reach the socket. Even TCP re-transmits are dropped by this, as skb\ncloning clones the pfmemalloc flag as well.\n\nThat said, here\u0027s the proper page-\u003epfmemalloc propagation onto socket: we\nmust check the huge-page\u0027s head page only, other pages\u0027 pfmemalloc and mapping\nvalues do not contain what is expected in this place. However, I\u0027m not sure\nwhether this fix is _complete_, since pfmemalloc propagation via lo also\noesn\u0027t look great.\n\nBoth, bit propagation from page to skb and this check in sk_filter, were\nintroduced by c48a11c7 (netvm: propagate page-\u003epfmemalloc to skb), in v3.5 so\nMel and stable@ are in Cc.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "16fad69cfe4adbbfa813de516757b87bcae36d93",
      "tree": "5b16184db33e16e398fa88ca1dcbb4f054fdaffa",
      "parents": [
        "b701f16dd490d3f346724050f17d60beda094998"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Thu Mar 14 05:40:32 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 14 11:49:45 2013 -0400"
      },
      "message": "tcp: fix skb_availroom()\n\nChrome OS team reported a crash on a Pixel ChromeBook in TCP stack :\n\nhttps://code.google.com/p/chromium/issues/detail?id\u003d182056\n\ncommit a21d45726acac (tcp: avoid order-1 allocations on wifi and tx\npath) did a poor choice adding an \u0027avail_size\u0027 field to skb, while\nwhat we really needed was a \u0027reserved_tailroom\u0027 one.\n\nIt would have avoided commit 22b4a4f22da (tcp: fix retransmit of\npartially acked frames) and this commit.\n\nCrash occurs because skb_split() is not aware of the \u0027avail_size\u0027\nmanagement (and should not be aware)\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nReported-by: Mukesh Agrawal \u003cquiche@chromium.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "731362674580cb0c696cd1b1a03d8461a10cf90a",
      "tree": "29c6e106fbe52b31cacf454d4adc50750694a7b1",
      "parents": [
        "aefbd2b3c2a9c657605e4337f9919d6c6273e8e6"
      ],
      "author": {
        "name": "Pravin B Shelar",
        "email": "pshelar@nicira.com",
        "time": "Thu Mar 07 13:21:51 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 09 16:09:17 2013 -0500"
      },
      "message": "tunneling: Add generic Tunnel segmentation.\n\nAdds generic tunneling offloading support for IPv4-UDP based\ntunnels.\nGSO type is added to request this offload for a skb.\nnetdev feature NETIF_F_UDP_TUNNEL is added for hardware offloaded\nudp-tunnel support. Currently no device supports this feature,\nsoftware offload is used.\n\nThis can be used by tunneling protocols like VXLAN.\n\nCC: Jesse Gross \u003cjesse@nicira.com\u003e\nSigned-off-by: Pravin B Shelar \u003cpshelar@nicira.com\u003e\nAcked-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aefbd2b3c2a9c657605e4337f9919d6c6273e8e6",
      "tree": "b38e3de33fe5cce01bdcbc76e71906e06d40e15d",
      "parents": [
        "f5b1729443fdaf57766f99dd6e18d9b4b6f7a89e"
      ],
      "author": {
        "name": "Pravin B Shelar",
        "email": "pshelar@nicira.com",
        "time": "Thu Mar 07 13:21:46 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 09 16:08:57 2013 -0500"
      },
      "message": "tunneling: Capture inner mac header during encapsulation.\n\nThis patch adds inner mac header. This will be used in next patch\nto find tunner header length. Header len is required to copy tunnel\nheader to each gso segment.\nThis patch does not change any functionality.\n\nSigned-off-by: Pravin B Shelar \u003cpshelar@nicira.com\u003e\nAcked-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "68c331631143f5f039baac99a650e0b9e1ea02b6",
      "tree": "c69d73c5599aab5e92a8c99bc5343c9fc9ffbbd8",
      "parents": [
        "05e8ef4ab2d8087d360e814d14da20b9f7fb2283"
      ],
      "author": {
        "name": "Pravin B Shelar",
        "email": "pshelar@nicira.com",
        "time": "Thu Feb 14 14:02:41 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 15 15:17:11 2013 -0500"
      },
      "message": "v4 GRE: Add TCP segmentation offload for GRE\n\nFollowing patch adds GRE protocol offload handler so that\nskb_gso_segment() can segment GRE packets.\nSKB GSO CB is added to keep track of total header length so that\nskb_segment can push entire header. e.g. in case of GRE, skb_segment\nneed to push inner and outer headers to every segment.\nNew NETIF_F_GRE_GSO feature is added for devices which support HW\nGRE TSO offload. Currently none of devices support it therefore GRE GSO\nalways fall backs to software GSO.\n\n[ Compute pkt_len before ip_local_out() invocation. -DaveM ]\n\nSigned-off-by: Pravin B Shelar \u003cpshelar@nicira.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "14bbd6a565e1bcdc240d44687edb93f721cfdf99",
      "tree": "b2001bb985856d2177212451273d1f6ebcc55035",
      "parents": [
        "d887199dc28c46788b155b234274d5ff41afed8e"
      ],
      "author": {
        "name": "Pravin B Shelar",
        "email": "pshelar@nicira.com",
        "time": "Thu Feb 14 09:44:49 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 15 15:10:37 2013 -0500"
      },
      "message": "net: Add skb_unclone() helper function.\n\nThis function will be used in next GRE_GSO patch. This patch does\nnot change any functionality.\n\nSigned-off-by: Pravin B Shelar \u003cpshelar@nicira.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\n"
    },
    {
      "commit": "c9af6db4c11ccc6c3e7f19bbc15d54023956f97c",
      "tree": "c596e747d8940b848931ac31701e245a6c0efaf6",
      "parents": [
        "b8fa4100350432504df438014e2e5e9c1bbb6325"
      ],
      "author": {
        "name": "Pravin B Shelar",
        "email": "pshelar@nicira.com",
        "time": "Mon Feb 11 09:27:41 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 13 13:30:10 2013 -0500"
      },
      "message": "net: Fix possible wrong checksum generation.\n\nPatch cef401de7be8c4e (net: fix possible wrong checksum\ngeneration) fixed wrong checksum calculation but it broke TSO by\ndefining new GSO type but not a netdev feature for that type.\nnet_gso_ok() would not allow hardware checksum/segmentation\noffload of such packets without the feature.\n\nFollowing patch fixes TSO and wrong checksum. This patch uses\nsame logic that Eric Dumazet used. Patch introduces new flag\nSKBTX_SHARED_FRAG if at least one frag can be modified by\nthe user. but SKBTX_SHARED_FRAG flag is kept in skb shared\ninfo tx_flags rather than gso_type.\n\ntx_flags is better compared to gso_type since we can have skb with\nshared frag without gso packet. It does not link SHARED_FRAG to\nGSO, So there is no need to define netdev feature for this.\n\nSigned-off-by: Pravin B Shelar \u003cpshelar@nicira.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e5e67305885eb12849b5475764b0542f03dc2b59",
      "tree": "beff2a5540f816b58213da8af6275f7be81a86a7",
      "parents": [
        "bfb235d78387c4fd38e296ed7bd9a4f2b0a5b2b9"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Fri Feb 08 10:17:15 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 08 17:33:35 2013 -0500"
      },
      "message": "skbuff: Move definition of NETDEV_FRAG_PAGE_MAX_SIZE\n\nIn order to address the fact that some devices cannot support the full 32K\nfrag size we need to have the value accessible somewhere so that we can use it\nto do comparisons against what the device can support.  As such I am moving\nthe values out of skbuff.c and into skbuff.h.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cef401de7be8c4e155c6746bfccf721a4fa5fab9",
      "tree": "af082329bf0613ed9de5b9575e3f94f3f03b77ec",
      "parents": [
        "61550022b9586972082904b80de26a464c558437"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Fri Jan 25 20:34:37 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 00:27:15 2013 -0500"
      },
      "message": "net: fix possible wrong checksum generation\n\nPravin Shelar mentioned that GSO could potentially generate\nwrong TX checksum if skb has fragments that are overwritten\nby the user between the checksum computation and transmit.\n\nHe suggested to linearize skbs but this extra copy can be\navoided for normal tcp skbs cooked by tcp_sendmsg().\n\nThis patch introduces a new SKB_GSO_SHARED_FRAG flag, set\nin skb_shinfo(skb)-\u003egso_type if at least one frag can be\nmodified by the user.\n\nTypical sources of such possible overwrites are {vm}splice(),\nsendfile(), and macvtap/tun/virtio_net drivers.\n\nTested:\n\n$ netperf -H 7.7.8.84\nMIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to\n7.7.8.84 () port 0 AF_INET\nRecv   Send    Send\nSocket Socket  Message  Elapsed\nSize   Size    Size     Time     Throughput\nbytes  bytes   bytes    secs.    10^6bits/sec\n\n 87380  16384  16384    10.00    3959.52\n\n$ netperf -H 7.7.8.84 -t TCP_SENDFILE\nTCP SENDFILE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 7.7.8.84 ()\nport 0 AF_INET\nRecv   Send    Send\nSocket Socket  Message  Elapsed\nSize   Size    Size     Time     Throughput\nbytes  bytes   bytes    secs.    10^6bits/sec\n\n 87380  16384  16384    10.00    3216.80\n\nPerformance of the SENDFILE is impacted by the extra allocation and\ncopy, and because we use order-0 pages, while the TCP_STREAM uses\nbigger pages.\n\nReported-by: Pravin Shelar \u003cpshelar@nicira.com\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fda55eca5a33f33ffcd4192c6b2d75179714a52c",
      "tree": "54b8e755273ab37fa54cfdd0867b2e7631eb4b10",
      "parents": [
        "0edb7ede7d524377afbaf48a35654baa52368f4b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Jan 07 09:28:21 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 08 17:51:54 2013 -0800"
      },
      "message": "net: introduce skb_transport_header_was_set()\n\nWe have skb_mac_header_was_set() helper to tell if mac_header\nwas set on a skb. We would like the same for transport_header.\n\n__netif_receive_skb() doesn\u0027t reset the transport header if already\nset by GRO layer.\n\nNote that network stacks usually reset the transport header anyway,\nafter pulling the network header, so this change only allows\na followup patch to have more precise qdisc pkt_len computation\nfor GSO packets at ingress side.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Jamal Hadi Salim \u003cjhs@mojatatu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6a674e9c75b17e7a88ff15b3c2e269eed54f7cfb",
      "tree": "cff48ec155b5c7d8a595d66cc7dc0216a91f9ec3",
      "parents": [
        "9ecb9aabaf634677c77af467f4e3028b09d7bcda"
      ],
      "author": {
        "name": "Joseph Gasparakis",
        "email": "joseph.gasparakis@intel.com",
        "time": "Fri Dec 07 14:14:14 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 09 00:20:28 2012 -0500"
      },
      "message": "net: Add support for hardware-offloaded encapsulation\n\nThis patch adds support in the kernel for offloading in the NIC Tx and Rx\nchecksumming for encapsulated packets (such as VXLAN and IP GRE).\n\nFor Tx encapsulation offload, the driver will need to set the right bits\nin netdev-\u003ehw_enc_features. The protocol driver will have to set the\nskb-\u003eencapsulation bit and populate the inner headers, so the NIC driver will\nuse those inner headers to calculate the csum in hardware.\n\nFor Rx encapsulation offload, the driver will need to set again the\nskb-\u003eencapsulation flag and the skb-\u003eip_csum to CHECKSUM_UNNECESSARY.\nIn that case the protocol driver should push the decapsulated packet up\nto the stack, again with CHECKSUM_UNNECESSARY. In ether case, the protocol\ndriver should set the skb-\u003eencapsulation flag back to zero. Finally the\nprotocol driver should have NETIF_F_RXCSUM flag set in its features.\n\nSigned-off-by: Joseph Gasparakis \u003cjoseph.gasparakis@intel.com\u003e\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "25121173f7b1e4ac3fc692df6e7b8c52ec36abba",
      "tree": "5d52c2fe88397dae0ee799c194d46bf641b0a902",
      "parents": [
        "e19d6763cc300fcb706bd291b24ac06be71e1ce6"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Nov 01 09:16:28 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 02 21:29:57 2012 -0400"
      },
      "message": "skb: api to report errors for zero copy skbs\n\nOrphaning frags for zero copy skbs needs to allocate data in atomic\ncontext so is has a chance to fail. If it does we currently discard\nthe skb which is safe, but we don\u0027t report anything to the caller,\nso it can not recover by e.g. disabling zero copy.\n\nAdd an API to free skb reporting such errors: this is used\nby tun in case orphaning frags fails.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e19d6763cc300fcb706bd291b24ac06be71e1ce6",
      "tree": "05608ee69740360480b4c66a368eb21987993058",
      "parents": [
        "202975b4c522c197e4e2269d389aafbf056a4c37"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Nov 01 09:16:22 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 02 21:29:57 2012 -0400"
      },
      "message": "skb: report completion status for zero copy skbs\n\nEven if skb is marked for zero copy, net core might still decide\nto copy it later which is somewhat slower than a copy in user context:\nbesides copying the data we need to pin/unpin the pages.\n\nAdd a parameter reporting such cases through zero copy callback:\nif this happens a lot, device can take this into account\nand switch to copying in user context.\n\nThis patch updates all users but ignores the passed value for now:\nit will be used by follow-up patches.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ecd5cf5dc5b07bc57aedf4c92453d6c343e3d840",
      "tree": "1e1b88386c2f7ceaabf56d362bf3b7789c91f9e1",
      "parents": [
        "9add4d8174907c9977ad29cf6e71460829ec954e"
      ],
      "author": {
        "name": "Willem de Bruijn",
        "email": "willemb@google.com",
        "time": "Fri Oct 26 11:52:08 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 31 13:56:40 2012 -0400"
      },
      "message": "net: compute skb-\u003erxhash if nic hash may be 3-tuple\n\nNetwork device drivers can communicate a Toeplitz hash in skb-\u003erxhash,\nbut devices differ in their hashing capabilities. All compute a 5-tuple\nhash for TCP over IPv4, but for other connection-oriented protocols,\nthey may compute only a 3-tuple. This breaks RPS load balancing, e.g.,\nfor TCP over IPv6 flows. Additionally, for GRE and other tunnels,\nthe kernel computes a 5-tuple hash over the inner packet if possible,\nbut devices do not.\n\nThis patch recomputes the rxhash in software in all cases where it\ncannot be certain that a 5-tuple was computed. Device drivers can avoid\nrecomputation by setting the skb-\u003el4_rxhash flag.\n\nRecomputing adds cycles to each packet when RPS is enabled or the\npacket arrives over a tunnel. A comparison of 200x TCP_STREAM between\ntwo servers running unmodified netnext with rxhash computation\nin hardware vs software (using ethtool -K eth0 rxhash [on|off]) shows\nhow much time is spent in __skb_get_rxhash in this worst case:\n\n     0.03%          swapper  [kernel.kallsyms]     [k] __skb_get_rxhash\n     0.03%          swapper  [kernel.kallsyms]     [k] __skb_get_rxhash\n     0.05%          swapper  [kernel.kallsyms]     [k] __skb_get_rxhash\n\nWith 200x TCP_RR it increases to\n\n     0.10%          netperf  [kernel.kallsyms]     [k] __skb_get_rxhash\n     0.10%          netperf  [kernel.kallsyms]     [k] __skb_get_rxhash\n     0.10%          netperf  [kernel.kallsyms]     [k] __skb_get_rxhash\n\nI considered having the patch explicitly skips recomputation when it knows\nthat it will not improve the hash (TCP over IPv4), but that conditional\ncomplicates code without saving many cycles in practice, because it has\nto take place after flow dissector.\n\nSigned-off-by: Willem de Bruijn \u003cwillemb@google.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "acb600def2110b1310466c0e485c0d26299898ae",
      "tree": "21036c7d0518601aba70dde0246ac229cd8dfc0c",
      "parents": [
        "809d5fc9bf6589276a12bd4fd611e4c7ff9940c3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Fri Oct 05 06:23:55 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 07 00:40:54 2012 -0400"
      },
      "message": "net: remove skb recycling\n\nOver time, skb recycling infrastructure got litle interest and\nmany bugs. Generic rx path skb allocation is now using page\nfragments for efficient GRO / TCP coalescing, and recyling\na tx skb for rx path is not worth the pain.\n\nLast identified bug is that fat skbs can be recycled\nand it can endup using high order pages after few iterations.\n\nWith help from Maxime Bizon, who pointed out that commit\n87151b8689d (net: allow pskb_expand_head() to get maximum tailroom)\nintroduced this regression for recycled skbs.\n\nInstead of fixing this bug, lets remove skb recycling.\n\nDrivers wanting really hot skbs should use build_skb() anyway,\nto allocate/populate sk_buff right before netif_receive_skb()\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Maxime Bizon \u003cmbizon@freebox.fr\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "47061bc440b90a16d856fb0dba1cffc36427efa4",
      "tree": "3fcde7efa87537e085013adc5cfa963701557d6d",
      "parents": [
        "cc72d100a3f4ba42a9ad02ebe52c0c6c7c496267"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Fri Aug 03 20:54:15 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Aug 04 01:27:57 2012 -0700"
      },
      "message": "net: skb_share_check() should use consume_skb()\n\nIn order to avoid false drop_monitor indications, we should\ncall consume_skb() if skb_clone() was successful.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0614002bb5f7411e61ffa0dfe5be1f2c84df3da3",
      "tree": "f061bc27a010cec343cbd82eefd7b8724e52f146",
      "parents": [
        "c48a11c7ad2623b99bbd6859b0b4234e7f11176f"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "netvm: propagate page-\u003epfmemalloc from skb_alloc_page to skb\n\nThe skb-\u003epfmemalloc flag gets set to true iff during the slab allocation\nof data in __alloc_skb that the the PFMEMALLOC reserves were used.  If\npage splitting is used, it is possible that pages will be allocated from\nthe PFMEMALLOC reserve without propagating this information to the skb.\nThis patch propagates page-\u003epfmemalloc from pages allocated for fragments\nto the skb.\n\nIt works by reintroducing and expanding the skb_alloc_page() API to take\nan skb.  If the page was allocated from pfmemalloc reserves, it is\nautomatically copied.  If the driver allocates the page before the skb, it\nshould call skb_propagate_pfmemalloc() after the skb is allocated to\nensure the flag is copied properly.\n\nFailure to do so is not critical.  The resulting driver may perform slower\nif it is used for swap-over-NBD or swap-over-NFS but it should not result\nin failure.\n\n[davem@davemloft.net: API rename and consistency]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c48a11c7ad2623b99bbd6859b0b4234e7f11176f",
      "tree": "5937aa7e5679761d516431de3be4cb9c4f81f350",
      "parents": [
        "c93bdd0e03e848555d144eb44a1f275b871a8dd5"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "netvm: propagate page-\u003epfmemalloc to skb\n\nThe skb-\u003epfmemalloc flag gets set to true iff during the slab allocation\nof data in __alloc_skb that the the PFMEMALLOC reserves were used.  If the\npacket is fragmented, it is possible that pages will be allocated from the\nPFMEMALLOC reserve without propagating this information to the skb.  This\npatch propagates page-\u003epfmemalloc from pages allocated for fragments to\nthe skb.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c93bdd0e03e848555d144eb44a1f275b871a8dd5",
      "tree": "8aff3bc2b9ff9f32e51040a7652bfb31257db626",
      "parents": [
        "7cb0240492caea2f6467f827313478f41877e6ef"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "netvm: allow skb allocation to use PFMEMALLOC reserves\n\nChange the skb allocation API to indicate RX usage and use this to fall\nback to the PFMEMALLOC reserve when needed.  SKBs allocated from the\nreserve are tagged in skb-\u003epfmemalloc.  If an SKB is allocated from the\nreserve and the socket is later found to be unrelated to page reclaim, the\npacket is dropped so that the memory remains available for page reclaim.\nNetwork protocols are expected to recover from this packet loss.\n\n[a.p.zijlstra@chello.nl: Ideas taken from various patches]\n[davem@davemloft.net: Use static branches, coding style corrections]\n[sebastian@breakpoint.cc: Avoid unnecessary cast, fix !CONFIG_NET build]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a353e0ce0fd42d8859260666d1e9b10f2abd4698",
      "tree": "3c7e5807d36bec7e774ab164598ff34638681e31",
      "parents": [
        "d47e12d63e745f667a977226c3f59ae14521592d"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Fri Jul 20 09:23:07 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 22 12:39:33 2012 -0700"
      },
      "message": "skbuff: add an api to orphan frags\n\nMany places do\n       if ((skb_shinfo(skb)-\u003etx_flags \u0026 SKBTX_DEV_ZEROCOPY))\n\t\tskb_copy_ubufs(skb, gfp_mask);\nto copy and invoke frag destructors if necessary.\nAdd an inline helper for this.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62b1a8ab9b3660bb820d8dfe23148ed6cda38574",
      "tree": "7e6e6702da0e7ec0afe5c4dc6b337e8870b45fae",
      "parents": [
        "bc14786a100cc6a81cd060e8031ec481241b418c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Thu Jun 14 06:42:44 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 15 15:30:15 2012 -0700"
      },
      "message": "net: remove skb_orphan_try()\n\nOrphaning skb in dev_hard_start_xmit() makes bonding behavior\nunfriendly for applications sending big UDP bursts : Once packets\npass the bonding device and come to real device, they might hit a full\nqdisc and be dropped. Without orphaning, the sender is automatically\nthrottled because sk-\u003esk_wmemalloc reaches sk-\u003esk_sndbuf (assuming\nsk_sndbuf is not too big)\n\nWe could try to defer the orphaning adding another test in\ndev_hard_start_xmit(), but all this seems of little gain,\nnow that BQL tends to make packets more likely to be parked\nin Qdisc queues instead of NIC TX ring, in cases where performance\nmatters.\n\nReverts commits :\nfc6055a5ba31 net: Introduce skb_orphan_try()\n87fd308cfc6b net: skb_tx_hash() fix relative to skb_orphan_try()\nand removes SKBTX_DRV_NEEDS_SK_REF flag\n\nReported-and-bisected-by: Jean-Michel Hautbois \u003cjhautbois@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nTested-by: Oliver Hartkopp \u003csocketcan@hartkopp.net\u003e\nAcked-by: Oliver Hartkopp \u003csocketcan@hartkopp.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "617c8c11236716dcbda877e764b7bf37c6fd8063",
      "tree": "78211c03e4e80eb1ea448c45139ce07534ccd238",
      "parents": [
        "79fba9f51755c704c0a7d7b7f0df10874dc0a744"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Tue May 29 03:35:08 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 29 17:30:08 2012 -0400"
      },
      "message": "skb: avoid unnecessary reallocations in __skb_cow\n\nAt the beginning of __skb_cow, headroom gets set to a minimum of\nNET_SKB_PAD. This causes unnecessary reallocations if the buffer was not\ncloned and the headroom is just below NET_SKB_PAD, but still more than the\namount requested by the caller.\nThis was showing up frequently in my tests on VLAN tx, where\nvlan_insert_tag calls skb_cow_head(skb, VLAN_HLEN).\n\nLocally generated packets should have enough headroom, and for forward\npaths, we already have NET_SKB_PAD bytes of headroom, so we don\u0027t need to\nadd any extra space here.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bad43ca8325f493dcaa0896c2f036276af059c7e",
      "tree": "ee27a3b3eeef928f22cd500a32a23e4db60a5584",
      "parents": [
        "3dde25988292864a582b4a9389b1ae835aa3fe80"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sat May 19 03:02:02 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 19 18:34:57 2012 -0400"
      },
      "message": "net: introduce skb_try_coalesce()\n\nMove tcp_try_coalesce() protocol independent part to\nskb_try_coalesce().\n\nskb_try_coalesce() can be used in IPv4 defrag and IPv6 reassembly,\nto build optimized skbs (less sk_buff, and possibly less \u0027headers\u0027)\n\nskb_try_coalesce() is zero copy, unless the copy can fit in destination\nheader (its a rare case)\n\nkfree_skb_partial() is also moved to net/core/skbuff.c and exported,\nbecause IPv6 will need it in patch (ipv6: use skb coalescing in\nreassembly).\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f532612cc2410a5079ea0f83e7a5011adfbf70d",
      "tree": "0459fada6287120f5c47ed56c440c4d1c3e3eaa2",
      "parents": [
        "56138f50d1900b0c3d8647376e37b488b23ba53d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Fri May 18 05:12:12 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 18 13:31:25 2012 -0400"
      },
      "message": "net: introduce netdev_alloc_frag()\n\nFix two issues introduced in commit a1c7fff7e18f5\n( net: netdev_alloc_skb() use build_skb() )\n\n- Must be IRQ safe (non NAPI drivers can use it)\n- Must not leak the frag if build_skb() fails to allocate sk_buff\n\nThis patch introduces netdev_alloc_frag() for drivers willing to\nuse build_skb() instead of __netdev_alloc_skb() variants.\n\nFactorize code so that :\n__dev_alloc_skb() is a wrapper around __netdev_alloc_skb(), and\ndev_alloc_skb() a wrapper around netdev_alloc_skb()\n\nUse __GFP_COLD flag.\n\nAlmost all network drivers now benefit from skb-\u003ehead_frag\ninfrastructure.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0d6c4a2e4641bbc556dd74d3aa158c413a972492",
      "tree": "da944af17682659bb433dc2282dcb48380c14cd1",
      "parents": [
        "6e06c0e2347ec79d0bd5702b2438fe883f784545",
        "1c430a727fa512500a422ffe4712166c550ea06a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 07 23:35:40 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 07 23:35:40 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tdrivers/net/ethernet/intel/e1000e/param.c\n\tdrivers/net/wireless/iwlwifi/iwl-agn-rx.c\n\tdrivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c\n\tdrivers/net/wireless/iwlwifi/iwl-trans.h\n\nResolved the iwlwifi conflict with mainline using 3-way diff posted\nby John Linville and Stephen Rothwell.  In \u0027net\u0027 we added a bug\nfix to make iwlwifi report a more accurate skb-\u003etruesize but this\nconflicted with RX path changes that happened meanwhile in net-next.\n\nIn e1000e a conflict arose in the validation code for settings of\nadapter-\u003eitr.  \u0027net-next\u0027 had more sophisticated logic so that\nlogic was used.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ec47ea82477404631d49b8e568c71826c9b663ac",
      "tree": "8b7890f23ad078d9eccbd4571e0b2da86b04a6a0",
      "parents": [
        "3e24591a19bbda6fcb2cbe383b41b4ba794501bf"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Fri May 04 14:26:56 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 06 13:13:19 2012 -0400"
      },
      "message": "skb: Add inline helper for getting the skb end offset from head\n\nWith the recent changes for how we compute the skb truesize it occurs to me\nwe are probably going to have a lot of calls to skb_end_pointer -\nskb-\u003ehead.  Instead of running all over the place doing that it would make\nmore sense to just make it a separate inline skb_end_offset(skb) that way\nwe can return the correct value without having gcc having to do all the\noptimization to cancel out skb-\u003ehead - skb-\u003ehead.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3a7c1ee4ab89f9250b8f82656a7be0ae14aa3691",
      "tree": "9dc10e067f2364fd3590b38cd5db495cd09c32e6",
      "parents": [
        "715dc1f342713816d1be1c37643a2c9e6ee181a7"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Thu May 03 01:09:42 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 03 13:18:37 2012 -0400"
      },
      "message": "skb: Add skb_head_is_locked helper function\n\nThis patch adds support for a skb_head_is_locked helper function.  It is\nmeant to be used any time we are considering transferring the head from\nskb-\u003ehead to a paged frag.  If the head is locked it means we cannot remove\nthe head from the skb so it must be copied or we must take the skb as a\nwhole.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d961949660fa1c1b7eb0c3a3c157989c90f14e8e",
      "tree": "399d4b607366367f9dcf9d9d04c132a34a3a6d21",
      "parents": [
        "60158e64641fd8c780a6d14de2bf42aabc419916"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Apr 30 21:29:16 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 01 09:40:19 2012 -0400"
      },
      "message": "net: fix two typos in skbuff.h\n\nfix kernel doc typos in function names\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "18d0700024d68a075c507b845d85eda2abb5aee7",
      "tree": "bc733355c1aa30aa3e24cadf26747413ca74a207",
      "parents": [
        "e4cbb02a1070ebf0185f67a8887cc05f8a183d71"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Apr 30 16:31:46 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 01 09:39:48 2012 -0400"
      },
      "message": "net: skb_peek()/skb_peek_tail() cleanups\n\nremove useless casts and rename variables for less confusion.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d7e8883cfcf4851afe74fb380cc62b7fa9cf66ba",
      "tree": "1b513349c4f1c7edf7991de2016b3a2ed1083deb",
      "parents": [
        "8d4057a938481351dc690fbe23e8c72af08d5890"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Apr 30 08:10:34 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 30 21:35:49 2012 -0400"
      },
      "message": "net: make GRO aware of skb-\u003ehead_frag\n\nGRO can check if skb to be merged has its skb-\u003ehead mapped to a page\nfragment, instead of a kmalloc() area.\n\nWe \u0027upgrade\u0027 skb-\u003ehead as a fragment in itself\n\nThis avoids the frag_list fallback, and permits to build true GRO skb\n(one sk_buff and up to 16 fragments), using less memory.\n\nThis reduces number of cache misses when user makes its copy, since a\nsingle sk_buff is fetched.\n\nThis is a followup of patch \"net: allow skb-\u003ehead to be a page fragment\"\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Maciej Żenczykowski \u003cmaze@google.com\u003e\nCc: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nCc: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nCc: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nCc: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d3836f21b0af5513ef55701dd3f50b8c42e44c7a",
      "tree": "69a471411b1dbbc2bb0997dd5f9f53fce6c74a7e",
      "parents": [
        "49cbb1c1e6fd8fb069ef9fbfadc97042168f93bf"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Fri Apr 27 00:33:38 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 30 21:35:11 2012 -0400"
      },
      "message": "net: allow skb-\u003ehead to be a page fragment\n\nskb-\u003ehead is currently allocated from kmalloc(). This is convenient but\nhas the drawback the data cannot be converted to a page fragment if\nneeded.\n\nWe have three spots were it hurts :\n\n1) GRO aggregation\n\n When a linear skb must be appended to another skb, GRO uses the\nfrag_list fallback, very inefficient since we keep all struct sk_buff\naround. So drivers enabling GRO but delivering linear skbs to network\nstack aren\u0027t enabling full GRO power.\n\n2) splice(socket -\u003e pipe).\n\n We must copy the linear part to a page fragment.\n This kind of defeats splice() purpose (zero copy claim)\n\n3) TCP coalescing.\n\n Recently introduced, this permits to group several contiguous segments\ninto a single skb. This shortens queue lengths and save kernel memory,\nand greatly reduce probabilities of TCP collapses. This coalescing\ndoesnt work on linear skbs (or we would need to copy data, this would be\ntoo slow)\n\nGiven all these issues, the following patch introduces the possibility\nof having skb-\u003ehead be a fragment in itself. We use a new skb flag,\nskb-\u003ehead_frag to carry this information.\n\nbuild_skb() is changed to accept a frag_size argument. Drivers willing\nto provide a page fragment instead of kmalloc() data will set a non zero\nvalue, set to the fragment size.\n\nThen, on situations we need to convert the skb head to a frag in itself,\nwe can check if skb-\u003ehead_frag is set and avoid the copies or various\nfallbacks we have.\n\nThis means drivers currently using frags could be updated to avoid the\ncurrent skb-\u003ehead allocation and reduce their memory footprint (aka skb\ntruesize). (thats 512 or 1024 bytes saved per skb). This also makes\nbpf/netfilter faster since the \u0027first frag\u0027 will be part of skb linear\npart, no need to copy data.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Maciej Żenczykowski \u003cmaze@google.com\u003e\nCc: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nCc: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nCc: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nCc: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "38ba0a65faf451dd46c7860b4fade84c0b8e444f",
      "tree": "30689f565d6ff6a0b046e0c8b05a5aa7544144dd",
      "parents": [
        "783c175f902b1ae011f12de45770e7912638ea1a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Apr 23 17:48:27 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 24 00:18:02 2012 -0400"
      },
      "message": "net: skb_can_coalesce returns a boolean\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bf1ac5ca6f0dede02635588704d216da474b4baa",
      "tree": "c231d5e4baed611d37d70aa34a732c41797e18ff",
      "parents": [
        "cbf8f7bb200f5dbdc9ce11243431440720db03dc"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Apr 18 23:19:25 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 19 15:18:50 2012 -0400"
      },
      "message": "nf_bridge: remove holes in struct nf_bridge_info\n\nPut use \u0026 mask on same location to avoid two holes on 64bit arches\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ca8f4fb21d08747013cce9cf1840aa5bfc31f2d8",
      "tree": "f18de0412ec64d7aa4a26ff85d0ad1c57263dbff",
      "parents": [
        "9a5d2bd99e0dfe9a31b3c160073ac445ba3d773f"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Apr 09 00:24:02 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 13 13:09:19 2012 -0400"
      },
      "message": "skbuff: struct ubuf_info callback type safety\n\nThe skb struct ubuf_info callback gets passed struct ubuf_info\nitself, not the arg value as the field name and the function signature\nseem to imply. Rename the arg field to ctx to match usage,\nadd documentation and change the callback argument type\nto make usage clear and to have compiler check correctness.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a21d45726acacc963d8baddf74607d9b74e2b723",
      "tree": "7cd7e1409ac0242148a0a8117956d08572eb32cf",
      "parents": [
        "87151b8689d890dfb495081f7be9b9e257f7a2df"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Apr 10 20:30:48 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 11 10:11:12 2012 -0400"
      },
      "message": "tcp: avoid order-1 allocations on wifi and tx path\n\nMarc Merlin reported many order-1 allocations failures in TX path on its\nwireless setup, that dont make any sense with MTU\u003d1500 network, and non\nSG capable hardware.\n\nAfter investigation, it turns out TCP uses sk_stream_alloc_skb() and\nused as a convention skb_tailroom(skb) to know how many bytes of data\npayload could be put in this skb (for non SG capable devices)\n\nNote : these skb used kmalloc-4096 (MTU\u003d1500 + MAX_HEADER +\nsizeof(struct skb_shared_info) being above 2048)\n\nLater, mac80211 layer need to add some bytes at the tail of skb\n(IEEE80211_ENCRYPT_TAILROOM \u003d 18 bytes) and since no more tailroom is\navailable has to call pskb_expand_head() and request order-1\nallocations.\n\nThis patch changes sk_stream_alloc_skb() so that only\nsk-\u003esk_prot-\u003emax_header bytes of headroom are reserved, and use a new\nskb field, avail_size to hold the data payload limit.\n\nThis way, order-0 allocations done by TCP stack can leave more than 2 KB\nof tailroom and no more allocation is performed in mac80211 layer (or\nany layer needing some tailroom)\n\navail_size is unioned with mark/dropcount, since mark will be set later\nin IP stack for output packets. Therefore, skb size is unchanged.\n\nReported-by: Marc MERLIN \u003cmarc@merlins.org\u003e\nTested-by: Marc MERLIN \u003cmarc@merlins.org\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "de8856d2c11f562c60ed9340a83db4a4f829a6e6",
      "tree": "0b871e5f4cf3204c4c6243c7622c4787d56d48ee",
      "parents": [
        "66f03c614c0902ccf7d6160459362a9352f33271",
        "94f826b8076e2cb92242061e92f21b5baa3eccc2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 27 16:52:32 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 27 16:52:32 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull networking fixes from David Miller:\n 1) Name string overrun fix in gianfar driver from Joe Perches.\n\n 2) VHOST bug fixes from Michael S. Tsirkin and Nadav Har\u0027El\n\n 3) Fix dependencies on xt_LOG netfilter module, from Pablo Neira Ayuso.\n\n 4) Fix RCU locking in xt_CT, also from Pablo Neira Ayuso.\n\n 5) Add a parameter to skb_add_rx_frag() so we can fix the truesize\n    adjustments in the drivers that use it.  The individual drivers\n    aren\u0027t fixed by this commit, but will be dealt with using follow-on\n    commits.  From Eric Dumazet.\n\n 6) Add some device IDs to qmi_wwan driver, from Andrew Bird.\n\n 7) Fix a potential rcu_read_lock() imbalancein rt6_fill_node().  From\n    Eric Dumazet.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:\n  net: fix a potential rcu_read_lock() imbalance in rt6_fill_node()\n  net: add a truesize parameter to skb_add_rx_frag()\n  gianfar: Fix possible overrun and simplify interrupt name field creation\n  USB: qmi_wwan: Add ZTE (Vodafone) K3570-Z and K3571-Z net interfaces\n  USB: option: Ignore ZTE (Vodafone) K3570/71 net interfaces\n  USB: qmi_wwan: Add ZTE (Vodafone) K3565-Z and K4505-Z net interfaces\n  qlcnic: Bug fix for LRO\n  netfilter: nf_conntrack: permanently attach timeout policy to conntrack\n  netfilter: xt_CT: fix assignation of the generic protocol tracker\n  netfilter: xt_CT: missing rcu_read_lock section in timeout assignment\n  netfilter: cttimeout: fix dependency with l4protocol conntrack module\n  netfilter: xt_LOG: use CONFIG_IP6_NF_IPTABLES instead of CONFIG_IPV6\n  vhost: fix release path lockdep checks\n  vhost: don\u0027t forget to schedule()\n  tools/virtio: stub out strong barriers\n  tools/virtio: add linux/hrtimer.h stub\n  tools/virtio: add linux/module.h stub\n"
    },
    {
      "commit": "50269e19ad990e79eeda101fc6df80cffd5d4831",
      "tree": "903d80ba1b1fc0eb15e122a8c12a72f72e7ed2de",
      "parents": [
        "0015e551edb1d28191567d8a7d1ce5edda404ced"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Mar 23 23:59:33 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 25 13:29:58 2012 -0400"
      },
      "message": "net: add a truesize parameter to skb_add_rx_frag()\n\nskb_add_rx_frag() API is misleading.\n\nNetwork skbs built with this helper can use uncharged kernel memory and\neventually stress/crash machine in OOM.\n\nAdd a \u0027truesize\u0027 parameter and then fix drivers in followup patches.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Wey-Yi Guy \u003cwey-yi.w.guy@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed2d265d1266736bd294332d7f649003943ae36e",
      "tree": "860e5b7bb72933e4a9abacdc2f2d75a0e6254e32",
      "parents": [
        "f1d38e423a697b7aa06e12d3ca4753bcc1aa3531",
        "6c03438edeb5c359af35f060ea016ca65671c269"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "message": "Merge tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/bug.h\u003e cleanup from Paul Gortmaker:\n \"The changes shown here are to unify linux\u0027s BUG support under the one\n  \u003clinux/bug.h\u003e file.  Due to historical reasons, we have some BUG code\n  in bug.h and some in kernel.h -- i.e.  the support for BUILD_BUG in\n  linux/kernel.h predates the addition of linux/bug.h, but old code in\n  kernel.h wasn\u0027t moved to bug.h at that time.  As a band-aid, kernel.h\n  was including \u003casm/bug.h\u003e to pseudo link them.\n\n  This has caused confusion[1] and general yuck/WTF[2] reactions.  Here\n  is an example that violates the principle of least surprise:\n\n      CC      lib/string.o\n      lib/string.c: In function \u0027strlcat\u0027:\n      lib/string.c:225:2: error: implicit declaration of function \u0027BUILD_BUG_ON\u0027\n      make[2]: *** [lib/string.o] Error 1\n      $\n      $ grep linux/bug.h lib/string.c\n      #include \u003clinux/bug.h\u003e\n      $\n\n  We\u0027ve included \u003clinux/bug.h\u003e for the BUG infrastructure and yet we\n  still get a compile fail! [We\u0027ve not kernel.h for BUILD_BUG_ON.] Ugh -\n  very confusing for someone who is new to kernel development.\n\n  With the above in mind, the goals of this changeset are:\n\n  1) find and fix any include/*.h files that were relying on the\n     implicit presence of BUG code.\n  2) find and fix any C files that were consuming kernel.h and hence\n     relying on implicitly getting some/all BUG code.\n  3) Move the BUG related code living in kernel.h to \u003clinux/bug.h\u003e\n  4) remove the asm/bug.h from kernel.h to finally break the chain.\n\n  During development, the order was more like 3-4, build-test, 1-2.  But\n  to ensure that git history for bisect doesn\u0027t get needless build\n  failures introduced, the commits have been reorderd to fix the problem\n  areas in advance.\n\n\t[1]  https://lkml.org/lkml/2012/1/3/90\n\t[2]  https://lkml.org/lkml/2012/1/17/414\"\n\nFix up conflicts (new radeon file, reiserfs header cleanups) as per Paul\nand linux-next.\n\n* tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  kernel.h: doesn\u0027t explicitly use bug.h, so don\u0027t include it.\n  bug: consolidate BUILD_BUG_ON with other bug code\n  BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n  bug.h: add include of it to various implicit C users\n  lib: fix implicit users of kernel.h for TAINT_WARN\n  spinlock: macroize assert_spin_locked to avoid bug.h dependency\n  x86: relocate get/set debugreg fcns to include/asm/debugreg.\n"
    },
    {
      "commit": "3af79302b400e05b45e377993a8870869500466b",
      "tree": "d273210736e14576bbc49009ece005c62f1bb3e8",
      "parents": [
        "cf64bc8f093581d0697b65ea8dd04bdd27a676b0"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Mon Mar 19 11:12:41 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 19 17:37:35 2012 -0400"
      },
      "message": "net: update the usage of CHECKSUM_UNNECESSARY\n\nAs suggested by Ben, this adds the clarification on the usage of\nCHECKSUM_UNNECESSARY on the outgoing patch. Also add the usage\ndescription of NETIF_F_FCOE_CRC and CHECKSUM_UNNECESSARY\nfor the kernel FCoE protocol driver.\n\nThis is a follow-up to the following:\nhttp://patchwork.ozlabs.org/patch/147315/\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nCc: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nCc: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nCc: www.Open-FCoE.org \u003cdevel@open-fcoe.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "bdcc0924c8c6e6362bb93b6120631f257aac6f87"
}
