)]}'
{
  "log": [
    {
      "commit": "fff3269907897ee91406ece125795f53e722677e",
      "tree": "6c22d2afaea6bc6fd2b34311db9c80b5418b94d1",
      "parents": [
        "7433819a1eefd4e74711fffd6d54e30a644ef240"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Fri Jun 01 01:47:50 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 01 14:22:11 2012 -0400"
      },
      "message": "tcp: reflect SYN queue_mapping into SYNACK packets\n\nWhile testing how linux behaves on SYNFLOOD attack on multiqueue device\n(ixgbe), I found that SYNACK messages were dropped at Qdisc level\nbecause we send them all on a single queue.\n\nObvious choice is to reflect incoming SYN packet @queue_mapping to\nSYNACK packet.\n\nUnder stress, my machine could only send 25.000 SYNACK per second (for\n200.000 incoming SYN per second). NIC : ixgbe with 16 rx/tx queues.\n\nAfter patch, not a single SYNACK is dropped.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nCc: Jesper Dangaard Brouer \u003cbrouer@redhat.com\u003e\nCc: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7433819a1eefd4e74711fffd6d54e30a644ef240",
      "tree": "62ced5e44f740d4d641d7719ae4a4ac0c91f4748",
      "parents": [
        "0bc777bca480357941418952cf228484f5485daf"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Thu May 31 21:00:26 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 01 14:22:11 2012 -0400"
      },
      "message": "tcp: do not create inetpeer on SYNACK message\n\nAnother problem on SYNFLOOD/DDOS attack is the inetpeer cache getting\nlarger and larger, using lots of memory and cpu time.\n\ntcp_v4_send_synack()\n-\u003einet_csk_route_req()\n -\u003eip_route_output_flow()\n  -\u003ert_set_nexthop()\n   -\u003ert_init_metrics()\n    -\u003einet_getpeer( create \u003d true)\n\nThis is a side effect of commit a4daad6b09230 (net: Pre-COW metrics for\nTCP) added in 2.6.39\n\nPossible solution :\n\nInstruct inet_csk_route_req() to remove FLOWI_FLAG_PRECOW_METRICS\n\nBefore patch :\n\n# grep peer /proc/slabinfo\ninet_peer_cache   4175430 4175430    192   42    2 : tunables    0    0    0 : slabdata  99415  99415      0\n\nSamples: 41K of event \u0027cycles\u0027, Event count (approx.): 30716565122\n+  20,24%      ksoftirqd/0  [kernel.kallsyms]           [k] inet_getpeer\n+   8,19%      ksoftirqd/0  [kernel.kallsyms]           [k] peer_avl_rebalance.isra.1\n+   4,81%      ksoftirqd/0  [kernel.kallsyms]           [k] sha_transform\n+   3,64%      ksoftirqd/0  [kernel.kallsyms]           [k] fib_table_lookup\n+   2,36%      ksoftirqd/0  [ixgbe]                     [k] ixgbe_poll\n+   2,16%      ksoftirqd/0  [kernel.kallsyms]           [k] __ip_route_output_key\n+   2,11%      ksoftirqd/0  [kernel.kallsyms]           [k] kernel_map_pages\n+   2,11%      ksoftirqd/0  [kernel.kallsyms]           [k] ip_route_input_common\n+   2,01%      ksoftirqd/0  [kernel.kallsyms]           [k] __inet_lookup_established\n+   1,83%      ksoftirqd/0  [kernel.kallsyms]           [k] md5_transform\n+   1,75%      ksoftirqd/0  [kernel.kallsyms]           [k] check_leaf.isra.9\n+   1,49%      ksoftirqd/0  [kernel.kallsyms]           [k] ipt_do_table\n+   1,46%      ksoftirqd/0  [kernel.kallsyms]           [k] hrtimer_interrupt\n+   1,45%      ksoftirqd/0  [kernel.kallsyms]           [k] kmem_cache_alloc\n+   1,29%      ksoftirqd/0  [kernel.kallsyms]           [k] inet_csk_search_req\n+   1,29%      ksoftirqd/0  [kernel.kallsyms]           [k] __netif_receive_skb\n+   1,16%      ksoftirqd/0  [kernel.kallsyms]           [k] copy_user_generic_string\n+   1,15%      ksoftirqd/0  [kernel.kallsyms]           [k] kmem_cache_free\n+   1,02%      ksoftirqd/0  [kernel.kallsyms]           [k] tcp_make_synack\n+   0,93%      ksoftirqd/0  [kernel.kallsyms]           [k] _raw_spin_lock_bh\n+   0,87%      ksoftirqd/0  [kernel.kallsyms]           [k] __call_rcu\n+   0,84%      ksoftirqd/0  [kernel.kallsyms]           [k] rt_garbage_collect\n+   0,84%      ksoftirqd/0  [kernel.kallsyms]           [k] fib_rules_lookup\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nCc: Jesper Dangaard Brouer \u003cbrouer@redhat.com\u003e\nCc: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "13199a0845729492fc51d1ba87938cdfe341b141",
      "tree": "544267bc4076fff6b2eaae119372b13f23aa8932",
      "parents": [
        "af56e0aa35f3ae2a4c1a6d1000702df1dd78cb76",
        "2e1d4a065a77d076a679df22a4eddbc7e33cad98"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 10:32:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 10:32:36 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull networking changes from David S. Miller:\n\n 1) Fix IPSEC header length calculation for transport mode in ESP.  The\n    issue is whether to do the calculation before or after alignment.\n    Fix from Benjamin Poirier.\n\n 2) Fix regression in IPV6 IPSEC fragment length calculations, from Gao\n    Feng.  This is another transport vs tunnel mode issue.\n\n 3) Handle AF_UNSPEC connect()s properly in L2TP to avoid OOPSes.  Fix\n    from James Chapman.\n\n 4) Fix USB ASIX driver\u0027s reception of full sized VLAN packets, from\n    Eric Dumazet.\n\n 5) Allow drop monitor (and, more generically, all generic netlink\n    protocols) to be automatically loaded as a module.  From Neil\n    Horman.\n\nFix up trivial conflict in Documentation/feature-removal-schedule.txt\ndue to new entries added next to each other at the end. As usual.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (38 commits)\n  net/smsc911x: Repair broken failure paths\n  virtio-net: remove useless disable on freeze\n  netdevice: Update netif_dbg for CONFIG_DYNAMIC_DEBUG\n  drop_monitor: Add module alias to enable automatic module loading\n  genetlink: Build a generic netlink family module alias\n  net: add MODULE_ALIAS_NET_PF_PROTO_NAME\n  r6040: Do a Proper deinit at errorpath and also when driver unloads (calling r6040_remove_one)\n  r6040: disable pci device if the subsequent calls (after pci_enable_device) fails\n  skb: avoid unnecessary reallocations in __skb_cow\n  net: sh_eth: fix the rxdesc pointer when rx descriptor empty happens\n  asix: allow full size 8021Q frames to be received\n  rds_rdma: don\u0027t assume infiniband device is PCI\n  l2tp: fix oops in L2TP IP sockets for connect() AF_UNSPEC case\n  mac80211: fix ADDBA declined after suspend with wowlan\n  wlcore: fix undefined symbols when CONFIG_PM is not defined\n  mac80211: fix flag check for QoS NOACK frames\n  ath9k_hw: apply internal regulator settings on AR933x\n  ath9k_hw: update AR933x initvals to fix issues with high power devices\n  ath9k: fix a use-after-free-bug when ath_tx_setup_buffer() fails\n  ath9k: stop rx dma before stopping tx\n  ...\n"
    },
    {
      "commit": "3f134619393cb6c6dfab7890a617d0ceca6d05d7",
      "tree": "39e05b42c99189cd4496e61a3e16107e065b0f04",
      "parents": [
        "3afe36b1fe7d1e3f66752bb9548a763942f3a104"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue May 29 15:07:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:28 2012 -0700"
      },
      "message": "memcg: decrement static keys at real destroy time\n\nWe call the destroy function when a cgroup starts to be removed, such as\nby a rmdir event.\n\nHowever, because of our reference counters, some objects are still\ninflight.  Right now, we are decrementing the static_keys at destroy()\ntime, meaning that if we get rid of the last static_key reference, some\nobjects will still have charges, but the code to properly uncharge them\nwon\u0027t be run.\n\nThis becomes a problem specially if it is ever enabled again, because now\nnew charges will be added to the staled charges making keeping it pretty\nmuch impossible.\n\nWe just need to be careful with the static branch activation: since there\nis no particular preferred order of their activation, we need to make sure\nthat we only start using it after all call sites are active.  This is\nachieved by having a per-memcg flag that is only updated after\nstatic_key_slow_inc() returns.  At this time, we are sure all sites are\nactive.\n\nThis is made per-memcg, not global, for a reason: it also has the effect\nof making socket accounting more consistent.  The first memcg to be\nlimited will trigger static_key() activation, therefore, accounting.  But\nall the others will then be accounted no matter what.  After this patch,\nonly limited memcgs will have its sockets accounted.\n\n[akpm@linux-foundation.org: move enum sock_flag_bits into sock.h,\n                            document enum sock_flag_bits,\n                            convert memcg_proto_active() and memcg_proto_activated() to test_bit(),\n                            redo tcp_update_limit() comment to 80 cols]\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91657eafb64b4cb53ec3a2fbc4afc3497f735788",
      "tree": "f56665f166dc09e0a2969ee17adb745c5fc89459",
      "parents": [
        "f0d1b3c2bcc5de8a17af5f2274f7fcde8292b5fc"
      ],
      "author": {
        "name": "Benjamin Poirier",
        "email": "bpoirier@suse.de",
        "time": "Thu May 24 11:32:38 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 27 01:08:29 2012 -0400"
      },
      "message": "xfrm: take net hdr len into account for esp payload size calculation\n\nCorrects the function that determines the esp payload size. The calculations\ndone in esp{4,6}_get_mtu() lead to overlength frames in transport mode for\ncertain mtu values and suboptimal frames for others.\n\nAccording to what is done, mainly in esp{,6}_output() and tcp_mtu_to_mss(),\nnet_header_len must be taken into account before doing the alignment\ncalculation.\n\nSigned-off-by: Benjamin Poirier \u003cbpoirier@suse.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "28f3d717618156c0dcd2f497d791b578a7931d87",
      "tree": "37b11581b51929b5473541e53bd242b3e1a9f666",
      "parents": [
        "654443e20dfc0617231f28a07c96a979ee1a0239",
        "1ca7ee30630e1022dbcf1b51be20580815ffab73"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 11:54:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 11:54:29 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull more networking updates from David Miller:\n \"Ok, everything from here on out will be bug fixes.\"\n\n1) One final sync of wireless and bluetooth stuff from John Linville.\n   These changes have all been in his tree for more than a week, and\n   therefore have had the necessary -next exposure.  John was just away\n   on a trip and didn\u0027t have a change to send the pull request until a\n   day or two ago.\n\n2) Put back some defines in user exposed header file areas that were\n   removed during the tokenring purge.  From Stephen Hemminger and Paul\n   Gortmaker.\n\n3) A bug fix for UDP hash table allocation got lost in the pile due to\n   one of those \"you got it..  no I\u0027ve got it..\" situations.  :-)\n\n   From Tim Bird.\n\n4) SKB coalescing in TCP needs to have stricter checks, otherwise we\u0027ll\n   try to coalesce overlapping frags and crash.  Fix from Eric Dumazet.\n\n5) RCU routing table lookups can race with free_fib_info(), causing\n   crashes when we deref the device pointers in the route.  Fix by\n   releasing the net device in the RCU callback.  From Yanmin Zhang.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (293 commits)\n  tcp: take care of overlaps in tcp_try_coalesce()\n  ipv4: fix the rcu race between free_fib_info and ip_route_output_slow\n  mm: add a low limit to alloc_large_system_hash\n  ipx: restore token ring define to include/linux/ipx.h\n  if: restore token ring ARP type to header\n  xen: do not disable netfront in dom0\n  phy/micrel: Fix ID of KSZ9021\n  mISDN: Add X-Tensions USB ISDN TA XC-525\n  gianfar:don\u0027t add FCB length to hard_header_len\n  Bluetooth: Report proper error number in disconnection\n  Bluetooth: Create flags for bt_sk()\n  Bluetooth: report the right security level in getsockopt\n  Bluetooth: Lock the L2CAP channel when sending\n  Bluetooth: Restore locking semantics when looking up L2CAP channels\n  Bluetooth: Fix a redundant and problematic incoming MTU check\n  Bluetooth: Add support for Foxconn/Hon Hai AR5BBU22 0489:E03C\n  Bluetooth: Fix EIR data generation for mgmt_device_found\n  Bluetooth: Fix Inquiry with RSSI event mask\n  Bluetooth: improve readability of l2cap_seq_list code\n  Bluetooth: Fix skb length calculation\n  ...\n"
    },
    {
      "commit": "1ca7ee30630e1022dbcf1b51be20580815ffab73",
      "tree": "5aab9c5bd4e31617afce262672c833db26381a23",
      "parents": [
        "e49cc0da7283088c5e03d475ffe2fdcb24a6d5b1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed May 23 17:51:37 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 24 00:28:21 2012 -0400"
      },
      "message": "tcp: take care of overlaps in tcp_try_coalesce()\n\nSergio Correia reported following warning :\n\nWARNING: at net/ipv4/tcp.c:1301 tcp_cleanup_rbuf+0x4f/0x110()\n\nWARN(skb \u0026\u0026 !before(tp-\u003ecopied_seq, TCP_SKB_CB(skb)-\u003eend_seq),\n     \"cleanup rbuf bug: copied %X seq %X rcvnxt %X\\n\",\n     tp-\u003ecopied_seq, TCP_SKB_CB(skb)-\u003eend_seq, tp-\u003ercv_nxt);\n\nIt appears TCP coalescing, and more specifically commit b081f85c297\n(net: implement tcp coalescing in tcp_queue_rcv()) should take care of\npossible segment overlaps in receive queue. This was properly done in\nthe case of out_or_order_queue by the caller.\n\nFor example, segment at tail of queue have sequence 1000-2000, and we\nadd a segment with sequence 1500-2500.\nThis can happen in case of retransmits.\n\nIn this case, just don\u0027t do the coalescing.\n\nReported-by: Sergio Correia \u003clists@uece.net\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nTested-by: Sergio Correia \u003clists@uece.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e49cc0da7283088c5e03d475ffe2fdcb24a6d5b1",
      "tree": "2bd3c141e3c0a2e671870fb4fe46793f8beee3ba",
      "parents": [
        "31fe62b9586643953f0c0c37a6357dafc69034e2"
      ],
      "author": {
        "name": "Yanmin Zhang",
        "email": "yanmin_zhang@linux.intel.com",
        "time": "Wed May 23 15:39:45 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 24 00:28:21 2012 -0400"
      },
      "message": "ipv4: fix the rcu race between free_fib_info and ip_route_output_slow\n\nWe hit a kernel OOPS.\n\n\u003c3\u003e[23898.789643] BUG: sleeping function called from invalid context at\n/data/buildbot/workdir/ics/hardware/intel/linux-2.6/arch/x86/mm/fault.c:1103\n\u003c3\u003e[23898.862215] in_atomic(): 0, irqs_disabled(): 0, pid: 10526, name:\nThread-6683\n\u003c4\u003e[23898.967805] HSU serial 0000:00:05.1: 0000:00:05.2:HSU serial prevented me\nto suspend...\n\u003c4\u003e[23899.258526] Pid: 10526, comm: Thread-6683 Tainted: G        W\n3.0.8-137685-ge7742f9 #1\n\u003c4\u003e[23899.357404] HSU serial 0000:00:05.1: 0000:00:05.2:HSU serial prevented me\nto suspend...\n\u003c4\u003e[23899.904225] Call Trace:\n\u003c4\u003e[23899.989209]  [\u003cc1227f50\u003e] ? pgtable_bad+0x130/0x130\n\u003c4\u003e[23900.000416]  [\u003cc1238c2a\u003e] __might_sleep+0x10a/0x110\n\u003c4\u003e[23900.007357]  [\u003cc1228021\u003e] do_page_fault+0xd1/0x3c0\n\u003c4\u003e[23900.013764]  [\u003cc18e9ba9\u003e] ? restore_all+0xf/0xf\n\u003c4\u003e[23900.024024]  [\u003cc17c007b\u003e] ? napi_complete+0x8b/0x690\n\u003c4\u003e[23900.029297]  [\u003cc1227f50\u003e] ? pgtable_bad+0x130/0x130\n\u003c4\u003e[23900.123739]  [\u003cc1227f50\u003e] ? pgtable_bad+0x130/0x130\n\u003c4\u003e[23900.128955]  [\u003cc18ea0c3\u003e] error_code+0x5f/0x64\n\u003c4\u003e[23900.133466]  [\u003cc1227f50\u003e] ? pgtable_bad+0x130/0x130\n\u003c4\u003e[23900.138450]  [\u003cc17f6298\u003e] ? __ip_route_output_key+0x698/0x7c0\n\u003c4\u003e[23900.144312]  [\u003cc17f5f8d\u003e] ? __ip_route_output_key+0x38d/0x7c0\n\u003c4\u003e[23900.150730]  [\u003cc17f63df\u003e] ip_route_output_flow+0x1f/0x60\n\u003c4\u003e[23900.156261]  [\u003cc181de58\u003e] ip4_datagram_connect+0x188/0x2b0\n\u003c4\u003e[23900.161960]  [\u003cc18e981f\u003e] ? _raw_spin_unlock_bh+0x1f/0x30\n\u003c4\u003e[23900.167834]  [\u003cc18298d6\u003e] inet_dgram_connect+0x36/0x80\n\u003c4\u003e[23900.173224]  [\u003cc14f9e88\u003e] ? _copy_from_user+0x48/0x140\n\u003c4\u003e[23900.178817]  [\u003cc17ab9da\u003e] sys_connect+0x9a/0xd0\n\u003c4\u003e[23900.183538]  [\u003cc132e93c\u003e] ? alloc_file+0xdc/0x240\n\u003c4\u003e[23900.189111]  [\u003cc123925d\u003e] ? sub_preempt_count+0x3d/0x50\n\nFunction free_fib_info resets nexthop_nh-\u003enh_dev to NULL before releasing\nfi. Other cpu might be accessing fi. Fixing it by delaying the releasing.\n\nWith the patch, we ran MTBF testing on Android mobile for 12 hours\nand didn\u0027t trigger the issue.\n\nThank Eric for very detailed review/checking the issue.\n\nSigned-off-by: Yanmin Zhang \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Kun Jiang \u003ckunx.jiang@intel.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "31fe62b9586643953f0c0c37a6357dafc69034e2",
      "tree": "69f9990423969df4ecbaea9d1e8de748284bea5e",
      "parents": [
        "d0a24a3516fb36023bef28d2355fa34e7f32029f"
      ],
      "author": {
        "name": "Tim Bird",
        "email": "tim.bird@am.sony.com",
        "time": "Wed May 23 13:33:35 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 24 00:28:21 2012 -0400"
      },
      "message": "mm: add a low limit to alloc_large_system_hash\n\nUDP stack needs a minimum hash size value for proper operation and also\nuses alloc_large_system_hash() for proper NUMA distribution of its hash\ntables and automatic sizing depending on available system memory.\n\nOn some low memory situations, udp_table_init() must ignore the\nalloc_large_system_hash() result and reallocs a bigger memory area.\n\nAs we cannot easily free old hash table, we leak it and kmemleak can\nissue a warning.\n\nThis patch adds a low limit parameter to alloc_large_system_hash() to\nsolve this problem.\n\nWe then specify UDP_HTABLE_SIZE_MIN for UDP/UDPLite hash table\nallocation.\n\nReported-by: Mark Asselstine \u003cmark.asselstine@windriver.com\u003e\nReported-by: Tim Bird \u003ctim.bird@am.sony.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "644473e9c60c1ff4f6351fed637a6e5551e3dce7",
      "tree": "10316518bedc735a2c6552886658d69dfd9f1eb0",
      "parents": [
        "fb827ec68446c83e9e8754fa9b55aed27ecc4661",
        "4b06a81f1daee668fbd6de85557bfb36dd36078f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace enhancements from Eric Biederman:\n \"This is a course correction for the user namespace, so that we can\n  reach an inexpensive, maintainable, and reasonably complete\n  implementation.\n\n  Highlights:\n   - Config guards make it impossible to enable the user namespace and\n     code that has not been converted to be user namespace safe.\n\n   - Use of the new kuid_t type ensures the if you somehow get past the\n     config guards the kernel will encounter type errors if you enable\n     user namespaces and attempt to compile in code whose permission\n     checks have not been updated to be user namespace safe.\n\n   - All uids from child user namespaces are mapped into the initial\n     user namespace before they are processed.  Removing the need to add\n     an additional check to see if the user namespace of the compared\n     uids remains the same.\n\n   - With the user namespaces compiled out the performance is as good or\n     better than it is today.\n\n   - For most operations absolutely nothing changes performance or\n     operationally with the user namespace enabled.\n\n   - The worst case performance I could come up with was timing 1\n     billion cache cold stat operations with the user namespace code\n     enabled.  This went from 156s to 164s on my laptop (or 156ns to\n     164ns per stat operation).\n\n   - (uid_t)-1 and (gid_t)-1 are reserved as an internal error value.\n     Most uid/gid setting system calls treat these value specially\n     anyway so attempting to use -1 as a uid would likely cause\n     entertaining failures in userspace.\n\n   - If setuid is called with a uid that can not be mapped setuid fails.\n     I have looked at sendmail, login, ssh and every other program I\n     could think of that would call setuid and they all check for and\n     handle the case where setuid fails.\n\n   - If stat or a similar system call is called from a context in which\n     we can not map a uid we lie and return overflowuid.  The LFS\n     experience suggests not lying and returning an error code might be\n     better, but the historical precedent with uids is different and I\n     can not think of anything that would break by lying about a uid we\n     can\u0027t map.\n\n   - Capabilities are localized to the current user namespace making it\n     safe to give the initial user in a user namespace all capabilities.\n\n  My git tree covers all of the modifications needed to convert the core\n  kernel and enough changes to make a system bootable to runlevel 1.\"\n\nFix up trivial conflicts due to nearby independent changes in fs/stat.c\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (46 commits)\n  userns:  Silence silly gcc warning.\n  cred: use correct cred accessor with regards to rcu read lock\n  userns: Convert the move_pages, and migrate_pages permission checks to use uid_eq\n  userns: Convert cgroup permission checks to use uid_eq\n  userns: Convert tmpfs to use kuid and kgid where appropriate\n  userns: Convert sysfs to use kgid/kuid where appropriate\n  userns: Convert sysctl permission checks to use kuid and kgids.\n  userns: Convert proc to use kuid/kgid where appropriate\n  userns: Convert ext4 to user kuid/kgid where appropriate\n  userns: Convert ext3 to use kuid/kgid where appropriate\n  userns: Convert ext2 to use kuid/kgid where appropriate.\n  userns: Convert devpts to use kuid/kgid where appropriate\n  userns: Convert binary formats to use kuid/kgid where appropriate\n  userns: Add negative depends on entries to avoid building code that is userns unsafe\n  userns: signal remove unnecessary map_cred_ns\n  userns: Teach inode_capable to understand inodes whose uids map to other namespaces.\n  userns: Fail exec for suid and sgid binaries with ids outside our user namespace.\n  userns: Convert stat to return values mapped from kuids and kgids\n  userns: Convert user specfied uids and gids in chown into kuids and kgid\n  userns: Use uid_eq gid_eq helpers when comparing kuids and kgids in the vfs\n  ...\n"
    },
    {
      "commit": "88d6ae8dc33af12fe1c7941b1fae2767374046fd",
      "tree": "8f17415c0722b0a4d7511ac170cfb4e3802e1ad2",
      "parents": [
        "f5c101892fbd3d2f6d2729bc7eb7b3f6c31dbddd",
        "0d4dde1ac9a5af74ac76c6ab90557d1ae7b8f5d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 22 17:40:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 22 17:40:19 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup updates from Tejun Heo:\n \"cgroup file type addition / removal is updated so that file types are\n  added and removed instead of individual files so that dynamic file\n  type addition / removal can be implemented by cgroup and used by\n  controllers.  blkio controller changes which will come through block\n  tree are dependent on this.  Other changes include res_counter cleanup\n  and disallowing kthread / PF_THREAD_BOUND threads to be attached to\n  non-root cgroups.\n\n  There\u0027s a reported bug with the file type addition / removal handling\n  which can lead to oops on cgroup umount.  The issue is being looked\n  into.  It shouldn\u0027t cause problems for most setups and isn\u0027t a\n  security concern.\"\n\nFix up trivial conflict in Documentation/feature-removal-schedule.txt\n\n* \u0027for-3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (21 commits)\n  res_counter: Account max_usage when calling res_counter_charge_nofail()\n  res_counter: Merge res_counter_charge and res_counter_charge_nofail\n  cgroups: disallow attaching kthreadd or PF_THREAD_BOUND threads\n  cgroup: remove cgroup_subsys-\u003epopulate()\n  cgroup: get rid of populate for memcg\n  cgroup: pass struct mem_cgroup instead of struct cgroup to socket memcg\n  cgroup: make css-\u003erefcnt clearing on cgroup removal optional\n  cgroup: use negative bias on css-\u003erefcnt to block css_tryget()\n  cgroup: implement cgroup_rm_cftypes()\n  cgroup: introduce struct cfent\n  cgroup: relocate __d_cgrp() and __d_cft()\n  cgroup: remove cgroup_add_file[s]()\n  cgroup: convert memcg controller to the new cftype interface\n  memcg: always create memsw files if CONFIG_CGROUP_MEM_RES_CTLR_SWAP\n  cgroup: convert all non-memcg controllers to the new cftype interface\n  cgroup: relocate cftype and cgroup_subsys definitions in controllers\n  cgroup: merge cft_release_agent cftype array into the base files array\n  cgroup: implement cgroup_add_cftypes() and friends\n  cgroup: build list of all cgroups under a given cgroupfs_root\n  cgroup: move cgroup_clear_directory() call out of cgroup_populate_dir()\n  ...\n"
    },
    {
      "commit": "17eea0df5f7068fc04959e655ef8f0a0ed097e19",
      "tree": "d44b5cceb813dddfd1e62fe9f92556cf113d62fd",
      "parents": [
        "9b905fe68433378032b851c4d81a59187689fa52",
        "76e10d158efb6d4516018846f60c2ab5501900bc"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 20 21:53:04 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 20 21:53:04 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "413c27d8697751f72d2d6cf289140a8e060a8032",
      "tree": "ed13d36cfc8651b542eca7c1f92e4f9a09fe6e7d",
      "parents": [
        "b37f4d7b011955c84cdbb8c370927d93701fb174"
      ],
      "author": {
        "name": "Eldad Zack",
        "email": "eldad@fogrefinery.com",
        "time": "Sat May 19 14:13:18 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 20 04:06:17 2012 -0400"
      },
      "message": "net/ipv4: replace simple_strtoul with kstrtoul\n\nReplace simple_strtoul with kstrtoul in three similar occurrences, all setup\nhandlers:\n* route.c: set_rhash_entries\n* tcp.c: set_thash_entries\n* udp.c: set_uhash_entries\n\nAlso check if the conversion failed.\n\nSigned-off-by: Eldad Zack \u003celdad@fogrefinery.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b37f4d7b011955c84cdbb8c370927d93701fb174",
      "tree": "47f2b6d1175211041a85021ea4a588067e3f9f75",
      "parents": [
        "88c16dc3bb61a1c1e9d4c78f45cc2107bc8d5249"
      ],
      "author": {
        "name": "Eldad Zack",
        "email": "eldad@fogrefinery.com",
        "time": "Sat May 19 14:04:39 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 20 04:06:16 2012 -0400"
      },
      "message": "net/ipv4/ipconfig: neaten __setup placement\n\nThe __setup macro should follow the corresponding setup handler.\n\nSigned-off-by: Eldad Zack \u003celdad@fogrefinery.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3cc4949269e01f39443d0fcfffb5bc6b47878d45",
      "tree": "c83d9410536d3fa4308781a8f36baab09a2144a1",
      "parents": [
        "bad43ca8325f493dcaa0896c2f036276af059c7e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sat May 19 03:02:20 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 19 18:34:57 2012 -0400"
      },
      "message": "ipv4: use skb coalescing in defragmentation\n\nip_frag_reasm() can use skb_try_coalesce() to build optimized skb,\nreducing memory used by them (truesize), and reducing number of cache\nline misses and overhead for the consumer.\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": "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": "cbc264cacd08e51fd4a64b5d5b1ba48f523990d1",
      "tree": "f51584e8a78fad165debfe1e0d01715d9f493f3b",
      "parents": [
        "28e85100ae0fd814db723aeaaa785270bf4d600d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Fri May 18 05:57:13 2012 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 18 01:40:27 2012 -0400"
      },
      "message": "ip_frag: struct inet_frags match() method returns a bool\n\n- match() method returns a boolean\n- return (A \u0026\u0026 B \u0026\u0026 C \u0026\u0026 D) -\u003e return A \u0026\u0026 B \u0026\u0026 C \u0026\u0026 D\n- fix indentation\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\n"
    },
    {
      "commit": "bad115cfe5b509043b684d3a007ab54b80090aa1",
      "tree": "f2da25538f8fcf48ae7a74b3b040d58628b52094",
      "parents": [
        "1be5f0b7575e090fd100a98b303860879b5800de"
      ],
      "author": {
        "name": "Willy Tarreau",
        "email": "w@1wt.eu",
        "time": "Thu May 17 11:14:14 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 17 18:31:43 2012 -0400"
      },
      "message": "tcp: do_tcp_sendpages() must try to push data out on oom conditions\n\nSince recent changes on TCP splicing (starting with commits 2f533844\n\"tcp: allow splice() to build full TSO packets\" and 35f9c09f \"tcp:\ntcp_sendpages() should call tcp_push() once\"), I started seeing\nmassive stalls when forwarding traffic between two sockets using\nsplice() when pipe buffers were larger than socket buffers.\n\nLatest changes (net: netdev_alloc_skb() use build_skb()) made the\nproblem even more apparent.\n\nThe reason seems to be that if do_tcp_sendpages() fails on out of memory\ncondition without being able to send at least one byte, tcp_push() is not\ncalled and the buffers cannot be flushed.\n\nAfter applying the attached patch, I cannot reproduce the stalls at all\nand the data rate it perfectly stable and steady under any condition\nwhich previously caused the problem to be permanent.\n\nThe issue seems to have been there since before the kernel migrated to\ngit, which makes me think that the stalls I occasionally experienced\nwith tux during stress-tests years ago were probably related to the\nsame issue.\n\nThis issue was first encountered on 3.0.31 and 3.2.17, so please backport\nto -stable.\n\nSigned-off-by: Willy Tarreau \u003cw@1wt.eu\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\n"
    },
    {
      "commit": "a2a385d627e1549da4b43a8b3dfe370589766e1c",
      "tree": "d61e9913497c6c14406032f6a0822738707f1abf",
      "parents": [
        "e005d193d55ee5f757b13306112d8c23aac27a88"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed May 16 23:15:34 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 17 14:59:59 2012 -0400"
      },
      "message": "tcp: bool conversions\n\nbool conversions where possible.\n\n__inline__ -\u003e inline\n\nspace cleanups\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dc6b9b78234fecdc6d2ca5e1629185718202bcf5",
      "tree": "81faf65c9cd9747d8dfe2828ff624507459bdf24",
      "parents": [
        "1f352920b908247273a7c1937fd8c341cc1cedb1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed May 16 22:48:15 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 17 04:50:21 2012 -0400"
      },
      "message": "net: include/net/sock.h cleanup\n\nbool/const conversions where possible\n\n__inline__ -\u003e inline\n\nspace cleanups\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "028940342a906db8da014a7603a0deddc2c323dd",
      "tree": "688dbc38a3e218f2493d311b1d70a67668837347",
      "parents": [
        "be3eed2e96340d3c7a4d1ea1d63e7bd6095d1e34",
        "0e93b4b304ae052ba1bc73f6d34a68556fe93429"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 16 22:17:37 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 16 22:17:37 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "c727e7f0071cae66c029f667d48b154c6b64227b",
      "tree": "197c2760fcae529d04d56f56e9cd55f51d6d9273",
      "parents": [
        "91df42bedccb919902c7cf7eb876c982ae7f1b1d",
        "ee446fd5e6dafee4a16fd1bd345d2571dcfd6f5d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 16 01:02:40 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 16 01:02:40 2012 -0400"
      },
      "message": "Merge branch \u0027delete-tokenring\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n"
    },
    {
      "commit": "91df42bedccb919902c7cf7eb876c982ae7f1b1d",
      "tree": "a941627c25c941b8f26d20d2c214ff2004eae356",
      "parents": [
        "f32138319ca6541e65f95f8e17c9cc88ac1baf94"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue May 15 14:11:54 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 16 01:01:03 2012 -0400"
      },
      "message": "net: ipv4 and ipv6: Convert printk(KERN_DEBUG to pr_debug\n\nUse the current debugging style and enable dynamic_debug.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "211ed865108e24697b44bee5daac502ee6bdd4a4",
      "tree": "2a902c914f96298f265ef52cba5e463c5c8dea32",
      "parents": [
        "60eea6cf2964beea6c38d9050bc3823a93db97e0"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 10 17:14:35 2012 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Tue May 15 20:14:35 2012 -0400"
      },
      "message": "net: delete all instances of special processing for token ring\n\nWe are going to delete the Token ring support.  This removes any\nspecial processing in the core networking for token ring, (aside\nfrom net/tr.c itself), leaving the drivers and remaining tokenring\nsupport present but inert.\n\nThe mass removal of the drivers and net/tr.c will be in a separate\ncommit, so that the history of these files that we still care\nabout won\u0027t have the giant deletion tied into their history.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "e87cc4728f0e2fb663e592a1141742b1d6c63256",
      "tree": "b8219696d37f0c8d0521d5853560b97fc96dc667",
      "parents": [
        "3a3bfb61e64476ff1e4ac3122cb6dec9c79b795c"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun May 13 21:56:26 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 15 13:45:03 2012 -0400"
      },
      "message": "net: Convert net_ratelimit uses to net_\u003clevel\u003e_ratelimited\n\nStandardize the net core ratelimited logging functions.\n\nCoalesce formats, align arguments.\nChange a printk then vprintk sequence to use printf extension %pV.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7e1525249814acfd293d579abcb6462767643a8a",
      "tree": "dfb4e6963b9a0e179475c7026bd812bd5b293149",
      "parents": [
        "bcebe55957323d9a5bc9d0f7a0747ccbb34c86dd"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@suse.com",
        "time": "Tue May 15 01:57:44 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 15 13:13:34 2012 -0400"
      },
      "message": "xfrm: make xfrm_algo.c a module\n\nBy making this a standalone config option (auto-selected as needed),\nselecting CRYPTO from here rather than from XFRM (which is boolean)\nallows the core crypto code to become a module again even when XFRM\u003dy.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1070b1b831404455d79d15fe94ae9216fb5f8ab4",
      "tree": "e371f8d9c09c0a6265aba39dec9ef2b1dd87f9fc",
      "parents": [
        "3c961afed4d4e766b66092e7af8c8e8005053505"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu May 10 01:50:20 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 10 23:24:36 2012 -0400"
      },
      "message": "tcp: Out-line tcp_try_rmem_schedule\n\nAs proposed by Eric, make the tcp_input.o thinner.\n\nadd/remove: 1/1 grow/shrink: 1/4 up/down: 868/-1329 (-461)\nfunction                                     old     new   delta\ntcp_try_rmem_schedule                          -     864    +864\ntcp_ack                                     4811    4815      +4\ntcp_validate_incoming                        817     815      -2\ntcp_collapse                                 860     858      -2\ntcp_send_rcvq                                555     353    -202\ntcp_data_queue                              3435    3033    -402\ntcp_prune_queue                              721       -    -721\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3c961afed4d4e766b66092e7af8c8e8005053505",
      "tree": "1bc4194a29e125bac5585ee2a45a94e8abc7a408",
      "parents": [
        "292e8d8c853889140ed77b7b37c66979b13080ae"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu May 10 01:50:01 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 10 23:24:35 2012 -0400"
      },
      "message": "tcp: Schedule rmem for rcvq repair send\n\nAs noted by Eric, no checks are performed on the data size we\u0027re\nputting in the read queue during repair. Thus, validate the given\ndata size with the common rmem management routine.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "292e8d8c853889140ed77b7b37c66979b13080ae",
      "tree": "7b5c1e110d68904277826e13c9daed638fef618d",
      "parents": [
        "74e04aca1abb8d697ca88e472a2d08dfbe19a0e1"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu May 10 01:49:41 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 10 23:24:35 2012 -0400"
      },
      "message": "tcp: Move rcvq sending to tcp_input.c\n\nIt actually works on the input queue and will use its read mem\nroutines, thus it\u0027s better to have in in the tcp_input.c file.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dccd9ecc374462e5d6a5b8f8110415a86c2213d8",
      "tree": "92985101d752308885e7b29678dc9845eabea0d6",
      "parents": [
        "0e0c55165b638e96c8d7097ea638aa368daa268a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 10 22:16:32 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 10 22:16:32 2012 -0400"
      },
      "message": "ipv4: Do not use dead fib_info entries.\n\nDue to RCU lookups and RCU based release, fib_info objects can\nbe found during lookup which have fi-\u003efib_dead set.\n\nWe must ignore these entries, otherwise we risk dereferencing\nthe parts of the entry which are being torn down.\n\nReported-by: Yevgen Pronenko \u003cyevgen.pronenko@sonymobile.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d16cf20e2f2f13411eece7f7fb72c17d141c4a84",
      "tree": "8154b3db8cdbb4b8d9f35d4c407cfe961253f0b4",
      "parents": [
        "6714cf5465d2803a21c6a46c1ea747795a8889fa"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue May 08 19:45:28 2012 +0200"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue May 08 20:25:42 2012 +0200"
      },
      "message": "netfilter: remove ip_queue support\n\nThis patch removes ip_queue support which was marked as obsolete\nyears ago. The nfnetlink_queue modules provides more advanced\nuser-space packet queueing mechanism.\n\nThis patch also removes capability code included in SELinux that\nrefers to ip_queue. Otherwise, we break compilation.\n\nSeveral warning has been sent regarding this to the mailing list\nin the past month without anyone rising the hand to stop this\nwith some strong argument.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\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": "3a084ddb4bf299a6e898a9a07c89f3917f0713f7",
      "tree": "f938915de277b2b9b52ce6dc1308f18d0d083bcd",
      "parents": [
        "416912a129349788372e6ac27ab86bd9b18c8cc0"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Thu May 03 22:37:45 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 07 23:03:22 2012 -0400"
      },
      "message": "net: IP_MULTICAST_IF setsockopt now recognizes struct mreq\n\nUntil now, struct mreq has not been recognized and it was worked with\nas with struct in_addr. That means imr_multiaddr was copied to\nimr_address. So do recognize struct mreq here and copy that correctly.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bd14b1b2e29bd6812597f896dde06eaf7c6d2f24",
      "tree": "bd641279d50993e32da8f8d72672bce4e54820bd",
      "parents": [
        "f45ebf3a6be9da051f078b30e7309b6788932189"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Fri May 04 05:14:02 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 04 12:05:27 2012 -0400"
      },
      "message": "tcp: be more strict before accepting ECN negociation\n\nIt appears some networks play bad games with the two bits reserved for\nECN. This can trigger false congestion notifications and very slow\ntransferts.\n\nSince RFC 3168 (6.1.1) forbids SYN packets to carry CT bits, we can\ndisable TCP ECN negociation if it happens we receive mangled CT bits in\nthe SYN packet.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Perry Lorier \u003cperryl@google.com\u003e\nCc: Matt Mathis \u003cmattmathis@google.com\u003e\nCc: Yuchung Cheng \u003cycheng@google.com\u003e\nCc: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Wilmer van der Gaast \u003cwilmer@google.com\u003e\nCc: Ankur Jain \u003cjankur@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Dave Täht \u003cdave.taht@bufferbloat.net\u003e\nAcked-by: Neal Cardwell \u003cncardwell@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": "ae2975bc3476243b45a1e2344236d7920c268f38",
      "tree": "e4b2a8472f6047734b6e7e2bdc994375b2790323",
      "parents": [
        "22d917d80e842829d0ca0a561967d728eb1d6303"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Nov 14 15:56:38 2011 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu May 03 03:27:21 2012 -0700"
      },
      "message": "userns: Convert group_info values from gid_t to kgid_t.\n\nAs a first step to converting struct cred to be all kuid_t and kgid_t\nvalues convert the group values stored in group_info to always be\nkgid_t values.   Unless user namespaces are used this change should\nhave no effect.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "34a802a5b9c4c4efb61828781230805be6dd0f8e",
      "tree": "45be14af435925382374f42619af2d1b602eee52",
      "parents": [
        "57b55a7ec684d8b846d6d5e67f4982363a83db7e"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Wed May 02 21:19:09 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 03 04:21:33 2012 -0400"
      },
      "message": "tcp: move stats merge to the end of tcp_try_coalesce\n\nThis change cleans up the last bits of tcp_try_coalesce so that we only\nneed one goto which jumps to the end of the function.  The idea is to make\nthe code more readable by putting things in a linear order so that we start\nexecution at the top of the function, and end it at the bottom.\n\nI also made a slight tweak to the code for handling frags when we are a\nclone.  Instead of making it an if (clone) loop else nr_frags \u003d 0 I changed\nthe logic so that if (!clone) we just set the number of frags to 0 which\ndisables the for loop anyway.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nCc: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "57b55a7ec684d8b846d6d5e67f4982363a83db7e",
      "tree": "29ea3a30a701d10ba2dbcb4a003952fe8e2f23f6",
      "parents": [
        "c73c3d9c49daae8acbac4cd14bcd81626887c0e6"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Wed May 02 21:19:04 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 03 04:21:33 2012 -0400"
      },
      "message": "tcp: Move code related to head frag in tcp_try_coalesce\n\nThis change reorders the code related to the use of an skb-\u003ehead_frag so it\nis placed before we check the rest of the frags.  This allows the code to\nread more linearly instead of like some sort of loop.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nCc: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c73c3d9c49daae8acbac4cd14bcd81626887c0e6",
      "tree": "b38ef55d8b2cd88a1e02ee9d990c89071edf136c",
      "parents": [
        "8c1ae10d792155a7221be12b37dcebc3bcc1b49f"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Wed May 02 21:18:59 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 03 04:21:33 2012 -0400"
      },
      "message": "tcp: Fix truesize accounting in tcp_try_coalesce\n\nThis patch addresses several issues in the way we were tracking the\ntruesize in tcp_try_coalesce.\n\nFirst it was using ksize which prevents us from having a 0 sized head frag\nand getting a usable result.  To resolve that this patch uses the end\npointer which is set based off either ksize, or the frag_size supplied in\nbuild_skb.  This allows us to compute the original truesize of the entire\nbuffer and remove that value leaving us with just what was added as pages.\n\nThe second issue was the use of skb-\u003elen if there is a mergeable head frag.\nWe should only need to remove the size of an data aligned sk_buff from our\ncurrent skb-\u003etruesize to compute the delta for a buffer with a reused head.\nBy using skb-\u003elen the value of truesize was being artificially reduced\nwhich means that head frags could use more memory than buffers using\nstandard allocations.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nCc: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2996d31f9f292cce67cd9105dc0a4a5ee43d2f14",
      "tree": "4368e35e13d083a40530c88de554de8d88c0aa41",
      "parents": [
        "b081f85c2977b1cbb6e635d53d9512f1ef985972"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Wed May 02 18:18:42 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 03 01:34:37 2012 -0400"
      },
      "message": "net: Stop decapitating clones that have a head_frag\n\nThis change is meant ot prevent stealing the skb-\u003ehead to use as a page in\nthe event that the skb-\u003ehead was cloned.  This allows the other clones to\ntrack each other via shinfo-\u003edataref.\n\nWithout this we break down to two methods for tracking the reference count,\none being dataref, the other being the page count.  As a result it becomes\ndifficult to track how many references there are to skb-\u003ehead.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nCc: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b081f85c2977b1cbb6e635d53d9512f1ef985972",
      "tree": "3b41dfe3ee282c175907e8bcf9614385115fa2e6",
      "parents": [
        "923dd347b8904c24bcac89bf038ed4da87f8aa90"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed May 02 09:58:29 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 02 21:11:11 2012 -0400"
      },
      "message": "net: implement tcp coalescing in tcp_queue_rcv()\n\nExtend tcp coalescing implementing it from tcp_queue_rcv(), the main\nreceiver function when application is not blocked in recvmsg().\n\nFunction tcp_queue_rcv() is moved a bit to allow its call from\ntcp_data_queue()\n\nThis gives good results especially if GRO could not kick, and if skb\nhead is a fragment.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nCc: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "923dd347b8904c24bcac89bf038ed4da87f8aa90",
      "tree": "d329204cb40e4d13e07ffc538fd9978c334ef90c",
      "parents": [
        "eeb7fc7bc095546b21188e8e076a59bce73f9ca6"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed May 02 07:55:58 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 02 21:11:11 2012 -0400"
      },
      "message": "net: take care of cloned skbs in tcp_try_coalesce()\n\nBefore stealing fragments or skb head, we must make sure skbs are not\ncloned.\n\nAlexander was worried about destination skb being cloned : In bridge\nsetups, a driver could be fooled if skb-\u003edata_len would not match skb\nnr_frags.\n\nIf source skb is cloned, we must take references on pages instead.\n\nBug happened using tcpdump (if not using mmap())\n\nIntroduce kfree_skb_partial() helper to cleanup code.\n\nReported-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b49960a05e32121d29316cfdf653894b88ac9190",
      "tree": "101bb83073486809d5cc84505fecf772f4a77599",
      "parents": [
        "84768edbb2721637620b2d84501bb0d5aed603f1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed May 02 02:28:41 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 02 21:08:58 2012 -0400"
      },
      "message": "tcp: change tcp_adv_win_scale and tcp_rmem[2]\n\ntcp_adv_win_scale default value is 2, meaning we expect a good citizen\nskb to have skb-\u003elen / skb-\u003etruesize ratio of 75% (3/4)\n\nIn 2.6 kernels we (mis)accounted for typical MSS\u003d1460 frame :\n1536 + 64 + 256 \u003d 1856 \u0027estimated truesize\u0027, and 1856 * 3/4 \u003d 1392.\nSo these skbs were considered as not bloated.\n\nWith recent truesize fixes, a typical MSS\u003d1460 frame truesize is now the\nmore precise :\n2048 + 256 \u003d 2304. But 2304 * 3/4 \u003d 1728.\nSo these skb are not good citizen anymore, because 1460 \u003c 1728\n\n(GRO can escape this problem because it build skbs with a too low\ntruesize.)\n\nThis also means tcp advertises a too optimistic window for a given\nallocated rcvspace : When receiving frames, sk_rmem_alloc can hit\nsk_rcvbuf limit and we call tcp_prune_queue()/tcp_collapse() too often,\nespecially when application is slow to drain its receive queue or in\ncase of losses (netperf is fast, scp is slow). This is a major latency\nsource.\n\nWe should adjust the len/truesize ratio to 50% instead of 75%\n\nThis patch :\n\n1) changes tcp_adv_win_scale default to 1 instead of 2\n\n2) increase tcp_rmem[2] limit from 4MB to 6MB to take into account\nbetter truesize tracking and to allow autotuning tcp receive window to\nreach same value than before. Note that same amount of kernel memory is\nconsumed compared to 2.6 kernels.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Yuchung Cheng \u003cycheng@google.com\u003e\nAcked-by: Neal Cardwell \u003cncardwell@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "750ea2bafa55aaed208b2583470ecd7122225634",
      "tree": "7656d7697566b0cecc7fbbdd8dbae288bca6d7e3",
      "parents": [
        "eed530b6c67624db3f2cf477bac7c4d005d8f7ba"
      ],
      "author": {
        "name": "Yuchung Cheng",
        "email": "ycheng@google.com",
        "time": "Wed May 02 13:30:04 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 02 20:56:10 2012 -0400"
      },
      "message": "tcp: early retransmit: delayed fast retransmit\n\nImplementing the advanced early retransmit (sysctl_tcp_early_retrans\u003d\u003d2).\nDelays the fast retransmit by an interval of RTT/4. We borrow the\nRTO timer to implement the delay. If we receive another ACK or send\na new packet, the timer is cancelled and restored to original RTO\nvalue offset by time elapsed.  When the delayed-ER timer fires,\nwe enter fast recovery and perform fast retransmit.\n\nSigned-off-by: Yuchung Cheng \u003cycheng@google.com\u003e\nAcked-by: Neal Cardwell \u003cncardwell@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eed530b6c67624db3f2cf477bac7c4d005d8f7ba",
      "tree": "c07096807ead2adb9d85e85d1a9cd1ada85755ac",
      "parents": [
        "1fbc340514fc3003514bd681b372e1f47ae6183f"
      ],
      "author": {
        "name": "Yuchung Cheng",
        "email": "ycheng@google.com",
        "time": "Wed May 02 13:30:03 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 02 20:56:10 2012 -0400"
      },
      "message": "tcp: early retransmit\n\nThis patch implements RFC 5827 early retransmit (ER) for TCP.\nIt reduces DUPACK threshold (dupthresh) if outstanding packets are\nless than 4 to recover losses by fast recovery instead of timeout.\n\nWhile the algorithm is simple, small but frequent network reordering\nmakes this feature dangerous: the connection repeatedly enter\nfalse recovery and degrade performance. Therefore we implement\na mitigation suggested in the appendix of the RFC that delays\nentering fast recovery by a small interval, i.e., RTT/4. Currently\nER is conservative and is disabled for the rest of the connection\nafter the first reordering event. A large scale web server\nexperiment on the performance impact of ER is summarized in\nsection 6 of the paper \"Proportional Rate Reduction for TCP”,\nIMC 2011. http://conferences.sigcomm.org/imc/2011/docs/p155.pdf\n\nNote that Linux has a similar feature called THIN_DUPACK. The\ndifferences are THIN_DUPACK do not mitigate reorderings and is only\nused after slow start. Currently ER is disabled if THIN_DUPACK is\nenabled. I would be happy to merge THIN_DUPACK feature with ER if\npeople think it\u0027s a good idea.\n\nER is enabled by sysctl_tcp_early_retrans:\n  0: Disables ER\n\n  1: Reduce dupthresh to packets_out - 1 when outstanding packets \u003c 4.\n\n  2: (Default) reduce dupthresh like mode 1. In addition, delay\n     entering fast recovery by RTT/4.\n\nNote: mode 2 is implemented in the third part of this patch series.\n\nSigned-off-by: Yuchung Cheng \u003cycheng@google.com\u003e\nAcked-by: Neal Cardwell \u003cncardwell@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1fbc340514fc3003514bd681b372e1f47ae6183f",
      "tree": "ee4217005d896c2be29279956dfe5dcf64c3c51e",
      "parents": [
        "5c6239c8f89f301c47e96bf9d2931c446b934be0"
      ],
      "author": {
        "name": "Yuchung Cheng",
        "email": "ycheng@google.com",
        "time": "Wed May 02 13:30:02 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 02 20:56:09 2012 -0400"
      },
      "message": "tcp: early retransmit: tcp_enter_recovery()\n\nThis a prepartion patch that refactors the code to enter recovery\ninto a new function tcp_enter_recovery(). It\u0027s needed to implement\nthe delayed fast retransmit in ER.\n\nSigned-off-by: Yuchung Cheng \u003cycheng@google.com\u003e\nAcked-by: Neal Cardwell \u003cncardwell@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "329033f645d93b5f9160b9b972dbc5431ad22a33",
      "tree": "1fca09d6bf496391b8ea5d109429e48b28b2d7a8",
      "parents": [
        "d7e8883cfcf4851afe74fb380cc62b7fa9cf66ba"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Fri Apr 27 00:38:33 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 30 21:35:49 2012 -0400"
      },
      "message": "tcp: makes tcp_try_coalesce aware of skb-\u003ehead_frag\n\nTCP coalesce can check if skb to be merged has its skb-\u003ehead mapped to a\npage fragment, instead of a kmalloc() area.\n\nWe had to disable coalescing in this case, for performance reasons.\n\nWe \u0027upgrade\u0027 skb-\u003ehead as a fragment in itself.\n\nThis reduces number of cache misses when user makes its copies, since a\nless sk_buff are fetched.\n\nThis makes receive and ofo queues shorter and thus reduce cache line\nmisses in TCP stack.\n\nThis is a followup of patch \"net: allow skb-\u003ehead to be a page fragment\"\n\nTested with tg3 nic, with GRO on or off. We can see \"TCPRcvCoalesce\"\ncounter being incremented.\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": "1cebce36d660c83bd1353e41f3e66abd4686f215",
      "tree": "cd82ebc7c67f3d67e4de202dd3dafbb347f2324c",
      "parents": [
        "05be18241e83d2ac6b656c8f924e74b3998c173f"
      ],
      "author": {
        "name": "Yuchung Cheng",
        "email": "ycheng@google.com",
        "time": "Mon Apr 30 06:00:18 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 30 13:44:39 2012 -0400"
      },
      "message": "tcp: fix infinite cwnd in tcp_complete_cwr()\n\nWhen the cwnd reduction is done, ssthresh may be infinite\nif TCP enters CWR via ECN or F-RTO. If cwnd is not undone, i.e.,\nundo_marker is set, tcp_complete_cwr() falsely set cwnd to the\ninfinite ssthresh value. The correct operation is to keep cwnd\nintact because it has been updated in ECN or F-RTO.\n\nSigned-off-by: Yuchung Cheng \u003cycheng@google.com\u003e\nAcked-by: Neal Cardwell \u003cncardwell@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "651913ce9de2bbcedef608c5d6cf39c244248509",
      "tree": "c2c25a9e8f5c1e8e29c81f857fcbdcb5c4945f64",
      "parents": [
        "8b6efb75e9467f7c2df279cbd657f741ec3493cf"
      ],
      "author": {
        "name": "Neal Cardwell",
        "email": "ncardwell@google.com",
        "time": "Fri Apr 27 11:29:37 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 27 12:34:39 2012 -0400"
      },
      "message": "tcp: clean up use of jiffies in tcp_rcv_rtt_measure()\n\nClean up a reference to jiffies in tcp_rcv_rtt_measure() that should\ninstead reference tcp_time_stamp. Since the result of the subtraction\nis passed into a function taking u32, this should not change any\nbehavior (and indeed the generated assembly does not change on\nx86_64). However, it seems worth cleaning this up for consistency and\nclarity (and perhaps to avoid bugs if this is copied and pasted\nsomewhere else).\n\nSigned-off-by: Neal Cardwell \u003cncardwell@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "67469601406c12ced3db9956aeb0ef0854e2952f",
      "tree": "a25902d49946c394ebf110265179da2dc5b7d827",
      "parents": [
        "a85c9bb895aed633615078f69f4a4bce9e39be5f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Tue Apr 24 07:37:38 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 27 00:03:34 2012 -0400"
      },
      "message": "ipv6: RTAX_FEATURE_ALLFRAG causes inefficient TCP segment sizing\n\nQuoting Tore Anderson from :\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d42572\n\nWhen RTAX_FEATURE_ALLFRAG is set on a route, the effective TCP segment\nsize does not take into account the size of the IPv6 Fragmentation\nheader that needs to be included in outbound packets, causing every\ntransmitted TCP segment to be fragmented across two IPv6 packets, the\nlatter of which will only contain 8 bytes of actual payload.\n\nRTAX_FEATURE_ALLFRAG is typically set on a route in response to\nreceving a ICMPv6 Packet Too Big message indicating a Path MTU of less\nthan 1280 bytes. 1280 bytes is the minimum IPv6 MTU, however ICMPv6\nPTBs with MTU \u003c 1280 are still valid, in particular when an IPv6\npacket is sent to an IPv4 destination through a stateless translator.\nAny ICMPv4 Need To Fragment packets originated from the IPv4 part of\nthe path will be translated to ICMPv6 PTB which may then indicate an\nMTU of less than 1280.\n\nThe Linux kernel refuses to reduce the effective MTU to anything below\n1280 bytes, instead it sets it to exactly 1280 bytes, and\nRTAX_FEATURE_ALLFRAG is also set. However, the TCP segment size appears\nto be set to 1240 bytes (1280 Path MTU - 40 bytes of IPv6 header),\ninstead of 1232 (additionally taking into account the 8 bytes required\nby the IPv6 Fragmentation extension header).\n\nThis in turn results in rather inefficient transmission, as every\ntransmitted TCP segment now is split in two fragments containing\n1232+8 bytes of payload.\n\nAfter this patch, all the outgoing packets that includes a\nFragmentation header all are \"atomic\" or \"non-fragmented\" fragments,\ni.e., they both have Offset\u003d0 and More Fragments\u003d0.\n\nWith help from David S. Miller\n\nReported-by: Tore Anderson \u003ctore@fud.no\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Maciej Żenczykowski \u003cmaze@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nTested-by: Tore Anderson \u003ctore@fud.no\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "de248a75c35e0208294cf304b112916254b69184",
      "tree": "0d00a02fdb994f8b1cbf239c11080fec86977639",
      "parents": [
        "2d319508a3551d2995e5cd12d649821b3be00e5b"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Apr 25 23:43:04 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 26 06:13:51 2012 -0400"
      },
      "message": "tcp repair: Fix unaligned access when repairing options (v2)\n\nDon\u0027t pick __u8/__u16 values directly from raw pointers, but instead use\nan array of structures of code:value pairs. This is OK, since the buffer\nwe take options from is not an skb memory, but a user-to-kernel one.\n\nFor those options which don\u0027t require any value now, require this to be\nzero (for potential future extension of this API).\n\nv2: Changed tcp_repair_opt to use two __u32-s as spotted by David Laight.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8dcf01fc009d12d01fd195ed95eaaee61178f21a",
      "tree": "daa9665ec6c4fe8ca17232242c8b3126e7b14076",
      "parents": [
        "808db80a7eeff8314ac51654bfefc864582eea13"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "davidshan@tencent.com",
        "time": "Tue Apr 24 18:21:07 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 25 20:46:59 2012 -0400"
      },
      "message": "net: sock_diag_handler structs can be const\n\nread only, so change it to const.\n\nSigned-off-by: Shan Wei \u003cdavidshan@tencent.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62ad6fcd743792bf294f2a7ba26ab8f462065150",
      "tree": "6c8a4302149d69c5cd3933bbf09a7da5b148780e",
      "parents": [
        "202149265770426f0965557ffa0b500fbbd701dd"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "davidshan@tencent.com",
        "time": "Tue Apr 24 18:15:41 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 25 20:43:01 2012 -0400"
      },
      "message": "udp_diag: implement idiag_get_info for udp/udplite to get queue information\n\nWhen we use netlink to monitor queue information for udp socket,\nidiag_rqueue and idiag_wqueue of inet_diag_msg are returned with 0.\n\nKeep consistent with netstat, just return back allocated rmem/wmem size.\n\nSigned-off-by: Shan Wei \u003cdavidshan@tencent.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.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": "783c175f902b1ae011f12de45770e7912638ea1a",
      "tree": "7da5c4b2280c15b4d54e13ed95c1351a14800018",
      "parents": [
        "d7ccf7c0a0585a126109a4b7c2a309184bfa4cba"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Apr 23 17:34:36 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 23 23:36:58 2012 -0400"
      },
      "message": "tcp: tcp_try_coalesce returns a boolean\n\nThis clarifies code intention, as suggested by David.\n\nSuggested-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f24001941c99776f41bd3f09c07d91205c2ad9d4",
      "tree": "0ab31480ccdf343b61db045e195d096068ef7c73",
      "parents": [
        "a108d5f35adc5c5d5cdc882dc0bb920565551bff",
        "4d634ca35a8b38530b134ae92bc9e3cc9c23c030"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 23 23:14:36 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 23 23:15:17 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nFix merge between commit 3adadc08cc1e (\"net ax25: Reorder ax25_exit to\nremove races\") and commit 0ca7a4c87d27 (\"net ax25: Simplify and\ncleanup the ax25 sysctl handling\")\n\nThe former moved around the sysctl register/unregister calls, the\nlater simply removed them.\n\nWith help from Stephen Rothwell.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1402d366019fedaa2b024f2bac06b7cc9a8782e1",
      "tree": "f74c00a2308ad13d6970cdc7e5cc29d2f0f809fa",
      "parents": [
        "e29ecd51de1683e6aeb88d76251f194b0311f749"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Apr 23 07:11:42 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 23 22:42:49 2012 -0400"
      },
      "message": "tcp: introduce tcp_try_coalesce\n\ncommit c8628155ece3 (tcp: reduce out_of_order memory use) took care of\ncoalescing tcp segments provided by legacy devices (linear skbs)\n\nWe extend this idea to fragged skbs, as their truesize can be heavy.\n\nixgbe for example uses 256+1024+PAGE_SIZE/2 \u003d 3328 bytes per segment.\n\nUse this coalescing strategy for receive queue too.\n\nThis contributes to reduce number of tcp collapses, at minimal cost, and\nreduces memory overhead and packets drops.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Maciej Żenczykowski \u003cmaze@google.com\u003e\nCc: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nAcked-by: Neal Cardwell \u003cncardwell@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "da882c1f2ecadb0ed582628ec1585e36b137c0f0",
      "tree": "c89b136ec4ae978adf1078fdce199423a59ba8c0",
      "parents": [
        "f545a38f74584cc7424cb74f792a00c6d2589485"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun Apr 22 23:38:54 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 23 22:28:28 2012 -0400"
      },
      "message": "tcp: sk_add_backlog() is too agressive for TCP\n\nWhile investigating TCP performance problems on 10Gb+ links, we found a\ntcp sender was dropping lot of incoming ACKS because of sk_rcvbuf limit\nin sk_add_backlog(), especially if receiver doesnt use GRO/LRO and sends\none ACK every two MSS segments.\n\nA sender usually tweaks sk_sndbuf, but sk_rcvbuf stays at its default\nvalue (87380), allowing a too small backlog.\n\nA TCP ACK, even being small, can consume nearly same truesize space than\noutgoing packets. Using sk_rcvbuf + sk_sndbuf as a limit makes sense and\nis fast to compute.\n\nPerformance results on netperf, single flow, receiver with disabled\nGRO/LRO : 7500 Mbits instead of 6050 Mbits, no more TCPBacklogDrop\nincrements at sender.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Maciej Żenczykowski \u003cmaze@google.com\u003e\nCc: Yuchung Cheng \u003cycheng@google.com\u003e\nCc: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nCc: Rick Jones \u003crick.jones2@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f545a38f74584cc7424cb74f792a00c6d2589485",
      "tree": "b272cbfed3267a7750f55f23989e1b070ae6ac3e",
      "parents": [
        "b98985073bc5403ef1320866e4ef8bbc5d587ceb"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun Apr 22 23:34:26 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 23 22:28:28 2012 -0400"
      },
      "message": "net: add a limit parameter to sk_add_backlog()\n\nsk_add_backlog() \u0026 sk_rcvqueues_full() hard coded sk_rcvbuf as the\nmemory limit. We need to make this limit a parameter for TCP use.\n\nNo functional change expected in this patch, all callers still using the\nold sk_rcvbuf limit.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Maciej Żenczykowski \u003cmaze@google.com\u003e\nCc: Yuchung Cheng \u003cycheng@google.com\u003e\nCc: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nCc: Rick Jones \u003crick.jones2@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ac807fa8e625aff58060876d70298c93a59c4252",
      "tree": "286eb33f1eac8342857555909f03fcd930883947",
      "parents": [
        "cd754a574596ecc321b9a14fda24a82cce4b0d1d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 23 03:21:58 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 23 03:21:58 2012 -0400"
      },
      "message": "tcp: Fix build warning after tcp_{v4,v6}_init_sock consolidation.\n\nnet/ipv4/tcp_ipv4.c: In function \u0027tcp_v4_init_sock\u0027:\nnet/ipv4/tcp_ipv4.c:1891:19: warning: unused variable \u0027tp\u0027 [-Wunused-variable]\nnet/ipv6/tcp_ipv6.c: In function \u0027tcp_v6_init_sock\u0027:\nnet/ipv6/tcp_ipv6.c:1836:19: warning: unused variable \u0027tp\u0027 [-Wunused-variable]\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "900f65d361d333c949ef76a828343075f4fdf523",
      "tree": "8b4474c6c9df1fcad4d946c64bcc1535450d0927",
      "parents": [
        "e66e9a31474dcce5be6f1186dc933d8a991c707b"
      ],
      "author": {
        "name": "Neal Cardwell",
        "email": "ncardwell@google.com",
        "time": "Thu Apr 19 09:55:21 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 21 16:36:42 2012 -0400"
      },
      "message": "tcp: move duplicate code from tcp_v4_init_sock()/tcp_v6_init_sock()\n\nThis commit moves the (substantial) common code shared between\ntcp_v4_init_sock() and tcp_v6_init_sock() to a new address-family\nindependent function, tcp_init_sock().\n\nCentralizing this functionality should help avoid drift issues,\ne.g. where the IPv4 side is updated without a corresponding update to\nIPv6. There was already some drift: IPv4 initialized snd_cwnd to\nTCP_INIT_CWND, while the IPv6 side was still initializing snd_cwnd to\n2 (in this case it should not matter, since snd_cwnd is also\ninitialized in tcp_init_metrics(), but the general risks and\nmaintenance overhead remain).\n\nWhen diffing the old and new code, note that new tcp_init_sock()\nfunction uses the order of steps from the tcp_v4_init_sock()\nimplementation (the order is slightly different in\ntcp_v6_init_sock()).\n\nSigned-off-by: Neal Cardwell \u003cncardwell@google.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b139ba4e90dccbf4cd4efb112af96a5c9e0b098c",
      "tree": "c955ff09255e74b8cc991dfa6f67853668a3b3c4",
      "parents": [
        "5e6a3ce6573f0c519d1ff57df60e3877bb2d3151"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu Apr 19 03:41:57 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 21 15:52:25 2012 -0400"
      },
      "message": "tcp: Repair connection-time negotiated parameters\n\nThere are options, which are set up on a socket while performing\nTCP handshake. Need to resurrect them on a socket while repairing.\nA new sockoption accepts a buffer and parses it. The buffer should\nbe CODE:VALUE sequence of bytes, where CODE is standard option\ncode and VALUE is the respective value.\n\nOnly 4 options should be handled on repaired socket.\n\nTo read 3 out of 4 of these options the TCP_INFO sockoption can be\nused. An ability to get the last one (the mss_clamp) was added by\nthe previous patch.\n\nNow the restore. Three of these options -- timestamp_ok, mss_clamp\nand snd_wscale -- are just restored on a coket.\n\nThe sack_ok flags has 2 issues. First, whether or not to do sacks\nat all. This flag is just read and set back. No other sack  info is\nsaved or restored, since according to the standart and the code\ndropping all sack-ed segments is OK, the sender will resubmit them\nagain, so after the repair we will probably experience a pause in\nconnection. Next, the fack bit. It\u0027s just set back on a socket if\nthe respective sysctl is set. No collected stats about packets flow\nis preserved. As far as I see (plz, correct me if I\u0027m wrong) the\nfack-based congestion algorithm survives dropping all of the stats\nand repairs itself eventually, probably losing the performance for\nthat period.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5e6a3ce6573f0c519d1ff57df60e3877bb2d3151",
      "tree": "bce0733fb197e97c6697e63fb2f30dc2692ffdf3",
      "parents": [
        "c0e88ff0f256958401778ff692da4b8891acb5a9"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu Apr 19 03:41:32 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 21 15:52:25 2012 -0400"
      },
      "message": "tcp: Report mss_clamp with TCP_MAXSEG option in repair mode\n\nThe mss_clamp is the only connection-time negotiated option which\ncannot be obtained from the user space. Make the TCP_MAXSEG sockopt\nreport one in the repair mode.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c0e88ff0f256958401778ff692da4b8891acb5a9",
      "tree": "6766354e0c54da93550ffeea082f4dae77bc2c7c",
      "parents": [
        "ee9952831cfd0bbe834f4a26489d7dce74582e37"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu Apr 19 03:41:01 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 21 15:52:25 2012 -0400"
      },
      "message": "tcp: Repair socket queues\n\nReading queues under repair mode is done with recvmsg call.\nThe queue-under-repair set by TCP_REPAIR_QUEUE option is used\nto determine which queue should be read. Thus both send and\nreceive queue can be read with this.\n\nCaller must pass the MSG_PEEK flag.\n\nWriting to queues is done with sendmsg call and yet again --\nthe repair-queue option can be used to push data into the\nreceive queue.\n\nWhen putting an skb into receive queue a zero tcp header is\nappented to its head to address the tcp_hdr(skb)-\u003esyn and\nthe -\u003efin checks by the (after repair) tcp_recvmsg. These\nflags flags are both set to zero and that\u0027s why.\n\nThe fin cannot be met in the queue while reading the source\nsocket, since the repair only works for closed/established\nsockets and queueing fin packet always changes its state.\n\nThe syn in the queue denotes that the respective skb\u0027s seq\nis \"off-by-one\" as compared to the actual payload lenght. Thus,\nat the rcv queue refill we can just drop this flag and set the\nskb\u0027s sequences to precice values.\n\nWhen the repair mode is turned off, the write queue seqs are\nupdated so that the whole queue is considered to be \u0027already sent,\nwaiting for ACKs\u0027 (write_seq \u003d snd_nxt \u003c\u003d snd_una). From the\nprotocol POV the send queue looks like it was sent, but the data\nbetween the write_seq and snd_nxt is lost in the network.\n\nThis helps to avoid another sockoption for setting the snd_nxt\nsequence. Leaving the whole queue in a \u0027not yet sent\u0027 state (as\nit will be after sendmsg-s) will not allow to receive any acks\nfrom the peer since the ack_seq will be after the snd_nxt. Thus\neven the ack for the window probe will be dropped and the\nconnection will be \u0027locked\u0027 with the zero peer window.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee9952831cfd0bbe834f4a26489d7dce74582e37",
      "tree": "64c195fa45e1a200f38d68751161d8e06dfb5a6c",
      "parents": [
        "370816aef0c5436c2adbec3966038f36ca326933"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu Apr 19 03:40:39 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 21 15:52:25 2012 -0400"
      },
      "message": "tcp: Initial repair mode\n\nThis includes (according the the previous description):\n\n* TCP_REPAIR sockoption\n\nThis one just puts the socket in/out of the repair mode.\nAllowed for CAP_NET_ADMIN and for closed/establised sockets only.\nWhen repair mode is turned off and the socket happens to be in\nthe established state the window probe is sent to the peer to\n\u0027unlock\u0027 the connection.\n\n* TCP_REPAIR_QUEUE sockoption\n\nThis one sets the queue which we\u0027re about to repair. The\n\u0027no-queue\u0027 is set by default.\n\n* TCP_QUEUE_SEQ socoption\n\nSets the write_seq/rcv_nxt of a selected repaired queue.\nAllowed for TCP_CLOSE-d sockets only. When the socket changes\nits state the other seq-s are changed by the kernel according\nto the protocol rules (most of the existing code is actually\nreused).\n\n* Ability to forcibly bind a socket to a port\n\nThe sk-\u003esk_reuse is set to SK_FORCE_REUSE.\n\n* Immediate connect modification\n\nThe connect syscall initializes the connection, then directly jumps\nto the code which finalizes it.\n\n* Silent close modification\n\nThe close just aborts the connection (similar to SO_LINGER with 0\ntime) but without sending any FIN/RST-s to peer.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "370816aef0c5436c2adbec3966038f36ca326933",
      "tree": "665f8b3b0818aa7aa4f653072d89d1dcfb91a55f",
      "parents": [
        "4a17fd5229c1b6066aa478f6b690f8293ce811a1"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu Apr 19 03:40:01 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 21 15:52:25 2012 -0400"
      },
      "message": "tcp: Move code around\n\nThis is just the preparation patch, which makes the needed for\nTCP repair code ready for use.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4a17fd5229c1b6066aa478f6b690f8293ce811a1",
      "tree": "f6acd00935d2d7a990befb4c77f57fdf39f46689",
      "parents": [
        "59c55bdde856c4000bbeb33ba212c3df6f1997a4"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu Apr 19 03:39:36 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 21 15:52:25 2012 -0400"
      },
      "message": "sock: Introduce named constants for sk_reuse\n\nName them in a \"backward compatible\" manner, i.e. reuse or not\nare still 1 and 0 respectively. The reuse value of 2 means that\nthe socket with it will forcibly reuse everyone else\u0027s port.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a5347fe36b313c07d59b065d00a8fa56362c5f97",
      "tree": "8778711b514baca6f5686777c0dea245a8874711",
      "parents": [
        "ec8f23ce0f4005b74013d4d122e0d540397a93c9"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Apr 19 13:45:29 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 20 21:22:30 2012 -0400"
      },
      "message": "net: Delete all remaining instances of ctl_path\n\nWe don\u0027t use struct ctl_path anymore so delete the exported constants.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ec8f23ce0f4005b74013d4d122e0d540397a93c9",
      "tree": "c2f22aa08ad4c0197d3cb41b91cf8d436794fde1",
      "parents": [
        "f99e8f715a5c7ebad5410b1e9b4d744ddb284f54"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Apr 19 13:44:49 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 20 21:22:30 2012 -0400"
      },
      "message": "net: Convert all sysctl registrations to register_net_sysctl\n\nThis results in code with less boiler plate that is a bit easier\nto read.\n\nAdditionally stops us from using compatibility code in the sysctl\ncore, hastening the day when the compatibility code can be removed.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f99e8f715a5c7ebad5410b1e9b4d744ddb284f54",
      "tree": "82c244a36233aeca19284caa308ca094b88ecade",
      "parents": [
        "8607ddb86711df4504a028cc88299d334b786bf3"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Apr 19 13:43:55 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 20 21:22:30 2012 -0400"
      },
      "message": "net: Convert nf_conntrack_proto to use register_net_sysctl\n\nThere isn\u0027t much advantage here except that strings paths are a bit\neasier to read, and converting everything to them allows me to kill off\nctl_path.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8607ddb86711df4504a028cc88299d334b786bf3",
      "tree": "fd00eeef53049f1ae1928ba9b06253ab343b3c77",
      "parents": [
        "6105e29320f662bf2f2358e2b2ff1bbf599f387f"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Apr 19 13:42:09 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 20 21:22:30 2012 -0400"
      },
      "message": "net ipv4: Convert devinet to use register_net_sysctl\n\nUsing an ascii path to register_net_sysctl as opposed to the slightly\nawkward ctl_path allows for much simpler code.\n\nWe no longer need to malloc dev_name to keep it alive the length of our\nsysctl register instead we can use a small temporary buffer on the\nstack.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4e5ca78541c549ec8886ad2fc19306f35ee672e1",
      "tree": "8e3119cc1710d20cd4f672e1f91b4adedbd5fab0",
      "parents": [
        "a5287acc6ca3c69821ab4c5439be8c0ff30a20cb"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Apr 19 13:32:39 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 20 21:21:18 2012 -0400"
      },
      "message": "net ipv4: Remove the unneeded registration of an empty net/ipv4/neigh\n\nsysctl no longer requires explicit creation of directories.  The neigh\ndirectory is always populated with at least a default entry so this\nwon\u0027t cause any user visible changes.\n\nDelete the ipv4_path and the ipv4_skeleton these are no longer needed.\n\nDirectly register the ipv4_route_table.\n\nAnd since I am an idiot remove the header definitions that I should\nhave removed in the previous patch.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5dd3df105b9f6cb7dd2472b59e028d0d1c878ecb",
      "tree": "b12606e6e74ee6d07823eb268e09d899946279fd",
      "parents": [
        "4344475797a16ef948385780943f7a5cf09f0675"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Apr 19 13:24:33 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 20 21:21:17 2012 -0400"
      },
      "message": "net: Move all of the network sysctls without a namespace into init_net.\n\nThis makes it clearer which sysctls are relative to your current network\nnamespace.\n\nThis makes it a little less error prone by not exposing sysctls for the\ninitial network namespace in other namespaces.\n\nThis is the same way we handle all of our other network interfaces to\nuserspace and I can\u0027t honestly remember why we didn\u0027t do this for\nsysctls right from the start.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4344475797a16ef948385780943f7a5cf09f0675",
      "tree": "1cd80eae7c46a1e3f2f5c546212d84d007a5dffa",
      "parents": [
        "2ca794e5e86c800d7f98c4ebb8bd325099c0afe8"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Apr 19 13:22:55 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 20 21:21:17 2012 -0400"
      },
      "message": "net: Kill register_sysctl_rotable\n\nregister_sysctl_rotable never caught on as an interesting way to\nregister sysctls.  My take on the situation is that what we want are\nsysctls that we can only see in the initial network namespace.  What we\nhave implemented with register_sysctl_rotable are sysctls that we can\nsee in all of the network namespaces and can only change in the initial\nnetwork namespace.\n\nThat is a very silly way to go.  Just register the network sysctls\nin the initial network namespace and we don\u0027t have any weird special\ncases to deal with.\n\nThe sysctls affected are:\n/proc/sys/net/ipv4/ipfrag_secret_interval\n/proc/sys/net/ipv4/ipfrag_max_dist\n/proc/sys/net/ipv6/ip6frag_secret_interval\n/proc/sys/net/ipv6/mld_max_msf\n\nI really don\u0027t expect anyone will miss them if they can\u0027t read them in a\nchild user namespace.\n\nCC: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cbf8f7bb200f5dbdc9ce11243431440720db03dc",
      "tree": "b201bbf2310041bef68118552a7d05edcdb45e9a",
      "parents": [
        "daa86548281ec9364eac2925bdf907f861204a5b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Thu Apr 19 06:10:26 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 19 14:25:51 2012 -0400"
      },
      "message": "ipv4: dont drop packet in defrag but consume it\n\nWhen defragmentation is finalized, we clone a packet and kfree_skb() it.\n\nCall consume_skb() to not confuse dropwatch, since its not a drop.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7426a5645f3d18daec1f7d6a24b529ec7286b800",
      "tree": "77abfbb9413d9e18a7592fd5890f76c7189dc9d6",
      "parents": [
        "59e26eff48745287d648ed4606fe2cc66a75991f"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "davidshan@tencent.com",
        "time": "Wed Apr 18 18:05:46 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 19 00:11:39 2012 -0400"
      },
      "message": "net: fix compile error of leaking kmemleak.h header\n\nnet/core/sysctl_net_core.c: In function ‘sysctl_core_init’:\nnet/core/sysctl_net_core.c:259: error: implicit declaration of function ‘kmemleak_not_leak’\n\nwith same error in net/ipv4/route.c\n\nSigned-off-by: Shan Wei \u003cdavidshan@tencent.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "22b4a4f22da4b39c6f7f679fd35f3d35c91bf851",
      "tree": "6cd9d5d169384e39c030e18f75c1b1e0d792e5bd",
      "parents": [
        "56fa9b16303b0a3bad88ff528c4d5ff54d8cdb47"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Apr 18 10:14:23 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 18 16:52:45 2012 -0400"
      },
      "message": "tcp: fix retransmit of partially acked frames\n\nAlexander Beregalov reported skb_over_panic errors and provided stack\ntrace.\n\nI occurs commit a21d45726aca (tcp: avoid order-1 allocations on wifi and\ntx path) added a regression, when a retransmit is done after a partial\nACK.\n\ntcp_retransmit_skb() tries to aggregate several frames if the first one\nhas enough available room to hold the following ones payload. This is\ncontrolled by /proc/sys/net/ipv4/tcp_retrans_collapse tunable (default :\nenabled)\n\nProblem is we must make sure _pskb_trim_head() doesnt fool\nskb_availroom() when pulling some bytes from skb (this pull is done when\nreceiver ACK part of the frame).\n\nReported-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Marc MERLIN \u003cmarc@merlins.org\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7f593881089084640bffeb93c9cc49077afcec81",
      "tree": "888db46e3bf9b6b089b7da41665f34b1558a4693",
      "parents": [
        "85bba52de16e00161b757567a7f1af12dc1e526a"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Mon Apr 16 19:33:31 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 18 00:20:28 2012 -0400"
      },
      "message": "net/ipv4:Remove two memleak reports by kmemleak_not_leak.\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4d846f02392a710f9604892ac3329e628e60a230",
      "tree": "8c8a8cd663914e546b324d0657fdfad2c8becdee",
      "parents": [
        "48159f009f5f92ef5962e7c278ac615d74242fa5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Apr 16 23:28:07 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 17 22:32:00 2012 -0400"
      },
      "message": "tcp: fix tcp_grow_window() for large incoming frames\n\ntcp_grow_window() has to grow rcv_ssthresh up to window_clamp, allowing\nsender to increase its window.\n\ntcp_grow_window() still assumes a tcp frame is under MSS, but its no\nlonger true with LRO/GRO.\n\nThis patch fixes one of the performance issue we noticed with GRO on.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nAcked-by: Neal Cardwell \u003cncardwell@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "95c961747284a6b83a5e2d81240e214b0fa3464d",
      "tree": "c7be86a00db3605a48a03109fafcbe31039ca2e0",
      "parents": [
        "5e73ea1a31c3612aa6dfe44f864ca5b7b6a4cff9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Apr 15 05:58:06 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 15 12:44:40 2012 -0400"
      },
      "message": "net: cleanup unsigned to unsigned int\n\nUse of \"unsigned int\" is preferred to bare \"unsigned\" in net tree.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5e73ea1a31c3612aa6dfe44f864ca5b7b6a4cff9",
      "tree": "ab5eebe93e10e7e69042b15603a5b3844c049f6b",
      "parents": [
        "586d17c5a01bf1ae4e215adc6c48457eee5482bc"
      ],
      "author": {
        "name": "Daniel Baluta",
        "email": "dbaluta@ixiacom.com",
        "time": "Sun Apr 15 01:34:41 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 15 12:37:19 2012 -0400"
      },
      "message": "ipv4: fix checkpatch errors\n\nFix checkpatch errors of the following type:\n\t* ERROR: \"foo * bar\" should be \"foo *bar\"\n\t* ERROR: \"(foo*)\" should be \"(foo *)\"\n\nSigned-off-by: Daniel Baluta \u003cdbaluta@ixiacom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a8cb05b238e0edfd7c63f496d9ce3e238ea68a16",
      "tree": "d917bec3758b7b129d1def6053a995c07cb43f05",
      "parents": [
        "aacd9289af8b82f5fb01bcdd53d0e3406d1333c7"
      ],
      "author": {
        "name": "Vijay Subramanian",
        "email": "subramanian.vijay@gmail.com",
        "time": "Fri Apr 13 13:23:59 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 14 15:29:02 2012 -0400"
      },
      "message": "tcp: Remove redundant code entering quickack mode\n\ntcp_enter_quickack_mode() already calls tcp_incr_quickack() and sets\nicsk-\u003eicsk_ack.ato  to TCP_ATO_MIN. This patch removes the duplication.\n\nSigned-off-by: Vijay Subramanian \u003csubramanian.vijay@gmail.com\u003e\nReviewed-by: Flavio Leitner \u003cfbl@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aacd9289af8b82f5fb01bcdd53d0e3406d1333c7",
      "tree": "d918d09ce942b52f707676e0a648e5c6a84de1b4",
      "parents": [
        "c72e118334a2590f4f07d9e51490b902c33f5280"
      ],
      "author": {
        "name": "Alex Copot",
        "email": "alex.mihai.c@gmail.com",
        "time": "Thu Apr 12 22:21:45 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 14 15:28:55 2012 -0400"
      },
      "message": "tcp: bind() use stronger condition for bind_conflict\n\nWe must try harder to get unique (addr, port) pairs when\ndoing port autoselection for sockets with SO_REUSEADDR\noption set.\n\nWe achieve this by adding a relaxation parameter to\ninet_csk_bind_conflict. When \u0027relax\u0027 parameter is off\nwe return a conflict whenever the current searched\npair (addr, port) is not unique.\n\nThis tries to address the problems reported in patch:\n\t8d238b25b1ec22a73b1c2206f111df2faaff8285\n\tRevert \"tcp: bind() fix when many ports are bound\"\n\nTests where ran for creating and binding(0) many sockets\non 100 IPs. The results are, on average:\n\n\t* 60000 sockets, 600 ports / IP:\n\t\t* 0.210 s, 620 (IP, port) duplicates without patch\n\t\t* 0.219 s, no duplicates with patch\n\t* 100000 sockets, 1000 ports / IP:\n\t\t* 0.371 s, 1720 duplicates without patch\n\t\t* 0.373 s, no duplicates with patch\n\t* 200000 sockets, 2000 ports / IP:\n\t\t* 0.766 s, 6900 duplicates without patch\n\t\t* 0.768 s, no duplicates with patch\n\t* 500000 sockets, 5000 ports / IP:\n\t\t* 2.227 s, 41500 duplicates without patch\n\t\t* 2.284 s, no duplicates with patch\n\nSigned-off-by: Alex Copot \u003calex.mihai.c@gmail.com\u003e\nSigned-off-by: Daniel Baluta \u003cdbaluta@ixiacom.com\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c72e118334a2590f4f07d9e51490b902c33f5280",
      "tree": "d8974faaaf6afa5afe2b771e3a5390ee6ec97c21",
      "parents": [
        "fd4f2cead6983735a4e6283126b9276873d7ff09"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Thu Apr 12 22:16:05 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 14 15:24:26 2012 -0400"
      },
      "message": "inet: makes syn_ack_timeout mandatory\n\nThere are two struct request_sock_ops providers, tcp and dccp.\n\ninet_csk_reqsk_queue_prune() can avoid testing syn_ack_timeout being\nNULL if we make it non NULL like syn_ack_timeout\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nCc: dccp@vger.kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fd4f2cead6983735a4e6283126b9276873d7ff09",
      "tree": "2b5313230f3abe2b678230d4182cc6d2f2870062",
      "parents": [
        "eff98db027c50f1e4ad14f1d9069d55e5f7e4319"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Apr 12 19:48:40 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 14 15:24:26 2012 -0400"
      },
      "message": "tcp: RFC6298 supersedes RFC2988bis\n\nUpdates some comments to track RFC6298\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: H.K. Jerry Chu \u003chkchu@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "87b6d218f3adb00e6b58c7f96f8b5a74ff91abb4",
      "tree": "0a8108621afcaf9549a05a33ca08adb4a810b257",
      "parents": [
        "64d683c5825003ffb3b127057a165e6bfc26691e"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Apr 12 06:31:16 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 14 14:47:05 2012 -0400"
      },
      "message": "tunnel: implement 64 bits statistics\n\nConvert the per-cpu statistics kept for GRE, IPIP, and SIT tunnels\nto use 64 bit statistics.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "447167bf565a474ff0cfb0f41d54936937479e97",
      "tree": "38b03cb4e23bec19939545575e36f7395c5b156e",
      "parents": [
        "77577bf93275b485cecb4f358a085949c32e9dcd"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Apr 11 23:05:28 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 13 13:39:37 2012 -0400"
      },
      "message": "udp: intoduce udp_encap_needed static_key\n\nMost machines dont use UDP encapsulation (L2TP)\n\nAdds a static_key so that udp_queue_rcv_skb() doesnt have to perform a\ntest if L2TP never setup the encap_rcv on a socket.\n\nIdea of this patch came after Simon Horman proposal to add a hook on TCP\nas well.\n\nIf static_key is not yet enabled, the fast path does a single JMP .\n\nWhen static_key is enabled, JMP destination is patched to reach the real\nencap_type/encap_rcv logic, possibly adding cache misses.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nCc: dev@openvswitch.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "011e3c63251be832d23df9f0697626ab7b354d02",
      "tree": "2cad5b58c274c93ae49d9b58fb15d784d4dfd78f",
      "parents": [
        "c1412fce7eccae62b4de22494f6ab3ff8a90c0c6",
        "ecca5c3acc0d0933d89abc44e60afb0cc8170e35"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 12 19:41:23 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 12 19:41:23 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "174808af90a06ee59ffedd60c00c252f1f887f25",
      "tree": "5e026fdc0d2b4d66c0a79267e5755e10d6d04bd8",
      "parents": [
        "778c2dee6f134bf0472ed45eedaee53b4f336afb",
        "5d949944229b0a08e218723be231731cd86b94f3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 12 14:04:33 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 12 14:04:33 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull networking fixes from David Miller:\n\n 1) Fix bluetooth userland regression reported by Keith Packard, from\n    Gustavo Padovan.\n\n 2) Revert ath9k PS idle change, from Sujith Manoharan.\n\n 3) Correct default TCP memory limits (again), from Eric Dumazet.\n\n 4) Fix tcp_rcv_rtt_update() accidental use of unscaled RTT, from Neal\n    Cardwell.\n\n 5) We made a facility for layers like wireless to say how much tailroom\n    they need in the SKB for link layer stuff such as wireless\n    encryption etc., but TCP works hard to fill every SKB out to the end\n    defeating this specification.\n\n    This leads to every TCP packet getting reallocated by the wireless\n    code in order to have the right amount of tailroom available.\n\n    Fix TCP to only fill SKBs out to the real amount of data area it\n    asked for during the allocation, this way it won\u0027t eat into the\n    slack added for the device\u0027s tailroom needs.\n\n    Reported by Marc Merlin and fixed by Eric Dumazet.\n\n 6) Leaks, endian bugs, and new device IDs in bluetooth from Santosh\n    Nayak, João Paulo Rechi Vita, Cho, Yu-Chen, Andrei Emeltchenko,\n    AceLan Kao, and Andrei Emeltchenko.\n\n 7) OOPS on tty_close fix in bluetooth\u0027s hci_ldisc from Johan Hovold.\n\n 8) netfilter erroneously scales TCP window twice, fix from Changli Gao.\n\n 9) Memleak fix in wext-core from Julia Lawall.\n\n10) Consistently handle invalid TCP packets in ipv4 vs.  ipv6 conntrack,\n    from Jozsef Kadlecsik.\n\n11) Validate IP header length properly in netfilter conntrack\u0027s\n    ipv4_get_l4proto().\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (39 commits)\n  NFC: Fix the LLCP Tx fragmentation loop\n  rtlwifi: Add missing DMA buffer unmapping for PCI drivers\n  rtlwifi: Preallocate USB read buffers and eliminate kalloc in read routine\n  tcp: avoid order-1 allocations on wifi and tx path\n  net: allow pskb_expand_head() to get maximum tailroom\n  bridge: Do not send queries on multicast group leaves\n  MAINTAINERS: Mark NATSEMI driver as orphan\u0027d.\n  tcp: fix tcp_rcv_rtt_update() use of an unscaled RTT sample\n  tcp: restore correct limit\n  Revert \"ath9k: fix going to full-sleep on PS idle\"\n  rt2x00: Fix rfkill_polling register function.\n  bcma: fix build error on MIPS; implicit pcibios_enable_device\n  netfilter: nf_conntrack: fix incorrect logic in nf_conntrack_init_net\n  netfilter: nf_ct_ipv4: packets with wrong ihl are invalid\n  netfilter: nf_ct_ipv4: handle invalid IPv4 and IPv6 packets consistently\n  net/wireless/wext-core.c: add missing kfree\n  rtlwifi: Fix oops on rate-control failure\n  mac80211: Convert WARN_ON to WARN_ON_ONCE\n  rtlwifi: rtl8192de: Fix firmware initialization\n  nl80211: ensure interface is up in various APIs\n  ...\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": "94fb175c0414902ad9dbd956addf3a5feafbc85b",
      "tree": "5d3c37abe78f072e92072f2079a98303c92cf16e",
      "parents": [
        "a9e1e53bcfb29b3b503a5e75ce498d9a64f32c1e",
        "a2bd1140a264b561e38d99e656cd843c2d840e86"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 10 15:30:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 10 15:30:16 2012 -0700"
      },
      "message": "Merge tag \u0027dmaengine-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/dmaengine\n\nPull dmaengine fixes from Dan Williams:\n\n1/ regression fix for Xen as it now trips over a broken assumption\n   about the dma address size on 32-bit builds\n\n2/ new quirk for netdma to ignore dma channels that cannot meet\n   netdma alignment requirements\n\n3/ fixes for two long standing issues in ioatdma (ring size overflow)\n   and iop-adma (potential stack corruption)\n\n* tag \u0027dmaengine-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/dmaengine:\n  netdma: adding alignment check for NETDMA ops\n  ioatdma: DMA copy alignment needed to address IOAT DMA silicon errata\n  ioat: ring size variables need to be 32bit to avoid overflow\n  iop-adma: Corrected array overflow in RAID6 Xscale(R) test.\n  ioat: fix size of \u0027completion\u0027 for Xen\n"
    },
    {
      "commit": "18a223e0b9ec8979320ba364b47c9772391d6d05",
      "tree": "0028fe1163490ced0dcf3d72384fba0e37cf085e",
      "parents": [
        "5fb84b1428b271f8767e0eb3fcd7231896edfaa4"
      ],
      "author": {
        "name": "Neal Cardwell",
        "email": "ncardwell@google.com",
        "time": "Tue Apr 10 07:59:20 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 10 14:47:09 2012 -0400"
      },
      "message": "tcp: fix tcp_rcv_rtt_update() use of an unscaled RTT sample\n\nFix a code path in tcp_rcv_rtt_update() that was comparing scaled and\nunscaled RTT samples.\n\nThe intent in the code was to only use the \u0027m\u0027 measurement if it was a\nnew minimum.  However, since \u0027m\u0027 had not yet been shifted left 3 bits\nbut \u0027new_sample\u0027 had, this comparison would nearly always succeed,\nleading us to erroneously set our receive-side RTT estimate to the \u0027m\u0027\nsample when that sample could be nearly 8x too high to use.\n\nThe overall effect is to often cause the receive-side RTT estimate to\nbe significantly too large (up to 40% too large for brief periods in\nmy tests).\n\nSigned-off-by: Neal Cardwell \u003cncardwell@google.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5fb84b1428b271f8767e0eb3fcd7231896edfaa4",
      "tree": "4e27fb488ee9a0ecc4fca1c736dc5415cebbe59c",
      "parents": [
        "ecd159fc5f415fa742d5daa5b43200606e6ad493"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Apr 10 00:56:42 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 10 14:39:26 2012 -0400"
      },
      "message": "tcp: restore correct limit\n\nCommit c43b874d5d714f (tcp: properly initialize tcp memory limits) tried\nto fix a regression added in commits 4acb4190 \u0026 3dc43e3,\nbut still get it wrong.\n\nResult is machines with low amount of memory have too small tcp_rmem[2]\nvalue and slow tcp receives : Per socket limit being 1/1024 of memory\ninstead of 1/128 in old kernels, so rcv window is capped to small\nvalues.\n\nFix this to match comment and previous behavior.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Jason Wang \u003cjasowang@redhat.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "06eb4eafbdc0796d741d139a44f1253278da8611",
      "tree": "fbdb44317130c371928154c9e6903e699fe2b995",
      "parents": [
        "32ed53b83ea5ec26a4dba90e18f5e0ff6c71eb48",
        "f68e556e23d1a4176b563bcb25d8baf2c5313f91"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 10 14:30:45 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 10 14:30:45 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "1d62e43657c63a858560c98069706c705d20505d",
      "tree": "8b55403e0cf1efaab0c0fd7a2e53751dd21f1ebd",
      "parents": [
        "48ddbe194623ae089cc0576e60363f2d2e85662a"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Mon Apr 09 19:36:33 2012 -0300"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 10 10:04:07 2012 -0700"
      },
      "message": "cgroup: pass struct mem_cgroup instead of struct cgroup to socket memcg\n\nThe only reason cgroup was used, was to be consistent with the populate()\ninterface. Now that we\u0027re getting rid of it, not only we no longer need\nit, but we also *can\u0027t* call it this way.\n\nSince we will no longer rely on populate(), this will be called from\ncreate(). During create, the association between struct mem_cgroup\nand struct cgroup does not yet exist, since cgroup internals hasn\u0027t\nyet initialized its bookkeeping. This means we would not be able\nto draw the memcg pointer from the cgroup pointer in these\nfunctions, which is highly undesirable.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCC: Li Zefan \u003clizefan@huawei.com\u003e\nCC: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCC: Michal Hocko \u003cmhocko@suse.cz\u003e\n"
    },
    {
      "commit": "07153c6ec074257ade76a461429b567cff2b3a1e",
      "tree": "ca918b6b18835b650ad4a9fed8bc08b1e6c6d273",
      "parents": [
        "8430eac2f6a3c2adce22d490e2ab8bb50d59077a"
      ],
      "author": {
        "name": "Jozsef Kadlecsik",
        "email": "kadlec@blackhole.kfki.hu",
        "time": "Tue Apr 03 22:02:01 2012 +0200"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue Apr 10 12:50:49 2012 +0200"
      },
      "message": "netfilter: nf_ct_ipv4: packets with wrong ihl are invalid\n\nIt was reported that the Linux kernel sometimes logs:\n\nklogd: [2629147.402413] kernel BUG at net / netfilter /\nnf_conntrack_proto_tcp.c: 447!\nklogd: [1072212.887368] kernel BUG at net / netfilter /\nnf_conntrack_proto_tcp.c: 392\n\nipv4_get_l4proto() in nf_conntrack_l3proto_ipv4.c and tcp_error() in\nnf_conntrack_proto_tcp.c should catch malformed packets, so the errors\nat the indicated lines - TCP options parsing - should not happen.\nHowever, tcp_error() relies on the \"dataoff\" offset to the TCP header,\ncalculated by ipv4_get_l4proto().  But ipv4_get_l4proto() does not check\nbogus ihl values in IPv4 packets, which then can slip through tcp_error()\nand get caught at the TCP options parsing routines.\n\nThe patch fixes ipv4_get_l4proto() by invalidating packets with bogus\nihl value.\n\nThe patch closes netfilter bugzilla id 771.\n\nSigned-off-by: Jozsef Kadlecsik \u003ckadlec@blackhole.kfki.hu\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "8430eac2f6a3c2adce22d490e2ab8bb50d59077a",
      "tree": "0513c19811d4a34a122155351ee5728572ddadaf",
      "parents": [
        "95ad2f873d5d404dc9ebc2377de0b762346346c0"
      ],
      "author": {
        "name": "Jozsef Kadlecsik",
        "email": "kadlec@blackhole.kfki.hu",
        "time": "Mon Apr 09 16:32:16 2012 +0200"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue Apr 10 00:38:34 2012 +0200"
      },
      "message": "netfilter: nf_ct_ipv4: handle invalid IPv4 and IPv6 packets consistently\n\nIPv6 conntrack marked invalid packets as INVALID and let the user\ndrop those by an explicit rule, while IPv4 conntrack dropped such\npackets itself.\n\nIPv4 conntrack is changed so that it marks INVALID packets and let\nthe user to drop them.\n\nSigned-off-by: Jozsef Kadlecsik \u003ckadlec@blackhole.kfki.hu\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "35f9c09fe9c72eb8ca2b8e89a593e1c151f28fc2",
      "tree": "6e57508d6633c47b8846cfdbaefc33e6e0128a47",
      "parents": [
        "78d50217baf36093ab320f95bae0d6452daec85c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Apr 05 03:05:35 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 05 19:04:27 2012 -0400"
      },
      "message": "tcp: tcp_sendpages() should call tcp_push() once\n\ncommit 2f533844242 (tcp: allow splice() to build full TSO packets) added\na regression for splice() calls using SPLICE_F_MORE.\n\nWe need to call tcp_flush() at the end of the last page processed in\ntcp_sendpages(), or else transmits can be deferred and future sends\nstall.\n\nAdd a new internal flag, MSG_SENDPAGE_NOTLAST, acting like MSG_MORE, but\nwith different semantic.\n\nFor all sendpage() providers, its a transparent change. Only\nsock_sendpage() and tcp_sendpages() can differentiate the two different\nflags provided by pipe_to_sendpage()\n\nReported-by: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Nandita Dukkipati \u003cnanditad@google.com\u003e\nCc: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Yuchung Cheng \u003cycheng@google.com\u003e\nCc: H.K. Jerry Chu \u003chkchu@google.com\u003e\nCc: Maciej Żenczykowski \u003cmaze@google.com\u003e\nCc: Mahesh Bandewar \u003cmaheshb@google.com\u003e\nCc: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail\u003ecom\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a2bd1140a264b561e38d99e656cd843c2d840e86",
      "tree": "9c9f19dde5c0213a52de0e77c16059062cc6c8a1",
      "parents": [
        "f26df1a1a9452573af7b6cea9a4723593e838568"
      ],
      "author": {
        "name": "Dave Jiang",
        "email": "dave.jiang@intel.com",
        "time": "Wed Apr 04 16:10:46 2012 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Thu Apr 05 15:27:12 2012 -0700"
      },
      "message": "netdma: adding alignment check for NETDMA ops\n\nThis is the fallout from adding memcpy alignment workaround for certain\nIOATDMA hardware. NetDMA will only use DMA engine that can handle byte align\nops.\n\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Dave Jiang \u003cdave.jiang@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "ce713ee5a10f3a171df94b0d501034aab2388c16",
      "tree": "fc51b89dc562d3b49bc6db964f405fda0575c03d",
      "parents": [
        "51c56b004e2c9a46207bb8a116589c2f84b92e5d"
      ],
      "author": {
        "name": "RongQing.Li",
        "email": "roy.qing.li@gmail.com",
        "time": "Thu Apr 05 17:36:29 2012 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 05 05:42:18 2012 -0400"
      },
      "message": "net: replace continue with break to reduce unnecessary loop in xxx_xmarksources\n\nThe conditional which decides to skip inactive filters does not\nchange with the change of loop index, so it is unnecessary to\ncheck them many times.\n\nSigned-off-by: RongQing.Li \u003croy.qing.li@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "d4a968658ce7417d78638387343b6197839111af"
}
