)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "4ff75b7cf3b06efb72a50e26008d09b259b1231b",
      "tree": "f82bd4ee7ff91bbf66de846a4f601c26b549a3f9",
      "parents": [
        "fd112f2e15ba85d387de446a81aeb11e46ecc55d"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Sun Jun 19 03:31:39 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 19 16:35:30 2011 -0700"
      },
      "message": "net: correct comment on where to place transmit time stamp hook.\n\nThe comment for the skb_tx_timestamp() function suggests calling it just\nafter a buffer is released to the hardware for transmission. However,\nfor drivers that free the buffer in an ISR, this produces a race between\nthe time stamp code and the ISR. This commit changes the comment to advise\nplacing the call just before handing the buffer over to the hardware.\n\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0b5c9db1b11d3175bb42b80663a9f072f801edf5",
      "tree": "555113c578a8c4372902512514f323128c494278",
      "parents": [
        "06866bf5c5ad8989119a145fdb54a9fbcafa702d"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Fri Jun 10 06:56:58 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 11 16:15:50 2011 -0700"
      },
      "message": "vlan: Fix the ingress VLAN_FLAG_REORDER_HDR check\n\nTesting of VLAN_FLAG_REORDER_HDR does not belong in vlan_untag\nbut rather in vlan_do_receive.  Otherwise the vlan header\nwill not be properly put on the packet in the case of\nvlan header accelleration.\n\nAs we remove the check from vlan_check_reorder_header\nrename it vlan_reorder_header to keep the naming clean.\n\nFix up the skb-\u003epkt_type early so we don\u0027t look at the packet\nafter adding the vlan tag, which guarantees we don\u0027t goof\nand look at the wrong field.\n\nUse a simple if statement instead of a complicated switch\nstatement to decided that we need to increment rx_stats\nfor a multicast packet.\n\nHopefully at somepoint we will just declare the case where\nVLAN_FLAG_REORDER_HDR is cleared as unsupported and remove\nthe code.  Until then this keeps it working correctly.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nAcked-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "53ee7569ce8beb3fd3fc0817116c29298d72353f",
      "tree": "f3dcce10508c2126347e40b468fd6d3c3cc7006a",
      "parents": [
        "4d9dec4db2efbd7edb549bd02373995b67496983",
        "1b6e2ceb4745b5838cb94463131d19dbea6cf0e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 08:39:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 08:39:24 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (27 commits)\n  bnx2x: allow device properly initialize after hotplug\n  bnx2x: fix DMAE timeout according to hw specifications\n  bnx2x: properly handle CFC DEL in cnic flow\n  bnx2x: call dev_kfree_skb_any instead of dev_kfree_skb\n  net: filter: move forward declarations to avoid compile warnings\n  pktgen: refactor pg_init() code\n  pktgen: use vzalloc_node() instead of vmalloc_node() + memset()\n  net: skb_trim explicitely check the linearity instead of data_len\n  ipv4: Give backtrace in ip_rt_bug().\n  net: avoid synchronize_rcu() in dev_deactivate_many\n  net: remove synchronize_net() from netdev_set_master()\n  rtnetlink: ignore NETDEV_RELEASE and NETDEV_JOIN event\n  net: rename NETDEV_BONDING_DESLAVE to NETDEV_RELEASE\n  bridge: call NETDEV_JOIN notifiers when add a slave\n  netpoll: disable netpoll when enslave a device\n  macvlan: Forward unicast frames in bridge mode to lowerdev\n  net: Remove linux/prefetch.h include from linux/skbuff.h\n  ipv4: Include linux/prefetch.h in fib_trie.c\n  netlabel: Remove prefetches from list handlers.\n  drivers/net: add prefetch header for prefetch users\n  ...\n\nFixed up prefetch parts: removed a few duplicate prefetch.h includes,\nfixed the location of the igb prefetch.h, took my version of the\nskbuff.h code without the extra parentheses etc.\n"
    },
    {
      "commit": "a1e4891fd48d298870b704c6eb48cba0da5ed6b1",
      "tree": "96fa29fd0c3803f1d1803e1b979c6ac8345fff5a",
      "parents": [
        "70c71606190e9115e5f8363bfcd164c582eb314a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 22 16:51:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 22 21:43:41 2011 -0700"
      },
      "message": "Remove prefetch() from \u003clinux/skbuff.h\u003e and \"netlabel_addrlist.h\"\n\nCommit e66eed651fd1 (\"list: remove prefetching from regular list\niterators\") removed the include of prefetch.h from list.h.  The skbuff\nlist traversal still had them.\n\nQuoth David Miller:\n  \"Please just remove the prefetches.\n\n  Those are modelled after list.h as I intend to eventually convert\n  SKB list handling to \"struct list_head\" but we\u0027re not there yet.\n\n  Therefore if we kill prefetches from list.h we should kill it from\n  these things in skbuff.h too.\"\n\nRequested-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4264f27e83968ddfe3f0cfe7a33adfb320e1e42",
      "tree": "384806dfa9a6afe9e11d60bb82af2151323ec7be",
      "parents": [
        "c378a9c019cf5e017d1ed24954b54fae7bebd2bc"
      ],
      "author": {
        "name": "Emmanuel Grumbach",
        "email": "emmanuel.grumbach@intel.com",
        "time": "Sat May 21 19:46:09 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 22 21:01:21 2011 -0400"
      },
      "message": "net: skb_trim explicitely check the linearity instead of data_len\n\nThe purpose of the check on data_len is to check linearity, so use the inline\nhelper for this. No overhead and more explicit.\n\nSigned-off-by: Emmanuel Grumbach \u003cemmanuel.grumbach@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "67f11f4deda0818640decb19a28c537dbe5d429e",
      "tree": "c142b3410d1e6813fe87ba08e8c51e67df619487",
      "parents": [
        "120a3d5c7c1f37752e7956d296a4f031f38cb217"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 22 20:54:11 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 22 20:54:11 2011 -0400"
      },
      "message": "net: Remove linux/prefetch.h include from linux/skbuff.h\n\nNo longer needed.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0fcbe742eaac14bd5032b369c09e9d94be9058ad",
      "tree": "c1a113525e4bb404065236f1c83e7c7952df5bb9",
      "parents": [
        "69c867c90c7fe0773d9aa4e8bbf777f574be13d2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 22 20:35:29 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 22 20:35:29 2011 -0400"
      },
      "message": "net: Remove prefetches from SKB list handlers.\n\nNoticed by Linus.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "34ea646c9f8c18fd2e4332ff3b2b509f878c56f1",
      "tree": "45aad71cee86ae3ca5cf3423aedcef24bbee6253",
      "parents": [
        "9ce6e0be0626a5de2aca8b769a4aa57086257156"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Sun May 22 18:55:10 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 22 11:26:02 2011 -0700"
      },
      "message": "net: add missing prefetch.h include\n\nFixes build errors on s390 and probably other archs as well:\n\n  In file included from net/ipv4/ip_forward.c:32:0:\n  include/net/udp.h: In function \u0027udp_csum_outgoing\u0027:\n  include/net/udp.h:141:2: error: implicit declaration of function \u0027prefetch\u0027\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a14842f5a3c0e88a1e59fac5c3025db39721f74",
      "tree": "4d0832c4c9ced2503e2d899eb56952f87511d4ab",
      "parents": [
        "b678027cb77b079bc8e5b94172995d173bdb494b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Apr 20 09:27:32 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 27 23:05:08 2011 -0700"
      },
      "message": "net: filter: Just In Time compiler for x86-64\n\nIn order to speedup packet filtering, here is an implementation of a\nJIT compiler for x86_64\n\nIt is disabled by default, and must be enabled by the admin.\n\necho 1 \u003e/proc/sys/net/core/bpf_jit_enable\n\nIt uses module_alloc() and module_free() to get memory in the 2GB text\nkernel range since we call helpers functions from the generated code.\n\nEAX : BPF A accumulator\nEBX : BPF X accumulator\nRDI : pointer to skb   (first argument given to JIT function)\nRBP : frame pointer (even if CONFIG_FRAME_POINTER\u003dn)\nr9d : skb-\u003elen - skb-\u003edata_len (headlen)\nr8  : skb-\u003edata\n\nTo get a trace of generated code, use :\n\necho 2 \u003e/proc/sys/net/core/bpf_jit_enable\n\nExample of generated code :\n\n# tcpdump -p -n -s 0 -i eth1 host 192.168.20.0/24\n\nflen\u003d18 proglen\u003d147 pass\u003d3 image\u003dffffffffa00b5000\nJIT code: ffffffffa00b5000: 55 48 89 e5 48 83 ec 60 48 89 5d f8 44 8b 4f 60\nJIT code: ffffffffa00b5010: 44 2b 4f 64 4c 8b 87 b8 00 00 00 be 0c 00 00 00\nJIT code: ffffffffa00b5020: e8 24 7b f7 e0 3d 00 08 00 00 75 28 be 1a 00 00\nJIT code: ffffffffa00b5030: 00 e8 fe 7a f7 e0 24 00 3d 00 14 a8 c0 74 49 be\nJIT code: ffffffffa00b5040: 1e 00 00 00 e8 eb 7a f7 e0 24 00 3d 00 14 a8 c0\nJIT code: ffffffffa00b5050: 74 36 eb 3b 3d 06 08 00 00 74 07 3d 35 80 00 00\nJIT code: ffffffffa00b5060: 75 2d be 1c 00 00 00 e8 c8 7a f7 e0 24 00 3d 00\nJIT code: ffffffffa00b5070: 14 a8 c0 74 13 be 26 00 00 00 e8 b5 7a f7 e0 24\nJIT code: ffffffffa00b5080: 00 3d 00 14 a8 c0 75 07 b8 ff ff 00 00 eb 02 31\nJIT code: ffffffffa00b5090: c0 c9 c3\n\nBPF program is 144 bytes long, so native program is almost same size ;)\n\n(000) ldh      [12]\n(001) jeq      #0x800           jt 2    jf 8\n(002) ld       [26]\n(003) and      #0xffffff00\n(004) jeq      #0xc0a81400      jt 16   jf 5\n(005) ld       [30]\n(006) and      #0xffffff00\n(007) jeq      #0xc0a81400      jt 16   jf 17\n(008) jeq      #0x806           jt 10   jf 9\n(009) jeq      #0x8035          jt 10   jf 17\n(010) ld       [28]\n(011) and      #0xffffff00\n(012) jeq      #0xc0a81400      jt 16   jf 13\n(013) ld       [38]\n(014) and      #0xffffff00\n(015) jeq      #0xc0a81400      jt 16   jf 17\n(016) ret      #65535\n(017) ret      #0\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nCc: Hagen Paul Pfeifer \u003chagen@jauu.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "42933bac11e811f02200c944d8562a15f8ec4ff0",
      "tree": "fcdd9afe56eb0e746565ddd1f92f22d36678b843",
      "parents": [
        "2b9accbee563f535046ff2cd382d0acaa92e130c",
        "25985edcedea6396277003854657b5f3cb31a628"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6\n\n* \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6:\n  Fix common misspellings\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "eec009548e98f6b6d514ff5bb8a8627b8dd17a49",
      "tree": "bdce6d53b5a664234bea786aea9c0767377b04bd",
      "parents": [
        "0ce790e7d736cedc563e1fb4e998babf5a4dbc3d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 29 23:34:08 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 29 23:34:08 2011 -0700"
      },
      "message": "net: Fix warnings caused by MAX_SKB_FRAGS change.\n\nAfter commit a715dea3c8e9ef2771c534e05ee1d36f65987e64 (\"net: Always\nallocate at least 16 skb frags regardless of page size\"), the value\nof MAX_SKB_FRAGS can now take on either an \"unsigned long\" or an\n\"int\" value.\n\nThis causes warnings like:\n\nnet/packet/af_packet.c: In function ‘tpacket_fill_skb’:\nnet/packet/af_packet.c:948: warning: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘int’\n\nFix by forcing the constant to be unsigned long, otherwise we have\na situation where the type of a system wide constant is variable.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a715dea3c8e9ef2771c534e05ee1d36f65987e64",
      "tree": "7734586473abed25f7ec4b8423adbdba3d829a61",
      "parents": [
        "4910ac6c526d2868adcb5893e0c428473de862b5"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Sun Mar 27 14:57:26 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 28 22:26:32 2011 -0700"
      },
      "message": "net: Always allocate at least 16 skb frags regardless of page size\n\nWhen analysing performance of the cxgb3 on a ppc64 box I noticed that\nwe weren\u0027t doing much GRO merging. It turns out we are limited by the\nnumber of SKB frags:\n\n#define MAX_SKB_FRAGS (65536/PAGE_SIZE + 2)\n\nWith a 4kB page size we have 18 frags, but with a 64kB page size we\nonly have 3 frags.\n\nI ran a single stream TCP bandwidth test to compare the performance of\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8a4eb5734e8d1dc60a8c28576bbbdfdcc643626d",
      "tree": "ed4cd2f9a2a04a30994a8f8964a81834c895c0c9",
      "parents": [
        "2d7011ca79f1a8792e04d131b8ea21db179ab917"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Sat Mar 12 03:14:39 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 16 12:53:54 2011 -0700"
      },
      "message": "net: introduce rx_handler results and logic around that\n\nThis patch allows rx_handlers to better signalize what to do next to\nit\u0027s caller. That makes skb-\u003edeliver_no_wcard no longer needed.\n\nkernel-doc for rx_handler_result is taken from Nicolas\u0027 patch.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nReviewed-by: Nicolas de Pesloüan \u003cnicolas.2p.debian@free.fr\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "04ed3e741d0f133e02bed7fa5c98edba128f90e7",
      "tree": "3dde4ca8306e98536faa69bccf0e47a2549c088f",
      "parents": [
        "57422dc530115e427dff464cc0a32bcd0efb5008"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Mon Jan 24 15:32:47 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 24 15:32:47 2011 -0800"
      },
      "message": "net: change netdev-\u003efeatures to u32\n\nQuoting Ben Hutchings: we presumably won\u0027t be defining features that\ncan only be enabled on 64-bit architectures.\n\nOccurences found by `grep -r` on net/, drivers/net, include/\n\n[ Move features and vlan_features next to each other in\n  struct netdev, as per Eric Dumazet\u0027s suggestion -DaveM ]\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": "686a2955531312dab77bb6f1e8602787d85e47d8",
      "tree": "4209f28a17bbd4ba124484d2e57a1f52f22734cd",
      "parents": [
        "212bfb9e94e86b40684076f642b089b0565455d2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 20 22:47:32 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 20 22:47:32 2011 -0800"
      },
      "message": "net: Add safe reverse SKB queue walkers.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2fc72c7b84002ffb3c66918e2a7b0ee607d8b5aa",
      "tree": "df97dadb97bf3c9b46b7c557d8ac14b9ab1c17b3",
      "parents": [
        "2f46e07995734a363608e974a82fd05d5b610750"
      ],
      "author": {
        "name": "KOVACS Krisztian",
        "email": "hidden@balabit.hu",
        "time": "Wed Jan 12 20:25:08 2011 +0100"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Wed Jan 12 20:25:08 2011 +0100"
      },
      "message": "netfilter: fix compilation when conntrack is disabled but tproxy is enabled\n\nThe IPv6 tproxy patches split IPv6 defragmentation off of conntrack, but\nfailed to update the #ifdef stanzas guarding the defragmentation related\nfields and code in skbuff and conntrack related code in nf_defrag_ipv6.c.\n\nThis patch adds the required #ifdefs so that IPv6 tproxy can truly be used\nwithout connection tracking.\n\nOriginal report:\nhttp://marc.info/?l\u003dlinux-netdev\u0026m\u003d129010118516341\u0026w\u003d2\n\nReported-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: KOVACS Krisztian \u003chidden@balabit.hu\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "04fb451eff978ca059399eab83d5594b073caf6f",
      "tree": "6ef0da9466839c475ab939d55504d57c62cd48c6",
      "parents": [
        "bc2ce894e113ed95b92541134b002fdc641e8080"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Dec 14 15:24:08 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 16 14:43:14 2010 -0800"
      },
      "message": "net: Introduce skb_checksum_start_offset()\n\nIntroduce skb_checksum_start_offset() to replace repetitive calculation.\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": "a3d22a68d752ccc1a01bb0a64dd70b7a98bf9e23",
      "tree": "e51c231b29d8e285acb8196b6b893c718febd2b1",
      "parents": [
        "d33e455337ea2c71d09d7f4367d6ad6dd32b6965"
      ],
      "author": {
        "name": "Vladislav Zolotarov",
        "email": "vladz@broadcom.com",
        "time": "Mon Dec 13 06:27:10 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 16 13:15:53 2010 -0800"
      },
      "message": "bnx2x: Take the distribution range definition out of skb_tx_hash()\n\nMove the calcualation of the Tx hash for a given hash range into a separate\nfunction and define the skb_tx_hash(), which calculates a Tx hash for a\n[0; dev-\u003ereal_num_tx_queues - 1] hash values range, using this\nfunction (__skb_tx_hash()).\n\nSigned-off-by: Vladislav Zolotarov \u003cvladz@broadcom.com\u003e\nSigned-off-by: Eilon Greenstein \u003ceilong@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3853b5841c01a3f492fe137afaad9c209e5162c6",
      "tree": "6781db9ec592d9798129cd4715ce00dc9007b78c",
      "parents": [
        "22f4fbd9bd283ef85126e511171932a4af703776"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Sun Nov 21 13:17:29 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 24 11:44:19 2010 -0800"
      },
      "message": "xps: Improvements in TX queue selection\n\nIn dev_pick_tx, don\u0027t do work in calculating queue\nindex or setting\nthe index in the sock unless the device has more than one queue.  This\nallows the sock to be set only with a queue index of a multi-queue\ndevice which is desirable if device are stacked like in a tunnel.\n\nWe also allow the mapping of a socket to queue to be changed.  To\nmaintain in order packet transmission a flag (ooo_okay) has been\nadded to the sk_buff structure.  If a transport layer sets this flag\non a packet, the transmit queue can be changed for the socket.\nPresumably, the transport would set this if there was no possbility\nof creating OOO packets (for instance, there are no packets in flight\nfor the socket).  This patch includes the modification in TCP output\nfor setting this flag.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27b75c95f10d249574d9c4cb9dab878107faede8",
      "tree": "466656d86aaa395951e12b50903e730203c5f86f",
      "parents": [
        "e6484930d7c73d324bccda7d43d131088da697b9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 15 05:44:11 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 20 03:02:23 2010 -0700"
      },
      "message": "net: avoid RCU for NOCACHE dst\n\nThere is no point using RCU for dst we allocate for a very short time\n(used once).\n\nChange dst_release() to take DST_NOCACHE into account, but also change\nskb_dst_set_noref() to force a refcount increment for such dst.\n\nThis is a _huge_ gain, because we dont waste memory to store xx thousand\nof dsts. Instead of queueing them to RCU, we can free them instantly.\n\nCPU caches can stay hot, re-using same memory blocks to hold temporary\ndsts.\n\nNote : remove unneeded smp_mb__before_atomic_dec(); in dst_release(),\nsince atomic_dec_return() implies a full memory barrier.\n\nStress test, 160.000.000 udp frames sent, IP route cache disabled\n(DDOS).\n\nBefore:\n\nreal    0m38.091s\nuser    0m13.189s\nsys     7m53.018s\n\nAfter:\n\nreal\t0m29.946s\nuser\t0m12.157s\nsys\t7m40.605s\n\nFor reference, if IP route cache was enabled :\n\nreal\t0m32.030s\nuser\t0m10.521s\nsys\t8m15.243s\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "564824b0c52c34692d804bb6ea214451615b0b50",
      "tree": "d836fa51848026df74e2bec2b634f1fcf3c6d02f",
      "parents": [
        "6f0333b8fde44b8c04a53b2461504f0e8f1cebe6"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 11 19:05:25 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Oct 16 11:13:19 2010 -0700"
      },
      "message": "net: allocate skbs on local node\n\ncommit b30973f877 (node-aware skb allocation) spread a wrong habit of\nallocating net drivers skbs on a given memory node : The one closest to\nthe NIC hardware. This is wrong because as soon as we try to scale\nnetwork stack, we need to use many cpus to handle traffic and hit\nslub/slab management on cross-node allocations/frees when these cpus\nhave to alloc/free skbs bound to a central node.\n\nskb allocated in RX path are ephemeral, they have a very short\nlifetime : Extra cost to maintain NUMA affinity is too expensive. What\nappeared as a nice idea four years ago is in fact a bad one.\n\nIn 2010, NIC hardwares are multiqueue, or we use RPS to spread the load,\nand two 10Gb NIC might deliver more than 28 million packets per second,\nneeding all the available cpus.\n\nCost of cross-node handling in network and vm stacks outperforms the\nsmall benefit hardware had when doing its DMA transfert in its \u0027local\u0027\nmemory node at RX time. Even trying to differentiate the two allocations\ndone for one skb (the sk_buff on local node, the data part on NIC\nhardware node) is not enough to bring good performance.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cb4dfe562cac6fcb544df752e40c1d78000d0712",
      "tree": "a256abb0ecbfb4c1909563274ee9e7d0138b1b16",
      "parents": [
        "c5256c51232d8312755e8de2b514c426b19b101a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Sep 23 05:06:54 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 26 18:31:13 2010 -0700"
      },
      "message": "net: skb_frag_t can be smaller on small arches\n\nOn 32bit arches, if PAGE_SIZE is smaller than 65536, we can use 16bit\noffset and size fields. This patch saves 72 bytes per skb on i386, or\n128 bytes after rounding.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a02cec2155fbea457eca8881870fd2de1a4c4c76",
      "tree": "cfbfc4b32bfe10f9cd803d46c31607d13f1858f5",
      "parents": [
        "6a08d194ee40806e0ccd5f36ed768e64cbfc979f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 22 20:43:57 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 23 14:33:39 2010 -0700"
      },
      "message": "net: return operator cleanup\n\nChange \"return (EXPR);\" to \"return EXPR;\"\n\nreturn is not a function, parentheses are not required.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bc8acf2c8c3e43fcc192762a9f964b3e9a17748b",
      "tree": "e3a91392771a22390e59c24fcb7bad3045ce17d1",
      "parents": [
        "7162f6691e9d39d8d866574687cddb3f1ec65d72"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Sep 02 13:07:41 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 02 19:06:22 2010 -0700"
      },
      "message": "drivers/net: avoid some skb-\u003eip_summed initializations\n\nfresh skbs have ip_summed set to CHECKSUM_NONE (0)\n\nWe can avoid setting again skb-\u003eip_summed to CHECKSUM_NONE in drivers.\n\nIntroduce skb_checksum_none_assert() helper so that we keep this\nassertion documented in driver sources.\n\nChange most occurrences of :\n\nskb-\u003eip_summed \u003d CHECKSUM_NONE;\n\nby :\n\nskb_checksum_none_assert(skb);\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "21dc330157454046dd7c494961277d76e1c957fe",
      "tree": "4f030efa8d82f7eb9676acd4cfc74921a6d29972",
      "parents": [
        "2d4833aae65589ba4317dd325fe20c8b25c14173"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 23 00:13:46 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 23 00:13:46 2010 -0700"
      },
      "message": "net: Rename skb_has_frags to skb_has_frag_list\n\nSKBs can be \"fragmented\" in two ways, via a page array (called\nskb_shinfo(skb)-\u003efrags[]) and via a list of SKBs (called\nskb_shinfo(skb)-\u003efrag_list).\n\nSince skb_has_frags() tests the latter, it\u0027s name is confusing\nsince it sounds more like it\u0027s testing the former.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2244d07bfa2097cb00600da91c715a8aa547917e",
      "tree": "44d67d9ffba3697fffeb05c13e88aa76ebc3fd4a",
      "parents": [
        "4d5870ec103e6569851b9710f0093f072b08439a"
      ],
      "author": {
        "name": "Oliver Hartkopp",
        "email": "socketcan@hartkopp.net",
        "time": "Tue Aug 17 08:59:14 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 19 00:08:30 2010 -0700"
      },
      "message": "net: simplify flags for tx timestamping\n\nThis patch removes the abstraction introduced by the union skb_shared_tx in\nthe shared skb data.\n\nThe access of the different union elements at several places led to some\nconfusion about accessing the shared tx_flags e.g. in skb_orphan_try().\n\n    http://marc.info/?l\u003dlinux-netdev\u0026m\u003d128084897415886\u0026w\u003d2\n\nSigned-off-by: Oliver Hartkopp \u003csocketcan@hartkopp.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bfb564e7391340638afe4ad67744a8f3858e7566",
      "tree": "7f079d9c3f020d52efb555db414476c463584967",
      "parents": [
        "6891dd25d3f82e50979b27fde1980aa96320b975"
      ],
      "author": {
        "name": "Krishna Kumar",
        "email": "krkumar2@in.ibm.com",
        "time": "Wed Aug 04 06:15:52 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 16 21:06:24 2010 -0700"
      },
      "message": "core: Factor out flow calculation from get_rps_cpu\n\nFactor out flow calculation code from get_rps_cpu, since other\nfunctions can use the same code.\n\nRevisions:\n\nv2 (Ben): Separate flow calcuation out and use in select queue.\nv3 (Arnd): Don\u0027t re-implement MIN.\nv4 (Changli): skb-\u003edata points to ethernet header in macvtap, and\n\tmake a fast path. Tested macvtap with this patch.\nv5 (Changli):\n\t- Cache skb-\u003erxhash in skb_get_rxhash\n\t- macvtap may not have pow(2) queues, so change code for\n\t  queue selection.\n    (Arnd):\n\t- Use first available queue if all fails.\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f9599ce11192f24dbb0f4fdb70121a05edc58342",
      "tree": "12da3fa1947471845ac4277cc030e81fbfd78483",
      "parents": [
        "36d12690a2e9bcacae5a2a7e0fb6345a3caad625"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Wed Aug 04 04:43:44 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 04 21:53:14 2010 -0700"
      },
      "message": "sk_buff: introduce pskb_network_may_pull()\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cff0d6e6edac7672b3f915bb4fb59f279243b7f9",
      "tree": "a12b08344380a9f02c9d043b176b82e921266d6e",
      "parents": [
        "3578b0c8abc7bdb4f02152ce5db7e09d484c6866"
      ],
      "author": {
        "name": "Oliver Hartkopp",
        "email": "socketcan@hartkopp.net",
        "time": "Tue Aug 03 00:31:48 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 03 00:31:48 2010 -0700"
      },
      "message": "can-raw: Fix skb_orphan_try handling\n\nCommit fc6055a5ba31e2c14e36e8939f9bf2b6d586a7f5 (net: Introduce\nskb_orphan_try()) allows an early orphan of the skb and takes care on\ntx timestamping, which needs the sk-reference in the skb on driver level.\nSo does the can-raw socket, which has not been taken into account here.\n\nThe patch below adds a \u0027prevent_sk_orphan\u0027 bit in the skb tx shared info,\nwhich fixes the problem discovered by Matthias Fuchs here:\n\n      http://marc.info/?t\u003d128030411900003\u0026r\u003d1\u0026w\u003d2\n\nEven if it\u0027s not a primary tx timestamp topic it fits well into some skb\nshared tx context. Or should be find a different place for the information to\nprotect the sk reference until it reaches the driver level?\n\nSigned-off-by: Oliver Hartkopp \u003csocketcan@hartkopp.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fed66381d65a35198639f564365e61a7f256bf79",
      "tree": "e4d4c83f135f58c32a85454e28e33407711f7718",
      "parents": [
        "c1f79426e2df5ef96fe3e76de6c7606d15bf390b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jul 22 19:09:08 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 24 21:05:57 2010 -0700"
      },
      "message": "net: pskb_expand_head() optimization\n\nMove frags[] at the end of struct skb_shared_info, and make\npskb_expand_head() copy only the used part of it instead of whole array.\n\nThis should avoid kmemcheck warnings and speedup pskb_expand_head() as\nwell, avoiding a lot of cache misses.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1f19b51d1d87f3e3bb7e6648f43f7d57ed2da6b",
      "tree": "d9525359409e3493b48e8676717cc11ed69b640a",
      "parents": [
        "15f0127d1d189fda3294b7823e3e654afca54055"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Sat Jul 17 08:49:36 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 18 19:15:26 2010 -0700"
      },
      "message": "net: support time stamping in phy devices.\n\nThis patch adds a new networking option to allow hardware time stamps\nfrom PHY devices. When enabled, likely candidates among incoming and\noutgoing network packets are offered to the PHY driver for possible\ntime stamping. When accepted by the PHY driver, incoming packets are\ndeferred for later delivery by the driver.\n\nThe patch also adds phylib driver methods for the SIOCSHWTSTAMP ioctl\nand callbacks for transmit and receive time stamping. Drivers may\noptionally implement these functions.\n\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4507a71507d4ff37e9a499c4241b7701ed1feab4",
      "tree": "775ff8a11852f37ebc78363cf41729221cd92718",
      "parents": [
        "ad1afb00393915a51c21b1ae8704562bf036855f"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Sat Jul 17 08:48:28 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 18 19:15:25 2010 -0700"
      },
      "message": "net: add driver hook for tx time stamping.\n\nThis patch adds a hook for transmit time stamps. The transmit hook\nallows a software fallback for transmit time stamps, for MACs\nlacking time stamping hardware. Using the hook will still require\nadding an inline function call to each MAC driver.\n\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5933dd2f028cdcbb4b3169dca594324704ba10ae",
      "tree": "c49d33589cf1ee2047ed4aa00f700e7ddb090447",
      "parents": [
        "a95d8c88bea0c93505e1d143d075f112be2b25e3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 15 18:16:43 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 15 18:16:43 2010 -0700"
      },
      "message": "net: NET_SKB_PAD should depend on L1_CACHE_BYTES\n\nIn old kernels, NET_SKB_PAD was defined to 16.\n\nThen commit d6301d3dd1c2 (net: Increase default NET_SKB_PAD to 32), and\ncommit 18e8c134f4e9 (net: Increase NET_SKB_PAD to 64 bytes) increased it\nto 64.\n\nWhile first patch was governed by network stack needs, second was more\ndriven by performance issues on current hardware. Real intent was to\nalign data on a cache line boundary.\n\nSo use max(32, L1_CACHE_BYTES) instead of 64, to be more generic.\n\nRemove microblaze and powerpc own NET_SKB_PAD definitions.\n\nThanks to Alexander Duyck and David Miller for their comments.\n\nSuggested-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62522d36d74a843e78d17f2dffc90468c6762803",
      "tree": "d9d21de6724425c1b0ba12991e0865556aeda6b4",
      "parents": [
        "a71fba97295db924c0b90266e9833e5059fead24",
        "e79aa8671033535c2e9ffc0a68010ae49ed5734c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 11 13:32:31 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 11 13:32:31 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "597a264b1a9c7e36d1728f677c66c5c1f7e3b837",
      "tree": "22db16f0a7b54ece127e127e152e9172456d9e1c",
      "parents": [
        "00d9d6a185de89edc0649ca4ead58f0283dfcbac"
      ],
      "author": {
        "name": "John Fastabend",
        "email": "john.r.fastabend@intel.com",
        "time": "Thu Jun 03 09:30:11 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 10 22:23:34 2010 -0700"
      },
      "message": "net: deliver skbs on inactive slaves to exact matches\n\nCurrently, the accelerated receive path for VLAN\u0027s will\ndrop packets if the real device is an inactive slave and\nis not one of the special pkts tested for in\nskb_bond_should_drop().  This behavior is different then\nthe non-accelerated path and for pkts over a bonded vlan.\n\nFor example,\n\nvlanx -\u003e bond0 -\u003e ethx\n\nwill be dropped in the vlan path and not delivered to any\npacket handlers at all.  However,\n\nbond0 -\u003e vlanx -\u003e ethx\n\nand\n\nbond0 -\u003e ethx\n\nwill be delivered to handlers that match the exact dev,\nbecause the VLAN path checks the real_dev which is not a\nslave and netif_recv_skb() doesn\u0027t drop frames but only\ndelivers them to exact matches.\n\nThis patch adds a sk_buff flag which is used for tagging\nskbs that would previously been dropped and allows the\nskb to continue to skb_netif_recv().  Here we add\nlogic to check for the deliver_no_wcard flag and if it\nis set only deliver to handlers that match exactly.  This\nmakes both paths above consistent and gives pkt handlers\na way to identify skbs that come from inactive slaves.\nWithout this patch in some configurations skbs will be\ndelivered to handlers with exact matches and in others\nbe dropped out right in the vlan path.\n\nI have tested the following 4 configurations in failover modes\nand load balancing modes.\n\n# bond0 -\u003e ethx\n\n# vlanx -\u003e bond0 -\u003e ethx\n\n# bond0 -\u003e vlanx -\u003e ethx\n\n# bond0 -\u003e ethx\n            |\n  vlanx -\u003e --\n\nSigned-off-by: John Fastabend \u003cjohn.r.fastabend@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b78462ebc6a4ef9074aa80abebcdd470dc5f0ce0",
      "tree": "fba32dab1e3dca2c5bb5b7d73a64a77c2b6872e8",
      "parents": [
        "55c95e738da85373965cb03b4f975d0fd559865b"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Wed Jun 02 12:24:37 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 05 02:23:16 2010 -0700"
      },
      "message": "skbuff: add check for non-linear to warn_if_lro and needs_linearize\n\nWe can avoid an unecessary cache miss by checking if the skb is non-linear\nbefore accessing gso_size/gso_type in skb_warn_if_lro, the same can also be\ndone to avoid a cache miss on nr_frags if data_len is 0.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5b0daa3474d52bed906c4d5e92b44e10148c6972",
      "tree": "3ed95111a3637d1b64f4c1bf27a0e86a785ca104",
      "parents": [
        "6057fd78a8dcce6269f029b967051d5a2e9b0895"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Sat May 29 00:12:13 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 29 00:12:13 2010 -0700"
      },
      "message": "skb: make skb_recycle_check() return a bool value\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7fee226ad2397b635e2fd565a59ca3ae08a164cd",
      "tree": "0bcd26150ad74ec1a237109de87a3d214a07fc22",
      "parents": [
        "ebda37c27d0c768947e9b058332d7ea798210cf8"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue May 11 23:19:48 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 17 17:18:50 2010 -0700"
      },
      "message": "net: add a noref bit on skb dst\n\nUse low order bit of skb-\u003e_skb_dst to tell dst is not refcounted.\n\nChange _skb_dst to _skb_refdst to make sure all uses are catched.\n\nskb_dst() returns the dst, regardless of noref bit set or not, but\nwith a lockdep check to make sure a noref dst is not given if current\nuser is not rcu protected.\n\nNew skb_dst_set_noref() helper to set an notrefcounted dst on a skb.\n(with lockdep check)\n\nskb_dst_drop() drops a reference only if skb dst was refcounted.\n\nskb_dst_force() helper is used to force a refcount on dst, when skb\nis queued and not anymore RCU protected.\n\nUse skb_dst_force() in __sk_add_backlog(), __dev_xmit_skb() if\n!IFF_XMIT_DST_RELEASE or skb enqueued on qdisc queue, in\nsock_queue_rcv_skb(), in __nf_queue().\n\nUse skb_dst_force() in dev_requeue_skb().\n\nNote: dst_use_noref() still dirties dst, we might transform it\nlater to do one dirtying per jiffies.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "18e8c134f4e984e6639e62846345192816f06d5c",
      "tree": "81bb46de14f020424716bd41915e831b07ce00c6",
      "parents": [
        "d6bc0149d8f2300bffa03ea6fea3ca39744277a6"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu May 06 21:58:51 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 06 21:58:51 2010 -0700"
      },
      "message": "net: Increase NET_SKB_PAD to 64 bytes\n\neth_type_trans() \u0026 get_rps_cpus() currently need two 64bytes cache\nlines in packet to compute rxhash.\n\nIncreasing NET_SKB_PAD from 32 to 64 reduces the need to one cache\nline only, and makes RPS faster.\n\nNET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ec7d2f2cf3a1b76202986519ec4f8ec75b2de232",
      "tree": "177c324eb0cf7e687d1bbd10a6add3a7d5979002",
      "parents": [
        "8753d29fd5daf890004a38c80835e1eb3acda394"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed May 05 01:07:37 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 05 01:07:37 2010 -0700"
      },
      "message": "net: __alloc_skb() speedup\n\nWith following patch I can reach maximum rate of my pktgen+udpsink\nsimulator :\n- \u0027old\u0027 machine : dual quad core E5450  @3.00GHz\n- 64 UDP rx flows (only differ by destination port)\n- RPS enabled, NIC interrupts serviced on cpu0\n- rps dispatched on 7 other cores. (~130.000 IPI per second)\n- SLAB allocator (faster than SLUB in this workload)\n- tg3 NIC\n- 1.080.000 pps without a single drop at NIC level.\n\nIdea is to add two prefetchw() calls in __alloc_skb(), one to prefetch\nfirst sk_buff cache line, the second to prefetch the shinfo part.\n\nAlso using one memset() to initialize all skb_shared_info fields instead\nof one by one to reduce number of instructions, using long word moves.\n\nAll skb_shared_info fields before \u0027dataref\u0027 are cleared in \n__alloc_skb().\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "47d29646a2c1c147d8a7598aeac2c87dd71ed638",
      "tree": "b38f05d82883b5c0fc885812172a546af966d419",
      "parents": [
        "43815482370c510c569fd18edb57afcb0fa8cab6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 02 02:21:44 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 02 02:21:44 2010 -0700"
      },
      "message": "net: Inline skb_pull() in eth_type_trans().\n\nIn commit 6be8ac2f (\"[NET]: uninline skb_pull, de-bloats a lot\")\nwe uninlined skb_pull.\n\nBut in some critical paths it makes sense to inline this thing\nand it helps performance significantly.\n\nCreate an skb_pull_inline() so that we can do this in a way that\nserves also as annotation.\n\nBased upon a patch by Eric Dumazet.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ccb7c7732e2ceb4e81a7806faf1670be9681ccd2",
      "tree": "76508ab431133ca9a085a9e3fa62fbfed607c9fb",
      "parents": [
        "0eae88f31ca2b88911ce843452054139e028771f"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Tue Apr 20 22:39:53 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 22:39:53 2010 -0700"
      },
      "message": "net: Remove two unnecessary exports (skbuff).\n\nThere is no need to export skb_under_panic() and skb_over_panic() in\nskbuff.c, since these methods are used only in skbuff.c ; this patch\nremoves these two exports. It also marks these functions as \u0027static\u0027\nand removeS the extern declarations of them from\ninclude/linux/skbuff.h\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "cd58950a5345f006a318f178705b9250aa54425c"
}
