)]}'
{
  "log": [
    {
      "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": "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"
    },
    {
      "commit": "bdcc0924c8c6e6362bb93b6120631f257aac6f87",
      "tree": "799cdc5953b5aa620503700fdb97c4c40da17090",
      "parents": [
        "6a91395f20119d696330e2604451614a64369d1b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 07 20:53:36 2012 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 09 14:34:50 2012 -0800"
      },
      "message": "net: Use bool in skbuff.h helper functions.\n\nIn particular do this for skb_is_nonlinear(), skb_is_gso(), and\nskb_is_gso_v6().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "187f1882b5b0748b3c4c22274663fdb372ac0452",
      "tree": "36283f258cf65f03599a045d48bb05d0ec27f3f9",
      "parents": [
        "50af5ead3b44ccf8bd2b4d2a50c1b610f557c480"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Nov 23 20:12:59 2011 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Mar 04 17:54:34 2012 -0500"
      },
      "message": "BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n\nIf a header file is making use of BUG, BUG_ON, BUILD_BUG_ON, or any\nother BUG variant in a static inline (i.e. not in a #define) then\nthat header really should be including \u003clinux/bug.h\u003e and not just\nexpecting it to be implicitly present.\n\nWe can make this change risk-free, since if the files using these\nheaders didn\u0027t have exposure to linux/bug.h already, they would have\nbeen causing compile failures/warnings.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "ff4783ce78c08d2990126ce1874250ae8e72bbd2",
      "tree": "5c95885a4ab768101dd72942b57c238d452a7565",
      "parents": [
        "622121719934f60378279eb440d3cec2fc3176d2",
        "203738e548cefc3fc3c2f73a9063176c9f3583d5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 26 21:55:51 2012 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 26 21:55:51 2012 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tdrivers/net/ethernet/sfc/rx.c\n\nOverlapping changes in drivers/net/ethernet/sfc/rx.c, one to change\nthe rx_buf-\u003eis_page boolean into a set of u16 flags, and another to\nadjust how -\u003eip_summed is initialized.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3bdc0eba0b8b47797f4a76e377dd8360f317450f",
      "tree": "da6bd907f599402bc8db0a2484997fd4d3e06f7b",
      "parents": [
        "0184039a4b6727d6efd545919c773ef141090ae7"
      ],
      "author": {
        "name": "Ben Greear",
        "email": "greearb@candelatech.com",
        "time": "Sat Feb 11 15:39:30 2012 +0000"
      },
      "committer": {
        "name": "Jeff Kirsher",
        "email": "jeffrey.t.kirsher@intel.com",
        "time": "Fri Feb 24 01:37:35 2012 -0800"
      },
      "message": "net: Add framework to allow sending packets with customized CRC.\n\nThis is useful for testing RX handling of frames with bad\nCRCs.\n\nRequires driver support to actually put the packet on the\nwire properly.\n\nSigned-off-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nTested-by: Aaron Brown \u003caaron.f.brown@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\n"
    },
    {
      "commit": "03606895cd98c0a628b17324fd7b5ff15db7e3cd",
      "tree": "26aab95243f23a5d0cff45ee0d6afd1608afe5df",
      "parents": [
        "4a2258ddddefeef3291c0fc66437c73d84261a1e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Feb 23 10:55:02 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 23 16:50:45 2012 -0500"
      },
      "message": "ipsec: be careful of non existing mac headers\n\nNiccolo Belli reported ipsec crashes in case we handle a frame without\nmac header (atm in his case)\n\nBefore copying mac header, better make sure it is present.\n\nBugzilla reference:  https://bugzilla.kernel.org/show_bug.cgi?id\u003d42809\n\nReported-by: Niccolò Belli \u003cdarkbasic@linuxsystems.it\u003e\nTested-by: Niccolò Belli \u003cdarkbasic@linuxsystems.it\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "da5ef6e51b327b41180b5d1000c06e8d3595a936",
      "tree": "88261e4a5edaa8ee113dc7918ce8b2ca2903842f",
      "parents": [
        "3f518bf745cbd6007d8069100fb9cb09e960c872"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Feb 21 07:31:18 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 21 14:58:57 2012 -0500"
      },
      "message": "skb: Add skb_peek_next helper\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3f518bf745cbd6007d8069100fb9cb09e960c872",
      "tree": "debbe9e9340d46080f1b82e4149a2427545c4aef",
      "parents": [
        "4934b0329f7150dcb5f90506860e2db32274c755"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Feb 21 07:30:58 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 21 14:58:57 2012 -0500"
      },
      "message": "datagram: Add offset argument to __skb_recv_datagram\n\nThis one is only considered for MSG_PEEK flag and the value pointed by\nit specifies where to start peeking bytes from. If the offset happens to\npoint into the middle of the returned skb, the offset within this skb is\nput back to this very argument.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4031ae6edb92f7e0aade76357813211ae0520a5c",
      "tree": "1c8112798b23ce79e5e936e357b7c508a153aef9",
      "parents": [
        "8a0da21be84019d605af2c9a92b20a084db77de1"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Fri Jan 27 06:22:53 2012 +0000"
      },
      "committer": {
        "name": "Jeff Kirsher",
        "email": "jeffrey.t.kirsher@intel.com",
        "time": "Fri Feb 10 15:57:47 2012 -0800"
      },
      "message": "skbuff: Move rxhash and vlan_tci to consolidate holes in sk_buff\n\nThis change helps to reduce the overall size of the sk_buff by moving\nrxhash and vlan_tci so that the u16 values and u8 bitfields can be better\ncombined to create only one hole instead of multiple.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nTested-by: Stephen Ko \u003cstephen.s.ko@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\n"
    },
    {
      "commit": "9f42f126154786e6e76df513004800c8c633f020",
      "tree": "0f6247b0a7d804fbbace2d12429b7d80c3e7470e",
      "parents": [
        "eeca6688d6599c28bc449a45facb67d7f203be74"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "Ian.Campbell@citrix.com",
        "time": "Thu Jan 05 07:13:39 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 05 14:01:21 2012 -0500"
      },
      "message": "net: pack skb_shared_info more efficiently\n\nnr_frags can be 8 bits since 256 is plenty of fragments. This allows it to be\npacked with tx_flags.\n\nAlso by moving ip6_frag_id and dataref (both 4 bytes) next to each other we can\navoid a hole between ip6_frag_id and frag_list on 64 bit systems.\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d4dde5215779f4099730194ad30624fdba3d8b2",
      "tree": "5f0faa91f3359f3335f9063ebb1246db29c8289a",
      "parents": [
        "f87ce5b254d4eb5b5ec2bfcc78d714fa0e249288"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "Ian.Campbell@citrix.com",
        "time": "Thu Dec 22 23:39:14 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 23 16:51:18 2011 -0500"
      },
      "message": "net: only use a single page of slop in MAX_SKB_FRAGS\n\nIn order to accommodate a 64K buffer we need 64K/PAGE_SIZE plus one more page\nin order to allow for a buffer which does not start on a page boundary.\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "117632e64d2a5f464e491fe221d7169a3814a77b",
      "tree": "88f3a036305da54a62835d900553dda9bc846a8f",
      "parents": [
        "c2e4e25afcc8ae1835a6100089f1f9fd3a362430"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sat Dec 03 21:39:53 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 04 13:20:39 2011 -0500"
      },
      "message": "tcp: take care of misalignments\n\nWe discovered that TCP stack could retransmit misaligned skbs if a\nmalicious peer acknowledged sub MSS frame. This currently can happen\nonly if output interface is non SG enabled : If SG is enabled, tcp\nbuilds headless skbs (all payload is included in fragments), so the tcp\ntrimming process only removes parts of skb fragments, header stay\naligned.\n\nSome arches cant handle misalignments, so force a head reallocation and\nshrink headroom to MAX_TCP_HEADER.\n\nDont care about misaligments on x86 and PPC (or other arches setting\nNET_IP_ALIGN to 0)\n\nThis patch introduces __pskb_copy() which can specify the headroom of\nnew head, and pskb_copy() becomes a wrapper on top of __pskb_copy()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1f2149c1df50c8c712950872675f46e6e44629f0",
      "tree": "a33a556696e27611b6b38cdcbb6de9315f483bd4",
      "parents": [
        "84b405011166e663fe9ef56c29b1d76f59b35568"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 22 10:57:41 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 22 16:43:32 2011 -0500"
      },
      "message": "net: remove netdev_alloc_page and use __GFP_COLD\n\nGiven we dont use anymore the struct net_device *dev argument, and this\ninterface brings litle benefit, remove netdev_{alloc|free}_page(), to\ndebloat include/linux/skbuff.h a bit.\n\n(Some drivers used a mix of these interfaces and alloc_pages())\n\nWhen allocating a page given to device for DMA transfer (device to\nmemory), it makes sense to use a cold one (__GFP_COLD)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nCC: Dimitris Michailidis \u003cdm@chelsio.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e11c259f745889b55bc5596ca78271f2f5cf08d2",
      "tree": "5025f0bf9093e84d0643beb9097249c176dbbea7",
      "parents": [
        "8d26784cf0d04c1238e906efdd5de76439cb0a1e",
        "b4487c2d0edaf1332d7a9f11b5661044955ef5e2"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 17 13:11:43 2011 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 17 13:11:43 2011 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem\n\nConflicts:\n\tinclude/net/bluetooth/bluetooth.h\n"
    },
    {
      "commit": "34324dc2bf27c1773045fea63cb11f7e2a6ad2b9",
      "tree": "47cd1f4ea5590c405dc60aee70b49fb14f56859b",
      "parents": [
        "a861a8b233e9024303fb8e73e465e81ad7119d5a"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Nov 15 15:29:55 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 16 17:43:12 2011 -0500"
      },
      "message": "net: remove NETIF_F_NO_CSUM feature bit\n\nOnly distinct use is checking if NETIF_F_NOCACHE_COPY should be\nenabled by default. The check heuristics is altered a bit here,\nso it hits other people than before. The default shouldn\u0027t be\ntrusted for performance-critical cases anyway.\n\nFor all other uses NETIF_F_NO_CSUM is equivalent to NETIF_F_HW_CSUM.\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c8f44affb7244f2ac3e703cab13d55ede27621bb",
      "tree": "62e7aea2916a8d7cab825fe500670c5113854c0f",
      "parents": [
        "a59e2ecb859f2ab03bb2e230709f8039472ad2c3"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Nov 15 15:29:55 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 16 17:43:10 2011 -0500"
      },
      "message": "net: introduce and use netdev_features_t for device features sets\n\nv2:\tadd couple missing conversions in drivers\n\tsplit unexporting netdev_fix_features()\n\timplemented %pNF\n\tconvert sock::sk_route_(no?)caps\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b2b5ce9d1ccf1c45f8ac68e5d901112ab76ba199",
      "tree": "60839b87de74c617f417eaccbbac98c770c9fc90",
      "parents": [
        "c3e072f8a6c5625028531c40ec65f7e301531be2"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Nov 14 06:03:34 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 14 14:13:30 2011 -0500"
      },
      "message": "net: introduce build_skb()\n\nOne of the thing we discussed during netdev 2011 conference was the idea\nto change some network drivers to allocate/populate their skb at RX\ncompletion time, right before feeding the skb to network stack.\n\nIn old days, we allocated skbs when populating the RX ring.\n\nThis means bringing into cpu cache sk_buff and skb_shared_info cache\nlines (since we clear/initialize them), then \u0027queue\u0027 skb-\u003edata to NIC.\n\nBy the time NIC fills a frame in skb-\u003edata buffer and host can process\nit, cpu probably threw away the cache lines from its caches, because lot\nof things happened between the allocation and final use.\n\nSo the deal would be to allocate only the data buffer for the NIC to\npopulate its RX ring buffer. And use build_skb() at RX completion to\nattach a data buffer (now filled with an ethernet frame) to a new skb,\ninitialize the skb_shared_info portion, and give the hot skb to network\nstack.\n\nbuild_skb() is the function to allocate an skb, caller providing the\ndata buffer that should be attached to it. Drivers are expected to call\nskb_reserve() right after build_skb() to adjust skb-\u003edata to the\nEthernet frame (usually skipping NET_SKB_PAD and NET_IP_ALIGN, but some\ndrivers might add a hardware provided alignment)\n\nData provided to build_skb() MUST have been allocated by a prior\nkmalloc() call, with enough room to add SKB_DATA_ALIGN(sizeof(struct\nskb_shared_info)) bytes at the end of the data without corrupting\nincoming frame.\n\ndata \u003d kmalloc(NET_SKB_PAD + NET_IP_ALIGN + 1536 +\n               SKB_DATA_ALIGN(sizeof(struct skb_shared_info)),\n\t       GFP_ATOMIC);\n...\nskb \u003d build_skb(data);\nif (!skb) {\n\trecycle_data(data);\n} else {\n\tskb_reserve(skb, NET_SKB_PAD + NET_IP_ALIGN);\n\t...\n}\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Eilon Greenstein \u003ceilong@broadcom.com\u003e\nCC: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nCC: Tom Herbert \u003ctherbert@google.com\u003e\nCC: Jamal Hadi Salim \u003chadi@mojatatu.com\u003e\nCC: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCC: Thomas Graf \u003ctgraf@infradead.org\u003e\nCC: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCC: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6e3e939f3b1bf8534b32ad09ff199d88800835a0",
      "tree": "78ec0638efbade2fdb0bebb7bad71410ded2e6c6",
      "parents": [
        "4fdbff0770bea059621bc4906fb7c7f5879f3ae1"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Wed Nov 09 10:15:42 2011 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 09 16:01:02 2011 -0500"
      },
      "message": "net: add wireless TX status socket option\n\nThe 802.1X EAPOL handshake hostapd does requires\nknowing whether the frame was ack\u0027ed by the peer.\nCurrently, we fudge this pretty badly by not even\ntransmitting the frame as a normal data frame but\ninjecting it with radiotap and getting the status\nout of radiotap monitor as well. This is rather\ncomplex, confuses users (mon.wlan0 presence) and\ndoesn\u0027t work with all hardware.\n\nTo get rid of that hack, introduce a real wifi TX\nstatus option for data frame transmissions.\n\nThis works similar to the existing TX timestamping\nin that it reflects the SKB back to the socket\u0027s\nerror queue with a SCM_WIFI_STATUS cmsg that has\nan int indicating ACK status (0/1).\n\nSince it is possible that at some point we will\nwant to have TX timestamping and wifi status in a\nsingle errqueue SKB (there\u0027s little point in not\ndoing that), redefine SO_EE_ORIGIN_TIMESTAMPING\nto SO_EE_ORIGIN_TXSTATUS which can collect more\nthan just the timestamp; keep the old constant\nas an alias of course. Currently the internal APIs\ndon\u0027t make that possible, but it wouldn\u0027t be hard\nto split them up in a way that makes it possible.\n\nThanks to Neil Horman for helping me figure out\nthe functions that add the control messages.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f83347df57113e54e999aa2491be3f685c0c262d",
      "tree": "999374e037cfbdcd2838cced24377c2933514d29",
      "parents": [
        "23e049442b7b4f87f802470b4fd46a0e50b2fbdd"
      ],
      "author": {
        "name": "Marcos Paulo de Souza",
        "email": "marcos.mage@gmail.com",
        "time": "Mon Oct 31 15:11:45 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 01 00:55:48 2011 -0400"
      },
      "message": "include: linux: skbuf.h: Fix parameter documentation\n\nFixes parameter name of skb_frag_dmamap function to silence warning on\nmake htmldocs.\n\nSigned-off-by: Marcos Paulo de Souza \u003cmarcos.mage@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1805b2f04855f07afe3a71d620a68f483b0ed74f",
      "tree": "b823b90f37f5404fcaef70f785c70112ca74a329",
      "parents": [
        "78d81d15b74246c7cedf84894434890b33da3907",
        "f42af6c486aa5ca6ee62800cb45c5b252020509d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 24 18:18:09 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 24 18:18:09 2011 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of ra.kernel.org:/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "da92b194cc36b5dc1fbd85206aeeffd80bee0c39",
      "tree": "375ead604156d8a8afc5ecef8d76415e999ce903",
      "parents": [
        "f7ff19871bb4a3451e1ca2cf660bf633018cfbec"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Fri Oct 21 00:49:15 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 24 02:54:50 2011 -0400"
      },
      "message": "net: hold sock reference while processing tx timestamps\n\nThe pair of functions,\n\n * skb_clone_tx_timestamp()\n * skb_complete_tx_timestamp()\n\nwere designed to allow timestamping in PHY devices. The first\nfunction, called during the MAC driver\u0027s hard_xmit method, identifies\nPTP protocol packets, clones them, and gives them to the PHY device\ndriver. The PHY driver may hold onto the packet and deliver it at a\nlater time using the second function, which adds the packet to the\nsocket\u0027s error queue.\n\nAs pointed out by Johannes, nothing prevents the socket from\ndisappearing while the cloned packet is sitting in the PHY driver\nawaiting a timestamp. This patch fixes the issue by taking a reference\non the socket for each such packet. In addition, the comments\nregarding the usage of these function are expanded to highlight the\nrule that PHY drivers must use skb_complete_tx_timestamp() to release\nthe packet, in order to release the socket reference, too.\n\nThese functions first appeared in v2.6.36.\n\nReported-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nReviewed-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a8605c6063f785858c1bc431d0bfe66c41e71cfa",
      "tree": "42ce7ce9a1679f09b54353dd1ea05a6581abe754",
      "parents": [
        "6a39a16a5ac07a156de91cfb9422bde574e59fa6"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "Ian.Campbell@citrix.com",
        "time": "Wed Oct 19 23:01:49 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 21 02:52:53 2011 -0400"
      },
      "message": "net: add opaque struct around skb frag page\n\nI\u0027ve split this bit out of the skb frag destructor patch since it helps enforce\nthe use of the fragment API.\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "05bdd2f14351176d368e8ddc67993690a2d1bfb6",
      "tree": "06c00c0af56add8602fba296490b4c598418082f",
      "parents": [
        "20c4cb792de2b5839537a99a469f4529ef1047f5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Oct 20 17:45:43 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 20 17:45:43 2011 -0400"
      },
      "message": "net: constify skbuff and Qdisc elements\n\nPreliminary patch before tcp constification\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a0bec1cd8f7ac966f2885f7e56ec44df87bab738",
      "tree": "8c2c255b1a1d4b77ebc10e4bbb3835e7d7bf95ec",
      "parents": [
        "e049f28883126c689cf95859480d9ee4ab23b7fa"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "Ian.Campbell@citrix.com",
        "time": "Tue Oct 18 22:55:11 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 19 19:40:39 2011 -0400"
      },
      "message": "net: do not take an additional reference in skb_frag_set_page\n\nI audited all of the callers in the tree and only one of them (pktgen) expects\nit to do so. Taking this reference is pretty obviously confusing and error\nprone.\n\nIn particular I looked at the following commits which switched callers of\n(__)skb_frag_set_page to the skb paged fragment api:\n\n6a930b9f163d7e6d9ef692e05616c4ede65038ec cxgb3: convert to SKB paged frag API.\n5dc3e196ea21e833128d51eb5b788a070fea1f28 myri10ge: convert to SKB paged frag API.\n0e0634d20dd670a89af19af2a686a6cce943ac14 vmxnet3: convert to SKB paged frag API.\n86ee8130a46769f73f8f423f99dbf782a09f9233 virtionet: convert to SKB paged frag API.\n4a22c4c919c201c2a7f4ee09e672435a3072d875 sfc: convert to SKB paged frag API.\n18324d690d6a5028e3c174fc1921447aedead2b8 cassini: convert to SKB paged frag API.\nb061b39e3ae18ad75466258cf2116e18fa5bbd80 benet: convert to SKB paged frag API.\nb7b6a688d217936459ff5cf1087b2361db952509 bnx2: convert to SKB paged frag API.\n804cf14ea5ceca46554d5801e2817bba8116b7e5 net: xfrm: convert to SKB frag APIs\nea2ab69379a941c6f8884e290fdd28c93936a778 net: convert core to skb paged frag APIs\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3d153a7c8b23031df35e61377c0600a6c96a8b0b",
      "tree": "f5c7f622331728ba12f40c2ebb66666ce3d924fd",
      "parents": [
        "1e5c22cde3b85737921d3ec6ecf2c356e5b64ea7"
      ],
      "author": {
        "name": "Andy Fleming",
        "email": "afleming@freescale.com",
        "time": "Thu Oct 13 04:33:54 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 19 15:59:45 2011 -0400"
      },
      "message": "net: Allow skb_recycle_check to be done in stages\n\nskb_recycle_check resets the skb if it\u0027s eligible for recycling.\nHowever, there are times when a driver might want to optionally\nmanipulate the skb data with the skb before resetting the skb,\nbut after it has determined eligibility.  We do this by splitting the\neligibility check from the skb reset, creating two inline functions to\naccomplish that task.\n\nSigned-off-by: Andy Fleming \u003cafleming@freescale.com\u003e\nAcked-by: David Daney \u003cdavid.daney@cavium.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9e903e085262ffbf1fc44a17ac06058aca03524a",
      "tree": "4acefc97ba38c1733474d25c0b2053b56af97db1",
      "parents": [
        "dd767856a36e00b631d65ebc4bb81b19915532d6"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Oct 18 21:00:24 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 19 03:10:46 2011 -0400"
      },
      "message": "net: add skb frag size accessors\n\nTo ease skb-\u003etruesize sanitization, its better to be able to localize\nall references to skb frags size.\n\nDefine accessors : skb_frag_size() to fetch frag size, and\nskb_frag_size_{set|add|sub}() to manipulate it.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "87fb4b7b533073eeeaed0b6bf7c2328995f6c075",
      "tree": "be4b37f08d7fe2d018ae68bae4577b1b2bafd0fc",
      "parents": [
        "97ba0eb64ca690165f945a83e609102fcefa99cb"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Oct 13 07:28:54 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 13 16:05:07 2011 -0400"
      },
      "message": "net: more accurate skb truesize\n\nskb truesize currently accounts for sk_buff struct and part of skb head.\nkmalloc() roundings are also ignored.\n\nConsidering that skb_shared_info is larger than sk_buff, its time to\ntake it into account for better memory accounting.\n\nThis patch introduces SKB_TRUESIZE(X) macro to centralize various\nassumptions into a single place.\n\nAt skb alloc phase, we put skb_shared_info struct at the exact end of\nskb head, to allow a better use of memory (lowering number of\nreallocations), since kmalloc() gives us power-of-two memory blocks.\n\nUnless SLUB/SLUB debug is active, both skb-\u003ehead and skb_shared_info are\naligned to cache lines, as before.\n\nNote: This patch might trigger performance regressions because of\nmisconfigured protocol stacks, hitting per socket or global memory\nlimits that were previously not reached. But its a necessary step for a\nmore accurate memory accounting.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Andi Kleen \u003cak@linux.intel.com\u003e\nCC: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8decf868790b48a727d7e7ca164f2bcd3c1389c0",
      "tree": "b759a5f861f842af7ea76f9011b579d06e9d5508",
      "parents": [
        "3fc72370186be2f9d4d6ef06d99e1caa5d92c564",
        "d93dc5c4478c1fd5de85a3e8aece9aad7bbae044"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 22 03:23:13 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 22 03:23:13 2011 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of github.com:davem330/net\n\nConflicts:\n\tMAINTAINERS\n\tdrivers/net/Kconfig\n\tdrivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c\n\tdrivers/net/ethernet/broadcom/tg3.c\n\tdrivers/net/wireless/iwlwifi/iwl-pci.c\n\tdrivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c\n\tdrivers/net/wireless/rt2x00/rt2800usb.c\n\tdrivers/net/wireless/wl12xx/main.c\n"
    },
    {
      "commit": "48c830120f2a20b44220aa26feda9ed15f49eaab",
      "tree": "5a9bfdf7493cf53e59350b82d5c3c9017fe403a5",
      "parents": [
        "0542b69e2c57fc9668ce6a03155bea6e1f557901"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Wed Aug 31 08:03:29 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 15 14:49:44 2011 -0400"
      },
      "message": "net: copy userspace buffers on device forwarding\n\ndev_forward_skb loops an skb back into host networking\nstack which might hang on the memory indefinitely.\nIn particular, this can happen in macvtap in bridged mode.\nCopy the userspace fragments to avoid blocking the\nsender in that case.\n\nAs this patch makes skb_copy_ubufs extern now,\nI also added some documentation and made it clear\nthe SKBTX_DEV_ZEROCOPY flag automatically instead\nof doing it in all callers. This can be made into a separate\npatch if people feel it\u0027s worth it.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ea2ab69379a941c6f8884e290fdd28c93936a778",
      "tree": "c02aa9c5ed66b1640b54bb6b763d131b9419be29",
      "parents": [
        "15133fbbb91ae695f153fb48daa6a1a8af4a5032"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "Ian.Campbell@citrix.com",
        "time": "Mon Aug 22 23:44:58 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 24 17:52:11 2011 -0700"
      },
      "message": "net: convert core to skb paged frag APIs\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: \"Michał Mirosław\" \u003cmirq-linux@rere.qmqm.pl\u003e\nCc: netdev@vger.kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "131ea6675c761f655d43b808dd0fe83d15d5cdd3",
      "tree": "0d8cb6a3ea524f216d846f172c218fababead4a0",
      "parents": [
        "7ae9ed8d3221c9f7dd4bc2773ff58797487d5ed8"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "Ian.Campbell@citrix.com",
        "time": "Fri Aug 19 06:25:00 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 22 16:59:54 2011 -0700"
      },
      "message": "net: add APIs for manipulating skb page fragments.\n\nThe primary aim is to add skb_frag_(ref|unref) in order to remove the use of\nbare get/put_page on SKB pages fragments and to isolate users from subsequent\nchanges to the skb_frag_t data structure.\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: \"Michał Mirosław\" \u003cmirq-linux@rere.qmqm.pl\u003e\nCc: netdev@vger.kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4ca2462e94b3b0a2fdd3b777ff2bd9bcd82c6096",
      "tree": "462f96b65cf6ce7bf4e6aaca5beb011a6c1dfe80",
      "parents": [
        "ae1511bf769cafeae5ab61aaf9947a16a22cbd10"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Fri Aug 19 07:26:44 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 19 07:26:44 2011 -0700"
      },
      "message": "net: add the comment for skb-\u003el4_rxhash\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bdeab991918663aed38757904219e8398214334c",
      "tree": "bc6c02da7ed88e3e568677b4a35fb4e55de363de",
      "parents": [
        "792df22cd0499b4e662d4618b0008fdcfef8b04e"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Sun Aug 14 19:45:55 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 17 20:06:03 2011 -0700"
      },
      "message": "rps: Add flag to skb to indicate rxhash is based on L4 tuple\n\nThe l4_rxhash flag was added to the skb structure to indicate\nthat the rxhash value was computed over the 4 tuple for the\npacket which includes the port information in the encapsulated\ntransport packet.  This is used by the stack to preserve the\nrxhash value in __skb_rx_tunnel.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4915a0de43c3e9aef92005c1f94a8ff3a6cfced5",
      "tree": "8c387b4248593430418083c9ea4f2f7416abdd54",
      "parents": [
        "039f02ebd9c2f3f3cb95c00b763fb70870c9116e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Jul 11 20:08:34 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 11 20:08:34 2011 -0700"
      },
      "message": "net: introduce __netdev_alloc_skb_ip_align\n\nRX rings should use GFP_KERNEL allocations if possible, add\n__netdev_alloc_skb_ip_align() helper to ease this.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d84e0bd7971eb8357c700151ee4e8e4101ee65fa",
      "tree": "e4334ddf51372d979fafbc1543f35e9163a61488",
      "parents": [
        "42c8b11e284fe3186e27555d1adb7d4b77398e1b"
      ],
      "author": {
        "name": "Daniel Baluta",
        "email": "dbaluta@ixiacom.com",
        "time": "Sun Jul 10 07:04:04 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 10 07:04:04 2011 -0700"
      },
      "message": "skbuff: update struct sk_buff members comments\n\nRearrange struct sk_buff members comments to follow their\ndefinition order. Also, add missing comments for ooo_okay\nand dropcount members.\n\nSigned-off-by: Daniel Baluta \u003cdbaluta@ixiacom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a6686f2f382b13f8a7253401a66690c3633b6a74",
      "tree": "36a9a4546163a3c5b9a9ab3daa3b6bbe34af55aa",
      "parents": [
        "1cdebb423202e255366a321814fc6df079802a0d"
      ],
      "author": {
        "name": "Shirley Ma",
        "email": "mashirle@us.ibm.com",
        "time": "Wed Jul 06 12:22:12 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 07 04:41:13 2011 -0700"
      },
      "message": "skbuff: skb supports zero-copy buffers\n\nThis patch adds userspace buffers support in skb shared info. A new\nstruct skb_ubuf_info is needed to maintain the userspace buffers\nargument and index, a callback is used to notify userspace to release\nthe buffers once lower device has done DMA (Last reference to that skb\nhas gone).\n\nIf there is any userspace apps to reference these userspace buffers,\nthen these userspaces buffers will be copied into kernel. This way we\ncan prevent userspace apps from holding these userspace buffers too long.\n\nUse destructor_arg to point to the userspace buffer info; a new tx flags\nSKBTX_DEV_ZEROCOPY is added for zero-copy buffer check.\n\nSigned-off-by: Shirley Ma \u003cxma@...ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9f6ec8d697c08963d83880ccd35c13c5ace716ea",
      "tree": "ad8d93cf6fcdd09b86ade09f5fcbbc66cdb1cca2",
      "parents": [
        "4aa3a715551c93eda32d79bd52042ce500bd5383",
        "56299378726d5f2ba8d3c8cbbd13cb280ba45e4f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 20 22:29:08 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 20 22:29:08 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/wireless/iwlwifi/iwl-agn-rxon.c\n\tdrivers/net/wireless/rtlwifi/pci.c\n\tnet/netfilter/ipvs/ip_vs_core.c\n"
    }
  ],
  "next": "4ff75b7cf3b06efb72a50e26008d09b259b1231b"
}
