)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "2f53384424251c06038ae612e56231b96ab610ee",
      "tree": "e3524210033983e5727c88e21bb3e6a766b20ae4",
      "parents": [
        "e675f0cc9a872fd152edc0c77acfed19bf28b81e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Apr 03 09:37:01 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 03 17:35:43 2012 -0400"
      },
      "message": "tcp: allow splice() to build full TSO packets\n\nvmsplice()/splice(pipe, socket) call do_tcp_sendpages() one page at a\ntime, adding at most 4096 bytes to an skb. (assuming PAGE_SIZE\u003d4096)\n\nThe call to tcp_push() at the end of do_tcp_sendpages() forces an\nimmediate xmit when pipe is not already filled, and tso_fragment() try\nto split these skb to MSS multiples.\n\n4096 bytes are usually split in a skb with 2 MSS, and a remaining\nsub-mss skb (assuming MTU\u003d1500)\n\nThis makes slow start suboptimal because many small frames are sent to\nqdisc/driver layers instead of big ones (constrained by cwnd and packets\nin flight of course)\n\nIn fact, applications using sendmsg() (adding an additional memory copy)\ninstead of vmsplice()/splice()/sendfile() are a bit faster because of\nthis anomaly, especially if serving small files in environments with\nlarge initial [c]wnd.\n\nCall tcp_push() only if MSG_MORE is not set in the flags parameter.\n\nThis bit is automatically provided by splice() internals but for the\nlast page, or on all pages if user specified SPLICE_F_MORE splice()\nflag.\n\nIn some workloads, this can reduce number of sent logical packets by an\norder of magnitude, making zero-copy TCP actually faster than\none-copy :)\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": "afd465030acb4098abcb6b965a5aebc7ea2209e0",
      "tree": "59c93e8eda99cd59339dfbb77f1d2c4f79c634ee",
      "parents": [
        "058bd4d2a4ff0aaa4a5381c67e776729d840c785"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Mar 12 07:03:32 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 12 17:05:21 2012 -0700"
      },
      "message": "net: ipv4: Standardize prefixes for message logging\n\nAdd #define pr_fmt(fmt) as appropriate.\n\nAdd \"IPv4: \", \"TCP: \", and \"IPsec: \" to appropriate files.\nStandardize on \"UDPLite: \" for appropriate uses.\nSome prefixes were previously \"UDPLITE: \" and \"UDP-Lite: \".\n\nAdd KBUILD_MODNAME \": \" to icmp and gre.\nRemove embedded prefixes as appropriate.\n\nAdd missing \"\\n\" to pr_info in gre.c.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "058bd4d2a4ff0aaa4a5381c67e776729d840c785",
      "tree": "4d1ea864a8740676c7e7c5a03cdaa67fc5f29418",
      "parents": [
        "43db362d3adda9e0a915ddb9a8d1a41186e19179"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Mar 11 18:36:11 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 11 23:42:51 2012 -0700"
      },
      "message": "net: Convert printks to pr_\u003clevel\u003e\n\nUse a more current kernel messaging style.\n\nConvert a printk block to print_hex_dump.\nCoalesce formats, align arguments.\nUse %s, __func__ instead of embedding function names.\n\nSome messages that were prefixed with \u003cfoo\u003e_close are\nnow prefixed with \u003cfoo\u003e_fini.  Some ah4 and esp messages\nare now not prefixed with \"ip \".\n\nThe intent of this patch is to later add something like\n  #define pr_fmt(fmt) \"IPv4: \" fmt.\nto standardize the output messages.\n\nText size is trivially reduced. (x86-32 allyesconfig)\n\n$ size net/ipv4/built-in.o*\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n 887888\t  31558\t 249696\t1169142\t 11d6f6\tnet/ipv4/built-in.o.new\n 887934\t  31558\t 249800\t1169292\t 11d78c\tnet/ipv4/built-in.o.old\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "074b85175a43a23fdbde60f55feea636e0bf0f85",
      "tree": "e6f6fdd82854b2bf25ea5b404cee010806a8fced",
      "parents": [
        "1d6f2097865e64963e90cce04980dce2f9fc023f"
      ],
      "author": {
        "name": "Dimitri Sivanich",
        "email": "sivanich@sgi.com",
        "time": "Wed Feb 08 12:39:07 2012 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 13 20:45:38 2012 -0500"
      },
      "message": "vfs: fix panic in __d_lookup() with high dentry hashtable counts\n\nWhen the number of dentry cache hash table entries gets too high\n(2147483648 entries), as happens by default on a 16TB system, use of a\nsigned integer in the dcache_init() initialization loop prevents the\ndentry_hashtable from getting initialized, causing a panic in\n__d_lookup().  Fix this in dcache_init() and similar areas.\n\nSigned-off-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c43b874d5d714f271b80d4c3f49e05d0cbf51ed2",
      "tree": "c56f3500327b081228d4c7369d39740e9bb4a0a9",
      "parents": [
        "786f528119722f564a22ad953411374e06116333"
      ],
      "author": {
        "name": "Jason Wang",
        "email": "jasowang@redhat.com",
        "time": "Thu Feb 02 00:07:00 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 02 14:34:41 2012 -0500"
      },
      "message": "tcp: properly initialize tcp memory limits\n\nCommit 4acb4190 tries to fix the using uninitialized value\nintroduced by commit 3dc43e3,  but it would make the\nper-socket memory limits too small.\n\nThis patch fixes this and also remove the redundant codes\nintroduced in 4acb4190.\n\nSigned-off-by: Jason Wang \u003cjasowang@redhat.com\u003e\nAcked-by: Glauber Costa \u003cglommer@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "efcdbf24fd5daa88060869e51ed49f68b7ac8708",
      "tree": "8c771a1ef2c93f1ba959709d6ffb4fd56af53699",
      "parents": [
        "48c3883999cb06246911e29356d194f96f1c75ef"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Mon Jan 30 14:16:06 2012 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 01 14:41:50 2012 -0500"
      },
      "message": "net: Disambiguate kernel message\n\nSome of our machines were reporting:\n\nTCP: too many of orphaned sockets\n\neven when the number of orphaned sockets was well below the\nlimit.\n\nWe print a different message depending on whether we\u0027re out\nof TCP memory or there are too many orphaned sockets.\n\nAlso move the check out of line and cleanup the messages\nthat were printed.\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nSuggested-by: Mohan Srinivasan \u003cmohan@fb.com\u003e\nCc: netdev@vger.kernel.org\nCc: linux-kernel@vger.kernel.org\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4acb41903b2f99f3dffd4c3df9acc84ca5942cb2",
      "tree": "3a2dc1739d654effecd86749e49a40d41019e645",
      "parents": [
        "8a8ee9aff6c3077dd9c2c7a77478e8ed362b96c6"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Mon Jan 30 01:20:17 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 30 12:41:06 2012 -0500"
      },
      "message": "net/tcp: Fix tcp memory limits initialization when !CONFIG_SYSCTL\n\nsysctl_tcp_mem() initialization was moved to sysctl_tcp_ipv4.c\nin commit 3dc43e3e4d0b52197d3205214fe8f162f9e0c334, since it\nbecame a per-ns value.\n\nThat code, however, will never run when CONFIG_SYSCTL is\ndisabled, leading to bogus values on those fields - causing hung\nTCP sockets.\n\nThis patch fixes it by keeping an initialization code in\ntcp_init(). It will be overwritten by the first net namespace\ninit if CONFIG_SYSCTL is compiled in, and do the right thing if\nit is compiled out.\n\nIt is also named properly as tcp_init_mem(), to properly signal\nits non-sysctl side effect on TCP limits.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nLink: http://lkml.kernel.org/r/4F22D05A.8030604@parallels.com\n[ renamed the function, tidied up the changelog a bit ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3dc43e3e4d0b52197d3205214fe8f162f9e0c334",
      "tree": "1770affeb483a6b4f06cde9f2a2f1289b41496d6",
      "parents": [
        "d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Sun Dec 11 21:47:05 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 12 19:04:11 2011 -0500"
      },
      "message": "per-netns ipv4 sysctl_tcp_mem\n\nThis patch allows each namespace to independently set up\nits levels for tcp memory pressure thresholds. This patch\nalone does not buy much: we need to make this values\nper group of process somehow. This is achieved in the\npatches that follows in this patchset.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCC: David S. Miller \u003cdavem@davemloft.net\u003e\nCC: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a5912db7b4f9c3ff3bd0dbb67f36484a3b21a35",
      "tree": "7613fdb0ea204f9b55662d850bb83a722fb89532",
      "parents": [
        "b474ae77609b725098d5a7cc8f69c1c528710d53"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Dec 05 01:07:15 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 05 18:30:03 2011 -0500"
      },
      "message": "tcp: remove TCP_OFF and TCP_PAGE macros\n\nAs mentioned by Joe Perches, TCP_OFF() and TCP_PAGE() macros are\nuseless.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "761965eab38d2cbc59c36e355c59609e3a04705a",
      "tree": "53bc45ee752f8d31323962e5af2e0451376c3b35",
      "parents": [
        "117632e64d2a5f464e491fe221d7169a3814a77b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Dec 04 07:05:17 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 04 13:20:40 2011 -0500"
      },
      "message": "tcp: tcp_sendmsg() page recycling\n\nIf our TCP_PAGE(sk) is not shared (page_count() \u003d\u003d 1), we can set page\noffset to 0.\n\nThis permits better filling of the pages on small to medium tcp writes.\n\n\"tbench 16\" results on my dev server (2x4x2 machine) :\n\nBefore : 3072 MB/s\nAfter  : 3146 MB/s  (2.4 % gain)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f07d960df33c5aef8f513efce0fd201f962f94a1",
      "tree": "33f1313283e85a642f4126029e47e4ec1f606282",
      "parents": [
        "4d77d2b567ec66a443792d99e96ac760991d80d0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Nov 28 22:41:47 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 29 13:17:03 2011 -0500"
      },
      "message": "tcp: avoid frag allocation for small frames\n\ntcp_sendmsg() uses select_size() helper to choose skb head size when a\nnew skb must be allocated.\n\nIf GSO is enabled for the socket, current strategy is to force all\npayload data to be outside of headroom, in PAGE fragments.\n\nThis strategy is not welcome for small packets, wasting memory.\n\nExperiments show that best results are obtained when using 2048 bytes\nfor skb head (This includes the skb overhead and various headers)\n\nThis patch provides better len/truesize ratios for packets sent to\nloopback device, and reduce memory needs for in-flight loopback packets,\nparticularly on arches with big pages.\n\nIf a sender sends many 1-byte packets to an unresponsive application,\nreceiver rmem_alloc will grow faster and will stop queuing these packets\nsooner, or will collapse its receive queue to free excess memory.\n\nnetperf -t TCP_RR results are improved by ~4 %, and many workloads are\nimproved as well (tbench, mysql...)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "690e99c4ba73fc18643b38fa032022b8758ad4d3",
      "tree": "73745636f1b9cab69eb2738f84f4b0d4cb36db5f",
      "parents": [
        "8b7ff200010600ef7cd9d002f9f8f97edfc7578e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Nov 28 00:27:47 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 28 18:58:24 2011 -0500"
      },
      "message": "tcp: tcp_sendmsg() wrong access to sk_route_caps\n\nNow sk_route_caps is u64, its dangerous to use an integer to store\nresult of an AND operator. It wont work if NETIF_F_SG is moved on the\nupper part of u64.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c8f44affb7244f2ac3e703cab13d55ede27621bb",
      "tree": "62e7aea2916a8d7cab825fe500670c5113854c0f",
      "parents": [
        "a59e2ecb859f2ab03bb2e230709f8039472ad2c3"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Nov 15 15:29:55 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 16 17:43:10 2011 -0500"
      },
      "message": "net: introduce and use netdev_features_t for device features sets\n\nv2:\tadd couple missing conversions in drivers\n\tsplit unexporting netdev_fix_features()\n\timplemented %pNF\n\tconvert sock::sk_route_(no?)caps\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "78d81d15b74246c7cedf84894434890b33da3907",
      "tree": "cf2dd0b8d51204c4a956f443adaa2c90732aa0b0",
      "parents": [
        "8b1857357acd919b9a7fa391afbea30123fdfaec"
      ],
      "author": {
        "name": "Flavio Leitner",
        "email": "fbl@redhat.com",
        "time": "Mon Oct 24 08:15:10 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 24 17:36:08 2011 -0400"
      },
      "message": "TCP: remove TCP_DEBUG\n\nIt was enabled by default and the messages guarded\nby the define are useful.\n\nSigned-off-by: Flavio Leitner \u003cfbl@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ca35a0ef85e8ed6df6d5ab01fb6c3530cca0c469",
      "tree": "3a6d0c107ec48823bb3e437f1f91d2276facb46d",
      "parents": [
        "01718e36df750670d0f840932a4d166522ead6c3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 24 01:52:35 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 24 01:52:35 2011 -0400"
      },
      "message": "tcp: md5: dont write skb head in tcp_md5_hash_header()\n\ntcp_md5_hash_header() writes into skb header a temporary zero value,\nthis might confuse other users of this area.\n\nSince tcphdr is small (20 bytes), copy it in a temporary variable and\nmake the change in the copy.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf533ea53ebfae41be15b103d78e7ebec30b9969",
      "tree": "51ed3c69f4a15117fefe5cbd291a75010beb0f4b",
      "parents": [
        "f04565ddf52e401880f8ba51de0dff8ba51c99fd"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 21 05:22:42 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 21 05:22:42 2011 -0400"
      },
      "message": "tcp: add const qualifiers where possible\n\nAdding const qualifiers to pointers can ease code review, and spot some\nbugs. It might allow compiler to optimize code further.\n\nFor example, is it legal to temporary write a null cksum into tcphdr\nin tcp_md5_hash_header() ? I am afraid a sniffer could catch the\ntemporary null value...\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9e903e085262ffbf1fc44a17ac06058aca03524a",
      "tree": "4acefc97ba38c1733474d25c0b2053b56af97db1",
      "parents": [
        "dd767856a36e00b631d65ebc4bb81b19915532d6"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Oct 18 21:00:24 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 19 03:10:46 2011 -0400"
      },
      "message": "net: add skb frag size accessors\n\nTo ease skb-\u003etruesize sanitization, its better to be able to localize\nall references to skb frags size.\n\nDefine accessors : skb_frag_size() to fetch frag size, and\nskb_frag_size_{set|add|sub}() to manipulate it.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b5c5693bb723a019deac3cd1345f3e7233c8a67e",
      "tree": "e5136c3e7a6efee0453f2012882e0d95eed7672d",
      "parents": [
        "0654011d900670884197d9a06ad17b378dfde831"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 03 14:01:21 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 03 14:01:21 2011 -0400"
      },
      "message": "tcp: report ECN_SEEN in tcp_info\n\nAllows ss command (iproute2) to display \"ecnseen\" if at least one packet\nwith ECT(0) or ECT(1) or ECN was received by this socket.\n\n\"ecn\" means ECN was negotiated at session establishment (TCP level)\n\n\"ecnseen\" means we received at least one packet with ECT fields set (IP\nlevel)\n\nss -i\n...\nESTAB      0      0   192.168.20.110:22  192.168.20.144:38016\nino:5950 sk:f178e400\n\t mem:(r0,w0,f0,t0) ts sack ecn ecnseen bic wscale:7,8 rto:210\nrtt:12.5/7.5 cwnd:10 send 9.3Mbps rcv_space:14480\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4de075e0438ba54b8f42cbbc1263d404229dc997",
      "tree": "dc2400d1539cb462e9b441d841577e8bc8f0048d",
      "parents": [
        "b82d1bb4fd206ed305f9e955eeffc4a678149442"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Sep 27 13:25:05 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 27 13:25:05 2011 -0400"
      },
      "message": "tcp: rename tcp_skb_cb flags\n\nRename struct tcp_skb_cb \"flags\" to \"tcp_flags\" to ease code review and\nmaintenance.\n\nIts content is a combination of FIN/SYN/RST/PSH/ACK/URG/ECE/CWR flags\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "765cf9976e937f1cfe9159bf4534967c8bf8eb6d",
      "tree": "671d57668c3f10a22e76704ad6d2c9f0a2e1f9f1",
      "parents": [
        "b9fa1fbf98178c8bbda23ff1d3ed0731bb3c0bd1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Sep 12 20:28:37 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 17 01:15:46 2011 -0400"
      },
      "message": "tcp: md5: remove one indirection level in tcp_md5sig_pool\n\ntcp_md5sig_pool is currently an \u0027array\u0027 (a percpu object) of pointers to\nstruct tcp_md5sig_pool. Only the pointers are NUMA aware, but objects\nthemselves are all allocated on a single node.\n\nRemove this extra indirection to get proper percpu memory (NUMA aware)\nand make code simpler.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aff65da0f1be5daec44231972b6b5fc45bfa7a58",
      "tree": "71c557deaf7a07ad1dbb1b52ff5593c8e75a8ebb",
      "parents": [
        "ea2ab69379a941c6f8884e290fdd28c93936a778"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "Ian.Campbell@citrix.com",
        "time": "Mon Aug 22 23:44:59 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 24 17:52:11 2011 -0700"
      },
      "message": "net: ipv4: convert to SKB frag APIs\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nCc: \"Pekka Savola (ipv6)\" \u003cpekkas@netcore.fi\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Hideaki YOSHIFUJI \u003cyoshfuji@linux-ipv6.org\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nCc: netdev@vger.kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f03d78db65085609938fdb686238867e65003181",
      "tree": "03b8e492d91ad6819a44e0d454af2292e884964c",
      "parents": [
        "eebb02b1f03b3722d678bfcb560f3b26661ab0d2"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jul 07 00:27:05 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 07 00:27:05 2011 -0700"
      },
      "message": "net: refine {udp|tcp|sctp}_mem limits\n\nCurrent tcp/udp/sctp global memory limits are not taking into account\nhugepages allocations, and allow 50% of ram to be used by buffers of a\nsingle protocol [ not counting space used by sockets / inodes ...]\n\nLets use nr_free_buffer_pages() and allow a default of 1/8 of kernel ram\nper protocol, and a minimum of 128 pages.\nHeavy duty machines sysadmins probably need to tweak limits anyway.\n\n\nReferences: https://bugzilla.stlinux.com/show_bug.cgi?id\u003d38032\nReported-by: starlight \u003cstarlight@binnacle.cx\u003e\nSuggested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c6e1a0d12ca7b4f22c58e55a16beacfb7d3d8462",
      "tree": "6955c20538050329d0bdffdf24a787507ae6fdf1",
      "parents": [
        "14f98f258f1936e0dba77474bd7eda63f61a9826"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Mon Apr 04 22:30:30 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 04 22:30:30 2011 -0700"
      },
      "message": "net: Allow no-cache copy from user on transmit\n\nThis patch uses __copy_from_user_nocache on transmit to bypass data\ncache for a performance improvement.  skb_add_data_nocache and\nskb_copy_to_page_nocache can be called by sendmsg functions to use\nthis feature, initial support is in tcp_sendmsg.  This functionality is\nconfigurable per device using ethtool.\n\nPresumably, this feature would only be useful when the driver does\nnot touch the data.  The feature is turned on by default if a device\nindicates that it does some form of checksum offload; it is off by\ndefault for devices that do no checksum offload or indicate no checksum\nis necessary.  For the former case copy-checksum is probably done\nanyway, in the latter case the device is likely loopback in which case\nthe no cache copy is probably not beneficial.\n\nThis patch was tested using 200 instances of netperf TCP_RR with\n1400 byte request and one byte reply.  Platform is 16 core AMD x86.\n\nNo-cache copy disabled:\n   672703 tps, 97.13% utilization\n   50/90/99% latency:244.31 484.205 1028.41\n\nNo-cache copy enabled:\n   702113 tps, 96.16% utilization,\n   50/90/99% latency 238.56 467.56 956.955\n\nUsing 14000 byte request and response sizes demonstrate the\neffects more dramatically:\n\nNo-cache copy disabled:\n   79571 tps, 34.34 %utlization\n   50/90/95% latency 1584.46 2319.59 5001.76\n\nNo-cache copy enabled:\n   83856 tps, 34.81% utilization\n   50/90/95% latency 2508.42 2622.62 2735.88\n\nNote especially the effect on latency tail (95th percentile).\n\nThis seems to provide a nice performance improvement and is\nconsistent in the tests I ran.  Presumably, this would provide\nthe greatest benfits in the presence of an application workload\nstressing the cache and a lot of transmit data happening.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2f4e1b3970973bbb57cc3a3b9d67e67c1c648c37",
      "tree": "d7b4d7d64ed8a02c3cd10064eb9d8e177d2be5c3",
      "parents": [
        "ee3f1aaf930b7cfbf3d34eff1e5e076393227e90"
      ],
      "author": {
        "name": "Mario Schuknecht",
        "email": "m.schuknecht@dresearch.de",
        "time": "Wed Mar 09 14:08:09 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 14:08:09 2011 -0800"
      },
      "message": "tcp: ioctl type SIOCOUTQNSD returns amount of data not sent\n\nIn contrast to SIOCOUTQ which returns the amount of data sent\nbut not yet acknowledged plus data not yet sent this patch only\nreturns the data not sent.\n\nFor various methods of live streaming bitrate control it may\nbe helpful to know how much data are in the tcp outqueue are\nnot sent yet.\n\nSigned-off-by: Mario Schuknecht \u003cm.schuknecht@dresearch.de\u003e\nSigned-off-by: Steffen Sledz \u003csledz@dresearch.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "089c34827e52346f0303d1e6a7b744c1f4da3095",
      "tree": "79f42bd0c4782aca57f3fe9d0f941f5c04b566a4",
      "parents": [
        "81146ec1b85067e70b71e81b5ecd9998ce054c0e"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "shanwei@cn.fujitsu.com",
        "time": "Sat Feb 19 21:55:45 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 20 11:10:14 2011 -0800"
      },
      "message": "tcp: Remove debug macro of TCP_CHECK_TIMER\n\nNow, TCP_CHECK_TIMER is not used for debuging, it does nothing.\nAnd, it has been there for several years, maybe 6 years.\n\nRemove it to keep code clearer.\n\nSigned-off-by: Shan Wei \u003cshanwei@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "04ed3e741d0f133e02bed7fa5c98edba128f90e7",
      "tree": "3dde4ca8306e98536faa69bccf0e47a2549c088f",
      "parents": [
        "57422dc530115e427dff464cc0a32bcd0efb5008"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Mon Jan 24 15:32:47 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 24 15:32:47 2011 -0800"
      },
      "message": "net: change netdev-\u003efeatures to u32\n\nQuoting Ben Hutchings: we presumably won\u0027t be defining features that\ncan only be enabled on 64-bit architectures.\n\nOccurences found by `grep -r` on net/, drivers/net, include/\n\n[ Move features and vlan_features next to each other in\n  struct netdev, as per Eric Dumazet\u0027s suggestion -DaveM ]\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fe6c791570efe717946ea7b7dd50aec96b70d551",
      "tree": "1becb5e8aea7a9c9a7d78f987bd73b0a5d8ee434",
      "parents": [
        "f8bf5681cf15f77692c8ad8cb95d059ff7c622c9",
        "f19872575ff7819a3723154657a497d9bca66b33"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 08 13:15:38 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 08 13:47:38 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/wireless/ath/ath9k/ar9003_eeprom.c\n\tnet/llc/af_llc.c\n"
    },
    {
      "commit": "c39508d6f118308355468314ff414644115a07f3",
      "tree": "c69cfd271855fa4b81398f9ddcb3dc286489d71a",
      "parents": [
        "4448008eb12f4b6bb9993584de8ec1d20b708d6f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 24 11:47:22 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 24 11:47:22 2010 -0800"
      },
      "message": "tcp: Make TCP_MAXSEG minimum more correct.\n\nUse TCP_MIN_MSS instead of constant 64.\n\nReported-by: Min Zhang \u003cmzhang@mvista.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c25ecd0a21d5e08160cb5cc984f9e2b8ee347443",
      "tree": "0e4dcacf1bf603f259b8d27445a10e60fa8d00d7",
      "parents": [
        "190683a9d5457e6d962c232ffbecac3ab158dddd",
        "9457b24a0955bbdd2e89220a75de69fe09501bba"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 14 11:57:05 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 14 11:57:05 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "7a1abd08d52fdeddb3e9a5a33f2f15cc6a5674d2",
      "tree": "f566af2a622e5416056c70633576a1a46b8bf6aa",
      "parents": [
        "8d987e5c75107ca7515fa19e857cfa24aab6ec8f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 10 21:35:37 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 10 21:35:37 2010 -0800"
      },
      "message": "tcp: Increase TCP_MAXSEG socket option minimum.\n\nAs noted by Steve Chen, since commit\nf5fff5dc8a7a3f395b0525c02ba92c95d42b7390 (\"tcp: advertise MSS\nrequested by user\") we can end up with a situation where\ntcp_select_initial_window() does a divide by a zero (or\neven negative) mss value.\n\nThe problem is that sometimes we effectively subtract\nTCPOLEN_TSTAMP_ALIGNED and/or TCPOLEN_MD5SIG_ALIGNED from the mss.\n\nFix this by increasing the minimum from 8 to 64.\n\nReported-by: Steve Chen \u003cschen@mvista.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d987e5c75107ca7515fa19e857cfa24aab6ec8f",
      "tree": "6392c5f08f0df39d42a079336f6be3960ac404dc",
      "parents": [
        "67286640f638f5ad41a946b9a3dc75327950248f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 09 23:24:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 10 12:12:00 2010 -0800"
      },
      "message": "net: avoid limits overflow\n\nRobin Holt tried to boot a 16TB machine and found some limits were\nreached : sysctl_tcp_mem[2], sysctl_udp_mem[2]\n\nWe can switch infrastructure to use long \"instead\" of \"int\", now\natomic_long_t primitives are available for free.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nReported-by: Robin Holt \u003cholt@sgi.com\u003e\nReviewed-by: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2af6fd8b18ceed416c9dfa675287c765aabf7d43",
      "tree": "6ddfb64096961839e0cf5a349ff8ff977ca9d542",
      "parents": [
        "b194a3674fba6d9f9e470084d192c7cb99194a62"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sat Oct 30 11:08:53 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 09 09:22:32 2010 -0800"
      },
      "message": "net/ipv4/tcp.c: Update WARN uses\n\nCoalesce long formats.\nAlign arguments.\nRemove KERN_\u003clevel\u003e.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "21a180cda012e1f93e362dd4a9b0bfd3d8c92940",
      "tree": "0e0d10baa3fdcd8ffbc6881076ff1695808dad9d",
      "parents": [
        "c7d4426a98a5f6654cd0b4b33d9dab2e77192c18",
        "51e97a12bef19b7e43199fc153cf9bd5f2140362"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 04 11:56:38 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 04 11:56:38 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/ipv4/Kconfig\n\tnet/ipv4/tcp_timer.c\n"
    },
    {
      "commit": "01db403cf99f739f86903314a489fb420e0e254f",
      "tree": "bf04fbfb3ed88d6cf7abeea1ab5209be36907882",
      "parents": [
        "0b20406cda621c2495d10baab1e87127ceb43337"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 20:24:54 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 20:24:54 2010 -0700"
      },
      "message": "tcp: Fix \u003e4GB writes on 64-bit.\n\nFixes kernel bugzilla #16603\n\ntcp_sendmsg() truncates iov_len to an \u0027int\u0027 which a 4GB write to write\nzero bytes, for example.\n\nThere is also the problem higher up of how verify_iovec() works.  It\nwants to prevent the total length from looking like an error return\nvalue.\n\nHowever it does this using \u0027int\u0027, but syscalls return \u0027long\u0027 (and\nthus signed 64-bit on 64-bit machines).  So it could trigger\nfalse-positives on 64-bit as written.  So fix it to use \u0027long\u0027.\n\nReported-by: Olaf Bonorden \u003cbono@onlinehome.de\u003e\nReported-by: Daniel Büse \u003cdbuese@gmx.de\u003e\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e40051d134f7ee95c8c1f7a3471e84eafc9ab326",
      "tree": "88eb44e49a75721ae926665a2c42f08badac9d07",
      "parents": [
        "42099d7a3941d4aaf853caac92b3ae76149fc6e7",
        "2cc6d2bf3d6195fabcf0febc192c01f99519a8f3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 01:03:03 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 01:03:03 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/qlcnic/qlcnic_init.c\n\tnet/ipv4/ip_output.c\n"
    },
    {
      "commit": "a4d258036ed9b2a1811c3670c6099203a0f284a0",
      "tree": "58412022664aef745a99d254d20cf1a66aabda44",
      "parents": [
        "9828e6e6e3f19efcb476c567b9999891d051f52f"
      ],
      "author": {
        "name": "Tom Marshall",
        "email": "tdm.code@gmail.com",
        "time": "Mon Sep 20 15:42:05 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 20 15:42:05 2010 -0700"
      },
      "message": "tcp: Fix race in tcp_poll\n\nIf a RST comes in immediately after checking sk-\u003esk_err, tcp_poll will\nreturn POLLIN but not POLLOUT.  Fix this by checking sk-\u003esk_err at the end\nof tcp_poll.  Additionally, ensure the correct order of operations on SMP\nmachines with memory barriers.\n\nSigned-off-by: Tom Marshall \u003ctdm.code@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e548833df83c3554229eff0672900bfe958b45fd",
      "tree": "85efc4a76dc356593d6d394776aeb845dc580fb6",
      "parents": [
        "cbd9da7be869f676afc204e1a664163778c770bd",
        "053d8f6622701f849fda2ca2c9ae596c13599ba9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 09 22:27:33 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 09 22:27:33 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/mac80211/main.c\n"
    },
    {
      "commit": "dca43c75e7e545694a9dd6288553f55c53e2a3a3",
      "tree": "4df6b0b295ecd571fa95004b486d9af1636d6a30",
      "parents": [
        "409456b10f87b28303643fec37543103f9ada00c"
      ],
      "author": {
        "name": "Jerry Chu",
        "email": "hkchu@google.com",
        "time": "Fri Aug 27 19:13:28 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 30 13:23:33 2010 -0700"
      },
      "message": "tcp: Add TCP_USER_TIMEOUT socket option.\n\nThis patch provides a \"user timeout\" support as described in RFC793. The\nsocket option is also needed for the the local half of RFC5482 \"TCP User\nTimeout Option\".\n\nTCP_USER_TIMEOUT is a TCP level socket option that takes an unsigned int,\nwhen \u003e 0, to specify the maximum amount of time in ms that transmitted\ndata may remain unacknowledged before TCP will forcefully close the\ncorresponding connection and return ETIMEDOUT to the application. If\n0 is given, TCP will continue to use the system default.\n\nIncreasing the user timeouts allows a TCP connection to survive extended\nperiods without end-to-end connectivity. Decreasing the user timeouts\nallows applications to \"fail fast\" if so desired. Otherwise it may take\nupto 20 minutes with the current system defaults in a normal WAN\nenvironment.\n\nThe socket option can be made during any state of a TCP connection, but\nis only effective during the synchronized states of a connection\n(ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, or LAST-ACK).\nMoreover, when used with the TCP keepalive (SO_KEEPALIVE) option,\nTCP_USER_TIMEOUT will overtake keepalive to determine when to close a\nconnection due to keepalive failure.\n\nThe option does not change in anyway when TCP retransmits a packet, nor\nwhen a keepalive probe will be sent.\n\nThis option, like many others, will be inherited by an acceptor from its\nlistener.\n\nSigned-off-by: H.K. Jerry Chu \u003chkchu@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d84ba638e4ba3c40023ff997aa5e8d3ed002af36",
      "tree": "45bff01d15301cb6fc2f27d53fdfcbbf1f2355b1",
      "parents": [
        "c5ed63d66f24fd4f7089b5a6e087b0ce7202aa8e"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Aug 24 16:05:48 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 25 23:02:48 2010 -0700"
      },
      "message": "tcp: select(writefds) don\u0027t hang up when a peer close connection\n\nThis issue come from ruby language community. Below test program\nhang up when only run on Linux.\n\n\t% uname -mrsv\n\tLinux 2.6.26-2-486 #1 Sat Dec 26 08:37:39 UTC 2009 i686\n\t% ruby -rsocket -ve \u0027\n\tBasicSocket.do_not_reverse_lookup \u003d true\n\tserv \u003d TCPServer.open(\"127.0.0.1\", 0)\n\ts1 \u003d TCPSocket.open(\"127.0.0.1\", serv.addr[1])\n\ts2 \u003d serv.accept\n\ts2.close\n\ts1.write(\"a\") rescue p $!\n\ts1.write(\"a\") rescue p $!\n\tThread.new {\n\t  s1.write(\"a\")\n\t}.join\u0027\n\truby 1.9.3dev (2010-07-06 trunk 28554) [i686-linux]\n\t#\u003cErrno::EPIPE: Broken pipe\u003e\n\t[Hang Here]\n\nFreeBSD, Solaris, Mac doesn\u0027t. because Ruby\u0027s write() method call\nselect() internally. and tcp_poll has a bug.\n\nSUS defined \u0027ready for writing\u0027 of select() as following.\n\n|  A descriptor shall be considered ready for writing when a call to an output\n|  function with O_NONBLOCK clear would not block, whether or not the function\n|  would transfer data successfully.\n\nThat said, EPIPE situation is clearly one of \u0027ready for writing\u0027.\n\nWe don\u0027t have read-side issue because tcp_poll() already has read side\nshutdown care.\n\n|        if (sk-\u003esk_shutdown \u0026 RCV_SHUTDOWN)\n|                mask |\u003d POLLIN | POLLRDNORM | POLLRDHUP;\n\nSo, Let\u0027s insert same logic in write side.\n\n- reference url\n  http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/31065\n  http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/31068\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c5ed63d66f24fd4f7089b5a6e087b0ce7202aa8e",
      "tree": "140df25fef28c94f9ec1e5c29b4a8d0876da2fe8",
      "parents": [
        "ad1af0fedba14f82b240a03fe20eb9b2fdbd0357"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Aug 25 23:02:17 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 25 23:02:17 2010 -0700"
      },
      "message": "tcp: fix three tcp sysctls tuning\n\nAs discovered by Anton Blanchard, current code to autotune \ntcp_death_row.sysctl_max_tw_buckets, sysctl_tcp_max_orphans and\nsysctl_max_syn_backlog makes little sense.\n\nThe bigger a page is, the less tcp_max_orphans is : 4096 on a 512GB\nmachine in Anton\u0027s case.\n\n(tcp_hashinfo.bhash_size * sizeof(struct inet_bind_hashbucket))\nis much bigger if spinlock debugging is on. Its wrong to select bigger\nlimits in this case (where kernel structures are also bigger)\n\nbhash_size max is 65536, and we get this value even for small machines. \n\nA better ground is to use size of ehash table, this also makes code\nshorter and more obvious.\n\nBased on a patch from Anton, and another from David.\n\nReported-and-tested-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ad1af0fedba14f82b240a03fe20eb9b2fdbd0357",
      "tree": "4d53aa8bc2d9df782aa792e52670ab55c7a44d5b",
      "parents": [
        "b2bc85631e72485b984bcd202a104591874babba"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 25 02:27:49 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 25 02:27:49 2010 -0700"
      },
      "message": "tcp: Combat per-cpu skew in orphan tests.\n\nAs reported by Anton Blanchard when we use\npercpu_counter_read_positive() to make our orphan socket limit checks,\nthe check can be off by up to num_cpus_online() * batch (which is 32\nby default) which on a 128 cpu machine can be as large as the default\norphan limit itself.\n\nFix this by doing the full expensive sum check if the optimized check\ntriggers.\n\nReported-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n"
    },
    {
      "commit": "00dad5e479531e379aba7358600cc768725d4f1f",
      "tree": "652199eacee32c2cf317f5a54da8265973d29978",
      "parents": [
        "c477d0447db08068a497e7beb892b2b2a7bff64b",
        "3a3dfb062c2e086c202d34f09ce29634515ad256"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 02 22:22:46 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 02 22:22:46 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/e1000e/hw.h\n\tnet/bridge/br_device.c\n\tnet/bridge/br_input.c\n"
    },
    {
      "commit": "3c0fef0b7d36e5f8d3ea3731a8228102274e3c23",
      "tree": "71e201a342dcd11946891da0d900e7fd81a23217",
      "parents": [
        "99e6d06521f2a522ff5aaa812552f68220507c67"
      ],
      "author": {
        "name": "Josh Hunt",
        "email": "johunt@akamai.com",
        "time": "Fri Jul 30 13:49:35 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 02 17:25:06 2010 -0700"
      },
      "message": "net: Add getsockopt support for TCP thin-streams\n\nInitial TCP thin-stream commit did not add getsockopt support for the new\nsocket options: TCP_THIN_LINEAR_TIMEOUTS and TCP_THIN_DUPACK. This adds support\nfor them.\n\nSigned-off-by: Josh Hunt \u003cjohunt@akamai.com\u003e\nTested-by: Andreas Petlund \u003capetlund@simula.no\u003e\nAcked-by: Andreas Petlund \u003capetlund@simula.no\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a3bdb549e30e7a263f7a589747c40e9c50110315",
      "tree": "ac14f82ebe454fdbc00c3f1298a293e03e1f1592",
      "parents": [
        "eeaf61d8891f9c9ed12c1a667e72bf83f0857954"
      ],
      "author": {
        "name": "Dmitry Popov",
        "email": "dp@highloadlab.com",
        "time": "Thu Jul 29 01:59:36 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 30 23:04:07 2010 -0700"
      },
      "message": "tcp: cookie transactions setsockopt memory leak\n\nThere is a bug in do_tcp_setsockopt(net/ipv4/tcp.c),\nTCP_COOKIE_TRANSACTIONS case.\nIn some cases (when tp-\u003ecookie_values \u003d\u003d NULL) new tcp_cookie_values\nstructure can be allocated (at cvp), but not bound to\ntp-\u003ecookie_values. So a memory leak occurs.\n\nSigned-off-by: Dmitry Popov \u003cdp@highloadlab.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "11fe883936980fe242869d671092a466cf1db3e3",
      "tree": "14ff24e81eb4326e94eb5aa6432a1dd55cef5ece",
      "parents": [
        "70d4bf6d467a330ccc947df9b2608e329d9e7708",
        "573201f36fd9c7c6d5218cdcd9948cee700b277d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 20 18:25:24 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 20 18:25:24 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/vhost/net.c\n\tnet/bridge/br_device.c\n\nFix merge conflict in drivers/vhost/net.c with guidance from\nStephen Rothwell.\n\nRevert the effects of net-2.6 commit 573201f36fd9c7c6d5218cdcd9948cee700b277d\nsince net-next-2.6 has fixes that make bridge netpoll work properly thus\nwe don\u0027t need it disabled.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3a047bf87b1b6f69c62ab9fb28072c639cb7e2fa",
      "tree": "b134b9942d2b378b1afd81b07ffdfb948cd1439e",
      "parents": [
        "d809ec895505e6f35fb1965f0946381ab4eaa474"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Mon Jul 12 21:00:12 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 14 14:45:15 2010 -0700"
      },
      "message": "rfs: call sock_rps_record_flow() in tcp_splice_read()\n\nrfs: call sock_rps_record_flow() in tcp_splice_read()\n\ncall sock_rps_record_flow() in tcp_splice_read(), so the applications using\nsplice(2) or sendfile(2) can utilize RFS.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\n----\n net/ipv4/tcp.c |    1 +\n 1 file changed, 1 insertion(+)\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7ba42910073f8432934d61a6c08b1023c408fb62",
      "tree": "4f74648133eaf6cbea26d59c43d34e7153648f5d",
      "parents": [
        "53d3176b282cc105493babb0fef36c8b873f6201"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Sat Jul 10 20:41:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 12 20:21:46 2010 -0700"
      },
      "message": "inet, inet6: make tcp_sendmsg() and tcp_sendpage() through inet_sendmsg() and inet_sendpage()\n\na new boolean flag no_autobind is added to structure proto to avoid the autobind\ncalls when the protocol is TCP. Then sock_rps_record_flow() is called int the\nTCP\u0027s sendmsg() and sendpage() pathes.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\n----\n include/net/inet_common.h |    4 ++++\n include/net/sock.h        |    1 +\n include/net/tcp.h         |    8 ++++----\n net/ipv4/af_inet.c        |   15 +++++++++------\n net/ipv4/tcp.c            |   11 +++++------\n net/ipv4/tcp_ipv4.c       |    3 +++\n net/ipv6/af_inet6.c       |    8 ++++----\n net/ipv6/tcp_ipv6.c       |    3 +++\n 8 files changed, 33 insertions(+), 20 deletions(-)\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4bc2f18ba4f22a90ab593c0a580fc9a19c4777b6",
      "tree": "bb39f427bd468d0e34a73ebc788db726406fa261",
      "parents": [
        "ba80a2522899ea71a5b201bae60bdfd99126af95"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Jul 09 21:22:10 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 12 12:57:54 2010 -0700"
      },
      "message": "net/ipv4: EXPORT_SYMBOL cleanups\n\nCodingStyle cleanups\n\nEXPORT_SYMBOL should immediately follow the symbol declaration.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7a9b2d59507d85569b8a456688ef40cf2ac73e48",
      "tree": "436533da6f680a0b4b6860e0219a2e594ac16735",
      "parents": [
        "b6b3ecc71a0664d44ed8d087d583aee98fbf492a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jun 24 00:52:37 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 28 23:24:29 2010 -0700"
      },
      "message": "net: use this_cpu_ptr()\n\nuse this_cpu_ptr(p) instead of per_cpu_ptr(p, smp_processor_id())\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "565b7b2d2e632b5792879c0c9cccdd9eecd31195",
      "tree": "f5bbe0e7a2719f6076a567cb3a68ff47f0c4bcb9",
      "parents": [
        "7a938f80264f2cbfb0c0841b450eab42a8093281"
      ],
      "author": {
        "name": "Konstantin Khorenko",
        "email": "khorenko@openvz.org",
        "time": "Thu Jun 24 21:54:58 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 24 21:54:58 2010 -0700"
      },
      "message": "tcp: do not send reset to already closed sockets\n\ni\u0027ve found that tcp_close() can be called for an already closed\nsocket, but still sends reset in this case (tcp_send_active_reset())\nwhich seems to be incorrect.  Moreover, a packet with reset is sent\nwith different source port as original port number has been already\ncleared on socket.  Besides that incrementing stat counter for\nLINUX_MIB_TCPABORTONCLOSE also does not look correct in this case.\n\nInitially this issue was found on 2.6.18-x RHEL5 kernel, but the same\nseems to be true for the current mainstream kernel (checked on\n2.6.35-rc3).  Please, correct me if i missed something.\n\nHow that happens:\n\n1) the server receives a packet for socket in TCP_CLOSE_WAIT state\n   that triggers a tcp_reset():\n\nCall Trace:\n \u003cIRQ\u003e  [\u003cffffffff8025b9b9\u003e] tcp_reset+0x12f/0x1e8\n [\u003cffffffff80046125\u003e] tcp_rcv_state_process+0x1c0/0xa08\n [\u003cffffffff8003eb22\u003e] tcp_v4_do_rcv+0x310/0x37a\n [\u003cffffffff80028bea\u003e] tcp_v4_rcv+0x74d/0xb43\n [\u003cffffffff8024ef4c\u003e] ip_local_deliver_finish+0x0/0x259\n [\u003cffffffff80037131\u003e] ip_local_deliver+0x200/0x2f4\n [\u003cffffffff8003843c\u003e] ip_rcv+0x64c/0x69f\n [\u003cffffffff80021d89\u003e] netif_receive_skb+0x4c4/0x4fa\n [\u003cffffffff80032eca\u003e] process_backlog+0x90/0xec\n [\u003cffffffff8000cc50\u003e] net_rx_action+0xbb/0x1f1\n [\u003cffffffff80012d3a\u003e] __do_softirq+0xf5/0x1ce\n [\u003cffffffff8001147a\u003e] handle_IRQ_event+0x56/0xb0\n [\u003cffffffff8006334c\u003e] call_softirq+0x1c/0x28\n [\u003cffffffff80070476\u003e] do_softirq+0x2c/0x85\n [\u003cffffffff80070441\u003e] do_IRQ+0x149/0x152\n [\u003cffffffff80062665\u003e] ret_from_intr+0x0/0xa\n \u003cEOI\u003e  [\u003cffffffff80008a2e\u003e] __handle_mm_fault+0x6cd/0x1303\n [\u003cffffffff80008903\u003e] __handle_mm_fault+0x5a2/0x1303\n [\u003cffffffff80033a9d\u003e] cache_free_debugcheck+0x21f/0x22e\n [\u003cffffffff8006a263\u003e] do_page_fault+0x49a/0x7dc\n [\u003cffffffff80066487\u003e] thread_return+0x89/0x174\n [\u003cffffffff800c5aee\u003e] audit_syscall_exit+0x341/0x35c\n [\u003cffffffff80062e39\u003e] error_exit+0x0/0x84\n\ntcp_rcv_state_process()\n...  // (sk_state \u003d\u003d TCP_CLOSE_WAIT here)\n...\n        /* step 2: check RST bit */\n        if(th-\u003erst) {\n                tcp_reset(sk);\n                goto discard;\n        }\n...\n---------------------------------\ntcp_rcv_state_process\n tcp_reset\n  tcp_done\n   tcp_set_state(sk, TCP_CLOSE);\n     inet_put_port\n      __inet_put_port\n       inet_sk(sk)-\u003enum \u003d 0;\n\n   sk-\u003esk_shutdown \u003d SHUTDOWN_MASK;\n\n2) After that the process (socket owner) tries to write something to\n   that socket and \"inet_autobind\" sets a _new_ (which differs from\n   the original!) port number for the socket:\n\n Call Trace:\n  [\u003cffffffff80255a12\u003e] inet_bind_hash+0x33/0x5f\n  [\u003cffffffff80257180\u003e] inet_csk_get_port+0x216/0x268\n  [\u003cffffffff8026bcc9\u003e] inet_autobind+0x22/0x8f\n  [\u003cffffffff80049140\u003e] inet_sendmsg+0x27/0x57\n  [\u003cffffffff8003a9d9\u003e] do_sock_write+0xae/0xea\n  [\u003cffffffff80226ac7\u003e] sock_writev+0xdc/0xf6\n  [\u003cffffffff800680c7\u003e] _spin_lock_irqsave+0x9/0xe\n  [\u003cffffffff8001fb49\u003e] __pollwait+0x0/0xdd\n  [\u003cffffffff8008d533\u003e] default_wake_function+0x0/0xe\n  [\u003cffffffff800a4f10\u003e] autoremove_wake_function+0x0/0x2e\n  [\u003cffffffff800f0b49\u003e] do_readv_writev+0x163/0x274\n  [\u003cffffffff80066538\u003e] thread_return+0x13a/0x174\n  [\u003cffffffff800145d8\u003e] tcp_poll+0x0/0x1c9\n  [\u003cffffffff800c56d3\u003e] audit_syscall_entry+0x180/0x1b3\n  [\u003cffffffff800f0dd0\u003e] sys_writev+0x49/0xe4\n  [\u003cffffffff800622dd\u003e] tracesys+0xd5/0xe0\n\n3) sendmsg fails at last with -EPIPE (\u003d\u003e \u0027write\u0027 returns -EPIPE in userspace):\n\nF: tcp_sendmsg1 -EPIPE: sk\u003dffff81000bda00d0, sport\u003d49847, old_state\u003d7, new_state\u003d7, sk_err\u003d0, sk_shutdown\u003d3\n\nCall Trace:\n [\u003cffffffff80027557\u003e] tcp_sendmsg+0xcb/0xe87\n [\u003cffffffff80033300\u003e] release_sock+0x10/0xae\n [\u003cffffffff8016f20f\u003e] vgacon_cursor+0x0/0x1a7\n [\u003cffffffff8026bd32\u003e] inet_autobind+0x8b/0x8f\n [\u003cffffffff8003a9d9\u003e] do_sock_write+0xae/0xea\n [\u003cffffffff80226ac7\u003e] sock_writev+0xdc/0xf6\n [\u003cffffffff800680c7\u003e] _spin_lock_irqsave+0x9/0xe\n [\u003cffffffff8001fb49\u003e] __pollwait+0x0/0xdd\n [\u003cffffffff8008d533\u003e] default_wake_function+0x0/0xe\n [\u003cffffffff800a4f10\u003e] autoremove_wake_function+0x0/0x2e\n [\u003cffffffff800f0b49\u003e] do_readv_writev+0x163/0x274\n [\u003cffffffff80066538\u003e] thread_return+0x13a/0x174\n [\u003cffffffff800145d8\u003e] tcp_poll+0x0/0x1c9\n [\u003cffffffff800c56d3\u003e] audit_syscall_entry+0x180/0x1b3\n [\u003cffffffff800f0dd0\u003e] sys_writev+0x49/0xe4\n [\u003cffffffff800622dd\u003e] tracesys+0xd5/0xe0\n\ntcp_sendmsg()\n...\n        /* Wait for a connection to finish. */\n        if ((1 \u003c\u003c sk-\u003esk_state) \u0026 ~(TCPF_ESTABLISHED | TCPF_CLOSE_WAIT)) {\n                int old_state \u003d sk-\u003esk_state;\n                if ((err \u003d sk_stream_wait_connect(sk, \u0026timeo)) !\u003d 0) {\nif (f_d \u0026\u0026 (err \u003d\u003d -EPIPE)) {\n        printk(\"F: tcp_sendmsg1 -EPIPE: sk\u003d%p, sport\u003d%u, old_state\u003d%d, new_state\u003d%d, \"\n                \"sk_err\u003d%d, sk_shutdown\u003d%d\\n\",\n                sk, ntohs(inet_sk(sk)-\u003esport), old_state, sk-\u003esk_state,\n                sk-\u003esk_err, sk-\u003esk_shutdown);\n        dump_stack();\n}\n                        goto out_err;\n                }\n        }\n...\n\n4) Then the process (socket owner) understands that it\u0027s time to close\n   that socket and does that (and thus triggers sending reset packet):\n\nCall Trace:\n...\n [\u003cffffffff80032077\u003e] dev_queue_xmit+0x343/0x3d6\n [\u003cffffffff80034698\u003e] ip_output+0x351/0x384\n [\u003cffffffff80251ae9\u003e] dst_output+0x0/0xe\n [\u003cffffffff80036ec6\u003e] ip_queue_xmit+0x567/0x5d2\n [\u003cffffffff80095700\u003e] vprintk+0x21/0x33\n [\u003cffffffff800070f0\u003e] check_poison_obj+0x2e/0x206\n [\u003cffffffff80013587\u003e] poison_obj+0x36/0x45\n [\u003cffffffff8025dea6\u003e] tcp_send_active_reset+0x15/0x14d\n [\u003cffffffff80023481\u003e] dbg_redzone1+0x1c/0x25\n [\u003cffffffff8025dea6\u003e] tcp_send_active_reset+0x15/0x14d\n [\u003cffffffff8000ca94\u003e] cache_alloc_debugcheck_after+0x189/0x1c8\n [\u003cffffffff80023405\u003e] tcp_transmit_skb+0x764/0x786\n [\u003cffffffff8025df8a\u003e] tcp_send_active_reset+0xf9/0x14d\n [\u003cffffffff80258ff1\u003e] tcp_close+0x39a/0x960\n [\u003cffffffff8026be12\u003e] inet_release+0x69/0x80\n [\u003cffffffff80059b31\u003e] sock_release+0x4f/0xcf\n [\u003cffffffff80059d4c\u003e] sock_close+0x2c/0x30\n [\u003cffffffff800133c9\u003e] __fput+0xac/0x197\n [\u003cffffffff800252bc\u003e] filp_close+0x59/0x61\n [\u003cffffffff8001eff6\u003e] sys_close+0x85/0xc7\n [\u003cffffffff800622dd\u003e] tracesys+0xd5/0xe0\n\nSo, in brief:\n\n* a received packet for socket in TCP_CLOSE_WAIT state triggers\n  tcp_reset() which clears inet_sk(sk)-\u003enum and put socket into\n  TCP_CLOSE state\n\n* an attempt to write to that socket forces inet_autobind() to get a\n  new port (but the write itself fails with -EPIPE)\n\n* tcp_close() called for socket in TCP_CLOSE state sends an active\n  reset via socket with newly allocated port\n\nThis adds an additional check in tcp_close() for already closed\nsockets. We do not want to send anything to closed sockets.\n\nSigned-off-by: Konstantin Khorenko \u003ckhorenko@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a3433f35a55f7604742cae620c6dc6edfc70db6a",
      "tree": "4ce6d169e402c03a48319a9db4055cc31df00d42",
      "parents": [
        "f350a0a87374418635689471606454abc7beaa3a"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Sat Jun 12 14:01:43 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 15 11:56:19 2010 -0700"
      },
      "message": "tcp: unify tcp flag macros\n\nunify tcp flag macros: TCPHDR_FIN, TCPHDR_SYN, TCPHDR_RST, TCPHDR_PSH,\nTCPHDR_ACK, TCPHDR_URG, TCPHDR_ECE and TCPHDR_CWR. TCBCB_FLAG_* are replaced\nwith the corresponding TCPHDR_*.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\n----\n include/net/tcp.h                      |   24 ++++++-------\n net/ipv4/tcp.c                         |    8 ++--\n net/ipv4/tcp_input.c                   |    2 -\n net/ipv4/tcp_output.c                  |   59 ++++++++++++++++-----------------\n net/netfilter/nf_conntrack_proto_tcp.c |   32 ++++++-----------\n net/netfilter/xt_TCPMSS.c              |    4 --\n 6 files changed, 58 insertions(+), 71 deletions(-)\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d7fd1b5747fff3bde92777bcaf705d98ae6f8b6f",
      "tree": "8cdac5dba6b350fd759eadd324e706639180a162",
      "parents": [
        "15e83ed78864d0625e87a85f09b297c0919a4797"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon May 17 20:40:51 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 31 00:24:02 2010 -0700"
      },
      "message": "tcp: tcp_md5_hash_skb_data() frag_list handling\n\ntcp_md5_hash_skb_data() should handle skb-\u003efrag_list, and eventually\nrecurse.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ccbd6a5a4f76e821ed36f69fdaf59817c3a7f18e",
      "tree": "9fd681809e588913cc312f63ae0e701f18599afc",
      "parents": [
        "935e2a26b85003c0bd52b6c92712c2f77a5f9d33"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri May 14 10:58:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 17 17:44:35 2010 -0700"
      },
      "message": "net: Remove unnecessary semicolons after switch statements\n\nAlso added an explicit break; to avoid\na fallthrough in net/ipv4/tcp_input.c\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6811d58fc148c393f80a9f5a9db49d7e75cdc546",
      "tree": "c25d5b0e49ec848943d35f819e748d157ccb492e",
      "parents": [
        "c4949f074332a64baeb2ead6ab9319ca37642f96",
        "c02db8c6290bb992442fec1407643c94cc414375"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 16 22:26:58 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 16 22:26:58 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tinclude/linux/if_link.h\n"
    },
    {
      "commit": "35790c0421121364883a167bab8a2e37e1f67f78",
      "tree": "a3e032a9ba6bb77337176bef407d7408d6a10a4d",
      "parents": [
        "d77f873fdd21912803836da78f627d2efd267082"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun May 16 00:34:04 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 16 00:34:04 2010 -0700"
      },
      "message": "tcp: fix MD5 (RFC2385) support\n\nTCP MD5 support uses percpu data for temporary storage. It currently\ndisables preemption so that same storage cannot be reclaimed by another\nthread on same cpu.\n\nWe also have to make sure a softirq handler wont try to use also same\ncontext. Various bug reports demonstrated corruptions.\n\nFix is to disable preemption and BH.\n\nReported-by: Bhaskar Dutta \u003cbhaskie@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6c37e5de456987f5bc80879afde05aa120784095",
      "tree": "1459ee69ef3c7172a82d07a7b8aea00836eedda5",
      "parents": [
        "dcdca2c49bb6328bbc7cd8d73434c308b5dd0df2"
      ],
      "author": {
        "name": "Flavio Leitner",
        "email": "fleitner@redhat.com",
        "time": "Mon Apr 26 18:33:27 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 27 12:53:25 2010 -0700"
      },
      "message": "TCP: avoid to send keepalive probes if receiving data\n\nRFC 1122 says the following:\n...\n  Keep-alive packets MUST only be sent when no data or\n  acknowledgement packets have been received for the\n  connection within an interval.\n...\n\nThe acknowledgement packet is reseting the keepalive\ntimer but the data packet isn\u0027t. This patch fixes it by\nchecking the timestamp of the last received data packet\ntoo when the keepalive timer expires.\n\nSigned-off-by: Flavio Leitner \u003cfleitner@redhat.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0eae88f31ca2b88911ce843452054139e028771f",
      "tree": "90f50197d8e1e50e3621e9c525bd4ca2634fe368",
      "parents": [
        "cb903bf4ee2d6e53210e2174d363e10698112042"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Apr 20 19:06:52 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 19:06:52 2010 -0700"
      },
      "message": "net: Fix various endianness glitches\n\nSparse can help us find endianness bugs, but we need to make some\ncleanups to be able to more easily spot real bugs.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aa395145165cb06a0d0885221bbe0ce4a564391d",
      "tree": "118b0403621f10db8dc3dbf12079f9af5b19e05d",
      "parents": [
        "ab9304717f7624c41927f442e6b6d418b2d8b3e4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Apr 20 13:03:51 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 16:37:13 2010 -0700"
      },
      "message": "net: sk_sleep() helper\n\nDefine a new function to return the waitqueue of a \"struct sock\".\n\nstatic inline wait_queue_head_t *sk_sleep(struct sock *sk)\n{\n\treturn sk-\u003esk_sleep;\n}\n\nChange all read occurrences of sk_sleep by a call to this function.\n\nNeeded for a future RCU conversion. sk_sleep wont be a field directly\navailable.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cb4361c1dc29cd870f664c004b1817106fbce0fa",
      "tree": "c31533210d738c9074b21b8f31fe0399b39545f0",
      "parents": [
        "309361e09ca9e9670dc8664e5d14125bf82078af",
        "fb9e2d887243499b8d28efcf80821c4f6a092395"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 06 08:34:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 06 08:34:06 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (37 commits)\n  smc91c92_cs: fix the problem of \"Unable to find hardware address\"\n  r8169: clean up my printk uglyness\n  net: Hook up cxgb4 to Kconfig and Makefile\n  cxgb4: Add main driver file and driver Makefile\n  cxgb4: Add remaining driver headers and L2T management\n  cxgb4: Add packet queues and packet DMA code\n  cxgb4: Add HW and FW support code\n  cxgb4: Add register, message, and FW definitions\n  netlabel: Fix several rcu_dereference() calls used without RCU read locks\n  bonding: fix potential deadlock in bond_uninit()\n  net: check the length of the socket address passed to connect(2)\n  stmmac: add documentation for the driver.\n  stmmac: fix kconfig for crc32 build error\n  be2net: fix bug in vlan rx path for big endian architecture\n  be2net: fix flashing on big endian architectures\n  be2net: fix a bug in flashing the redboot section\n  bonding: bond_xmit_roundrobin() fix\n  drivers/net: Add missing unlock\n  net: gianfar - align BD ring size console messages\n  net: gianfar - initialize per-queue statistics\n  ...\n"
    },
    {
      "commit": "baff42ab1494528907bf4d5870359e31711746ae",
      "tree": "82cfffb254ea1f5b95701d328375228f7ab343e6",
      "parents": [
        "c0cd884af045338476b8e69a61fceb3f34ff22f1"
      ],
      "author": {
        "name": "Steven J. Magnani",
        "email": "steve@digidescorp.com",
        "time": "Tue Mar 30 13:56:01 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 30 13:56:01 2010 -0700"
      },
      "message": "net: Fix oops from tcp_collapse() when using splice()\n\ntcp_read_sock() can have a eat skbs without immediately advancing copied_seq.\nThis can cause a panic in tcp_collapse() if it is called as a result\nof the recv_actor dropping the socket lock.\n\nA userspace program that splices data from a socket to either another\nsocket or to a file can trigger this bug.\n\nSigned-off-by: Steven J. Magnani \u003csteve@digidescorp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "73852e8151b7d7a529fbe019ab6d2d0c02d8f3f2",
      "tree": "724151d30c232e38ea947705986cfe60a3359241",
      "parents": [
        "f5d410f2ea7ba340f11815a56e05b9fa9421c421"
      ],
      "author": {
        "name": "Steven J. Magnani",
        "email": "steve@digidescorp.com",
        "time": "Tue Mar 16 05:22:44 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 20 14:29:02 2010 -0700"
      },
      "message": "NET_DMA: free skbs periodically\n\nUnder NET_DMA, data transfer can grind to a halt when userland issues a\nlarge read on a socket with a high RCVLOWAT (i.e., 512 KB for both).\nThis appears to be because the NET_DMA design queues up lots of memcpy\noperations, but doesn\u0027t issue or wait for them (and thus free the\nassociated skbs) until it is time for tcp_recvmesg() to return.\nThe socket hangs when its TCP window goes to zero before enough data is\navailable to satisfy the read.\n\nPeriodically issue asynchronous memcpy operations, and free skbs for ones\nthat have completed, to prevent sockets from going into zero-window mode.\n\nSigned-off-by: Steven J. Magnani \u003csteve@digidescorp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b634f87522dff87712df8bda2a6c9061954d552a",
      "tree": "fad85992b6d2566ba635434339da7567966ce1a6",
      "parents": [
        "22001a13d09d82772e831dcdac0553994a4bac5d"
      ],
      "author": {
        "name": "Alexandra Kossovsky",
        "email": "Alexandra.Kossovsky@oktetlabs.ru",
        "time": "Thu Mar 18 20:29:24 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 18 20:29:24 2010 -0700"
      },
      "message": "tcp: Fix OOB POLLIN avoidance.\n\nFrom: Alexandra.Kossovsky@oktetlabs.ru\n\nFixes kernel bugzilla #15541\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7e38017557bc0b87434d184f8804cadb102bb903",
      "tree": "30c4a0793bd28f6731ade58786c06f9cf33115df",
      "parents": [
        "36e31b0af58728071e8023cf8e20c5166b700717"
      ],
      "author": {
        "name": "Andreas Petlund",
        "email": "apetlund@simula.no",
        "time": "Thu Feb 18 04:48:19 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 18 15:43:09 2010 -0800"
      },
      "message": "net: TCP thin dupack\n\nThis patch enables fast retransmissions after one dupACK for\nTCP if the stream is identified as thin. This will reduce\nlatencies for thin streams that are not able to trigger fast\nretransmissions due to high packet interarrival time. This\nmechanism is only active if enabled by iocontrol or syscontrol\nand the stream is identified as thin.\n\nSigned-off-by: Andreas Petlund \u003capetlund@simula.no\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "36e31b0af58728071e8023cf8e20c5166b700717",
      "tree": "8b4d251bf78965ac7501bea9011786b8255a3312",
      "parents": [
        "5aa4b32fc86408705337e941ed716880c63d1590"
      ],
      "author": {
        "name": "Andreas Petlund",
        "email": "apetlund@simula.no",
        "time": "Thu Feb 18 02:47:01 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 18 15:43:08 2010 -0800"
      },
      "message": "net: TCP thin linear timeouts\n\nThis patch will make TCP use only linear timeouts if the\nstream is thin. This will help to avoid the very high latencies\nthat thin stream suffer because of exponential backoff. This\nmechanism is only active if enabled by iocontrol or syscontrol\nand the stream is identified as thin. A maximum of 6 linear\ntimeouts is tried before exponential backoff is resumed.\n\nSigned-off-by: Andreas Petlund \u003capetlund@simula.no\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7d720c3e4f0c4fc152a6bf17e24244a3c85412d2",
      "tree": "36e037187ce79acb211702bea22e99c625787757",
      "parents": [
        "2bb4646fce8d09916b351d1a62f98db7cec6fc41"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 16 15:20:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 16 23:05:38 2010 -0800"
      },
      "message": "percpu: add __percpu sparse annotations to net\n\nAdd __percpu sparse annotations to net.\n\nThese annotations are to make sparse consider percpu variables to be\nin a different address space and warn if accessed without going\nthrough percpu accessors.  This patch doesn\u0027t affect normal builds.\n\nThe macro and type tricks around snmp stats make things a bit\ninteresting.  DEFINE/DECLARE_SNMP_STAT() macros mark the target field\nas __percpu and SNMP_UPD_PO_STATS() macro is updated accordingly.  All\nsnmp_mib_*() users which used to cast the argument to (void **) are\nupdated to cast it to (void __percpu **).\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nCc: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nCc: netdev@vger.kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "def87cf42069a6d4fd42a2ede8f19c620a292568",
      "tree": "1e8e97b452dd95d389feb4f04c0f25b6a9264412",
      "parents": [
        "afeca340c078e17ca233b3c68c3c3a70c56bfe1d"
      ],
      "author": {
        "name": "Krishna Kumar",
        "email": "krkumar2@in.ibm.com",
        "time": "Thu Dec 10 07:16:59 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 23 14:13:29 2009 -0800"
      },
      "message": "tcp: Slightly optimize tcp_sendmsg\n\nSlightly optimize tcp_sendmsg since NETIF_F_SG is used many\ntimes iteratively in the loop. The only other modification is\nto change:\n\t\t\t} else if (i \u003d\u003d MAX_SKB_FRAGS ||\n\t\t\t\t   (!i \u0026\u0026\n\t\t\t\t   !(sk-\u003esk_route_caps \u0026 NETIF_F_SG))) {\n\tto:\n\t\t\t} else if (i \u003d\u003d MAX_SKB_FRAGS || !sg) {\n\nThe reason why this change is correct: this code (other than\nthe MAX_SKB_FRAGS case) executes only due to the else part\nof: \"if (skb_tailroom(skb) \u003e 0) {\" - i.e. there was no space\nin the skb to put the data inline. Hence SG is false is a\nsufficient condition, and there is no way a fragment can be\nadded to the skb.\n\nChangelog:\n\t- Added the above explanation for the change\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nAcked-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "afeca340c078e17ca233b3c68c3c3a70c56bfe1d",
      "tree": "f7b308856bdd21f41ea61cf6b74cd28e50b0448f",
      "parents": [
        "12d50c46dc0f7fd2e625c4befaa5fa5740a7a594"
      ],
      "author": {
        "name": "Krishna Kumar",
        "email": "krkumar2@in.ibm.com",
        "time": "Thu Dec 10 07:16:52 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 23 14:13:28 2009 -0800"
      },
      "message": "tcp: Remove unrequired operations in tcp_push()\n\nRemove unrequired operations in tcp_push()\n\nChangelog:\n\tRemoved a temporary skb variable from tcp_push()\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nAcked-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3dc789320e1b310cb505dcd94512c279abcd5e1c",
      "tree": "b6173953ccff6c9bfd83096c97027c2d338287d1",
      "parents": [
        "e61444d9209821469ed0d5a9128dcf2e494533ea"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 20:07:54 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 20:07:54 2009 -0800"
      },
      "message": "tcp: Remove runtime check that can never be true.\n\nGCC even warns about it, as reported by Andrew Morton:\n\nnet/ipv4/tcp.c: In function \u0027do_tcp_getsockopt\u0027:\nnet/ipv4/tcp.c:2544: warning: comparison is always false due to limited range of data type\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e56fb50f2b7958b931c8a2fc0966061b3f3c8f3a",
      "tree": "392f548e99f5d098286cea54fb9e18ac8c31e672",
      "parents": [
        "435cf559f02ea3a3159eb316f97dc88bdebe9432"
      ],
      "author": {
        "name": "William Allen Simpson",
        "email": "william.allen.simpson@gmail.com",
        "time": "Wed Dec 02 18:19:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 02 22:07:25 2009 -0800"
      },
      "message": "TCPCT part 1e: implement socket option TCP_COOKIE_TRANSACTIONS\n\nProvide per socket control of the TCP cookie option and SYN/SYNACK data.\n\nThis is a straightforward re-implementation of an earlier (year-old)\npatch that no longer applies cleanly, with permission of the original\nauthor (Adam Langley):\n\n    http://thread.gmane.org/gmane.linux.network/102586\n\nThe principle difference is using a TCP option to carry the cookie nonce,\ninstead of a user configured offset in the data.\n\nAllocations have been rearranged to avoid requiring GFP_ATOMIC.\n\nRequires:\n   net: TCP_MSS_DEFAULT, TCP_MSS_DESIRED\n   TCPCT part 1c: sysctl_tcp_cookie_size, socket option TCP_COOKIE_TRANSACTIONS\n   TCPCT part 1d: define TCP cookie option, extend existing struct\u0027s\n\nSigned-off-by: William.Allen.Simpson@gmail.com\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "da5c78c82629a167794436e4306b4cf1faddea90",
      "tree": "c933fdc0583b592c01885890ebf770840555d28b",
      "parents": [
        "e6b4d11367519bc71729c09d05a126b133c755be"
      ],
      "author": {
        "name": "William Allen Simpson",
        "email": "william.allen.simpson@gmail.com",
        "time": "Wed Dec 02 18:12:09 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 02 22:07:23 2009 -0800"
      },
      "message": "TCPCT part 1b: generate Responder Cookie secret\n\nDefine (missing) hash message size for SHA1.\n\nDefine hashing size constants specific to TCP cookies.\n\nAdd new function: tcp_cookie_generator().\n\nMaintain global secret values for tcp_cookie_generator().\n\nThis is a significantly revised implementation of earlier (15-year-old)\nPhoturis [RFC-2522] code for the KA9Q cooperative multitasking platform.\n\nLinux RCU technique appears to be well-suited to this application, though\nneither of the circular queue items are freed.\n\nThese functions will also be used in subsequent patches that implement\nadditional features.\n\nSigned-off-by: William.Allen.Simpson@gmail.com\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ff9c38bba37937adb909cceb2a6521f2e92e17c6",
      "tree": "93bd6152d9fa28348be99ef1c788040cc7b7a94d",
      "parents": [
        "65c0cfafce9575319fb6f70080fbe226e5617e3b",
        "b2722b1c3a893ec6021508da15b32282ec79f4da"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 22:13:38 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 22:13:38 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/mac80211/ht.c\n"
    },
    {
      "commit": "1fdf475aa141a669af8db6ccc7015f0b725087de",
      "tree": "7298a884935feb59352566ca6119856a0e322cb5",
      "parents": [
        "0cae200eec6330cd2c20b24279597be1da50dc93"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Nov 30 12:53:30 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 30 12:53:30 2009 -0800"
      },
      "message": "tcp: tcp_disconnect() should clear window_clamp\n\nNFS can reuse its TCP socket after calling tcp_disconnect().\n\nWe noticed window scaling was not negotiated in SYN packet of next\nconnection request.\n\nFix is to clear tp-\u003ewindow_clamp in tcp_disconnect().\n\nReported-by: Krzysztof Oledzki \u003cole@ans.pl\u003e\nTested-by: Krzysztof Oledzki \u003cole@ans.pl\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "a2bfbc072e279ff81e6b336acff612b9bc2e5281"
}
