)]}'
{
  "log": [
    {
      "commit": "0800f170263d19b882e519441156c5f6ed190fc1",
      "tree": "09dd9f9405390b969af4ee2fbea411308dcc7582",
      "parents": [
        "b76892051cf1c04d95872838e70146f65e3b9d75"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 20 11:40:37 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:13 2007 -0700"
      },
      "message": "[TCP]: Minor coding style fixup.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b76892051cf1c04d95872838e70146f65e3b9d75",
      "tree": "475050b8e41eb317144465b1e2b9255fbad188b4",
      "parents": [
        "c96fd3d461fa495400df24be3b3b66f0e0b152f9"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Sep 20 11:37:19 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:12 2007 -0700"
      },
      "message": "[TCP]: Avoid clearing sacktag hint in trivial situations\n\nThere\u0027s no reason to clear the sacktag skb hint when small part\nof the rexmit queue changes. Account changes (if any) instead when\nfragmenting/collapsing. RTO/FRTO do not touch SACKED_ACKED bits so\nno need to discard SACK tag hint at all.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5af4ec236f7c98f3671fb26731457a172d85e0e6",
      "tree": "04219129f5db8662c4a876e0f686e7a56fb4459c",
      "parents": [
        "91fed7a15c9222af29a653ecb0ee72cff178fdd8"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Sep 20 11:30:48 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:09 2007 -0700"
      },
      "message": "[TCP]: clear_all_retrans_hints prefixed by tcp_\n\nIn addition, fix its function comment spacing.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\n"
    },
    {
      "commit": "6ff03ac355cc6c10f7b1f44dd466d41213acebca",
      "tree": "9057f7839df5bc65ea73148eee4148114f6f45c9",
      "parents": [
        "e9144bd8da80f3136b23c615609798e371e885ac"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Aug 24 22:44:06 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:28 2007 -0700"
      },
      "message": "[TCP]: tcp_packets_out_inc to tcp_output.c (no callers elsewhere)\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e9144bd8da80f3136b23c615609798e371e885ac",
      "tree": "4ca84a95f2dd7f2e4d49bc8f1868bdfee3deea82",
      "parents": [
        "522400623e240ad134cb4101b1fddc3245d2a7ed"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Aug 24 22:43:14 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:27 2007 -0700"
      },
      "message": "[TCP]: Remove unnecessary wrapper tcp_packets_out_dec\n\nMakes caller side more obvious, there\u0027s no need to have\na wrapper for this oneliner!\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e60402d0a909ca2e6e2fbdf9ed004ef0fae36d33",
      "tree": "b40a00b801cf44f81bebd7dadddb19c0086b145c",
      "parents": [
        "b9c4595bc4947faa236a849324fe3492e388d949"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Aug 09 15:14:46 2007 +0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:00 2007 -0700"
      },
      "message": "[TCP]: Move sack_ok access to obviously named funcs \u0026 cleanup\n\nPreviously code had IsReno/IsFack defined as macros that were\nlocal to tcp_input.c though sack_ok field has user elsewhere too\nfor the same purpose. This changes them to static inlines as\npreferred according the current coding style and unifies the\naccess to sack_ok across multiple files. Magic bitops of sack_ok\nfor FACK and DSACK are also abstracted to functions with\nappropriate names.\n\nNote:\n- One sack_ok \u003d 1 remains but that\u0027s self explanary, i.e., it\n  enables sack\n- Couple of !IsReno cases are changed to tcp_is_sack\n- There were no users for IsDSack \u003d\u003e I dropped it\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b9c4595bc4947faa236a849324fe3492e388d949",
      "tree": "392994d87f7e64e695bb3dbb1b5472286b1deef2",
      "parents": [
        "1b6d427bb7eb69e6dc4f194a5b0f4a382a16ff82"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Jul 27 16:36:17 2007 +0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:59 2007 -0700"
      },
      "message": "[TCP]: Don\u0027t panic if S+L skb is detected\n\nBUG_ON is an overkill. In fact, I was mislead by BUG_TRAP\nseverity (equals to WARN_ON) which is much lower than BUG_ON\u0027s\n(that panics).\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1b6d427bb7eb69e6dc4f194a5b0f4a382a16ff82",
      "tree": "d67f6ea9a5f581f83b4d8228fc2964c70f940d5a",
      "parents": [
        "d02596e32925edaeccee0af8eb6c229b5615de42"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Aug 09 14:53:36 2007 +0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:58 2007 -0700"
      },
      "message": "[TCP]: Reduce sacked_out with reno when purging write_queue\n\nPreviously TCP had a transitional state during which reno\ncounted segments that are already below the current window into\nsacked_out, which is now prevented. In addition, re-try now\nthe unconditional S+L skb catching.\n\nThis approach conservatively calls just remove_sack and leaves\nreset_sack() calls alone. The best solution to the whole problem\nwould be to first calculate the new sacked_out fully (this patch\ndoes not move reno_sack_reset calls from original sites and thus\ndoes not implement this). However, that would require very\ninvasive change to fastretrans_alert (perhaps even slicing it to\ntwo halves). Alternatively, all callers of tcp_packets_in_flight\n(i.e., users that depend on sacked_out) should be postponed\nuntil the new sacked_out has been calculated but it isn\u0027t any\nsimpler alternative.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "005903bc3a0e8473fef809e8775db52dcd3cde63",
      "tree": "4fd945740a3615dbd5493fa0ded13f0352e21b2c",
      "parents": [
        "83ae40885f33e406c87c86b0bd4b6fd31a741f12"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Aug 09 14:44:16 2007 +0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:57 2007 -0700"
      },
      "message": "[TCP]: Left out sync-\u003everify (the new meaning of it) \u0026 definify\n\nLeft_out was dropped a while ago, thus leaving verifying\nconsistency of the \"left out\" as only task for the function in\nquestion. Thus make it\u0027s name more appropriate.\n\nIn addition, it is intentionally converted to #define instead\nof static inline because the location of the invariant failure\nis the most important thing to have if this ever triggers. I\nthink it would have been helpful e.g. in this case where the\nlocation of the failure point had to be based on some quesswork:\n    http://lkml.org/lkml/2007/5/2/464\n...Luckily the guesswork seems to have proved to be correct.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "83ae40885f33e406c87c86b0bd4b6fd31a741f12",
      "tree": "659de08c231db85ec46f0c3bc1b86252a6561e21",
      "parents": [
        "b5860bbac7be1381626f3dc8a0cb970a60fcefb4"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Aug 09 14:37:30 2007 +0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:56 2007 -0700"
      },
      "message": "[TCP]: Add tcp_left_out(tp) \"back\" to get cleaner looking lines\n\ntp-\u003eleft_out got removed but nothing came to replace it back\nthen (users just did addition by themselves), so add function\nfor users now.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b5860bbac7be1381626f3dc8a0cb970a60fcefb4",
      "tree": "53034429084f92fdb55c062498e1f4255be9bd4a",
      "parents": [
        "35e8694198ba94b62df8aa35fa6e52a1cfb86df2"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Aug 09 14:33:18 2007 +0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:55 2007 -0700"
      },
      "message": "[TCP]: Tighten tcp_sock\u0027s belt, drop left_out\n\nIt is easily calculable when needed and user are not that many\nafter all.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "af610b4ca19f513a50d47ea93ed57241383c8081",
      "tree": "b7bc4e7f7969b10a2a8d3e3de7375f64df93dd4e",
      "parents": [
        "bdf1ee5d3bd38d0c44bd7baa74e07adcbe4ceab1"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Jun 15 12:58:38 2007 +0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:54 2007 -0700"
      },
      "message": "[TCP]: Add tcp_dec_pcount_approx int variant\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bdf1ee5d3bd38d0c44bd7baa74e07adcbe4ceab1",
      "tree": "c14e3433624e03b7db6a9f30142581342e848ad6",
      "parents": [
        "539d243fdd7900fa5a544c7c154dc3ddf627e840"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sun May 27 02:04:16 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:54 2007 -0700"
      },
      "message": "[TCP]: Move code from tcp_ecn.h to tcp*.c and tcp.h \u0026 remove it\n\nNo other users exist for tcp_ecn.h. Very few things remain in\ntcp.h, for most TCP ECN functions callers reside within a\nsingle .c file and can be placed there.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f8ab18d2d987a59ccbf0495032b2aef05b730037",
      "tree": "7a24c79632c91e22235888875813950c6c30d929",
      "parents": [
        "e79ad711a0108475c1b3a03815527e7237020b08"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 28 15:18:35 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 28 15:18:35 2007 -0700"
      },
      "message": "[TCP]: Fix MD5 signature handling on big-endian.\n\nBased upon a report and initial patch by Peter Lieven.\n\ntcp4_md5sig_key and tcp6_md5sig_key need to start with\nthe exact same members as tcp_md5sig_key.  Because they\nare both cast to that type by tcp_v{4,6}_md5_do_lookup().\n\nUnfortunately tcp{4,6}_md5sig_key use a u16 for the key\nlength instead of a u8, which is what tcp_md5sig_key\nuses.  This just so happens to work by accident on\nlittle-endian, but on big-endian it doesn\u0027t.\n\nInstead of casting, just place tcp_md5sig_key as the first member of\nthe address-family specific structures, adjust the access sites, and\nkill off the ugly casts.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3516ffb0fef710749daf288c0fe146503e0cf9d4",
      "tree": "f3e3cd29dd541a457e61152560fe4416642a69bc",
      "parents": [
        "1bcabbdb0bdfe8b15b05150a7857646430aaa7f8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Aug 02 19:23:56 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Aug 02 19:42:28 2007 -0700"
      },
      "message": "[TCP]: Invoke tcp_sendmsg() directly, do not use inet_sendmsg().\n\nAs discovered by Evegniy Polyakov, if we try to sendmsg after\na connection reset, we can do incredibly stupid things.\n\nThe core issue is that inet_sendmsg() tries to autobind the\nsocket, but we should never do that for TCP.  Instead we should\njust go straight into TCP\u0027s sendmsg() code which will do all\nof the necessary state and pending socket error checks.\n\nTCP\u0027s sendpage already directly vectors to tcp_sendpage(), so this\nmerely brings sendmsg() in line with that.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "30cfd0baf0a0c4329fff1ef4b622919297969ec8",
      "tree": "945a72f636ced1b443d894495704237e4cb7816d",
      "parents": [
        "6a302358d87fedaf7bda12b8e909265ebf1ce674"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Wed Jul 25 23:49:34 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 31 02:27:57 2007 -0700"
      },
      "message": "[TCP]: congestion control API pass RTT in microseconds\n\nThis patch changes the API for the callback that is done after an ACK is\nreceived. It solves a couple of issues:\n\n  * Some congestion controls want higher resolution value of RTT\n    (controlled by TCP_CONG_RTT_SAMPLE flag). These don\u0027t really want a ktime, but\n    all compute a RTT in microseconds.\n\n  * Other congestion control could use RTT at jiffies resolution.\n\nTo keep API consistent the units should be the same for both cases, just the\nresolution should change.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "16751347a060a10c09b11593bb179fd5b0240c04",
      "tree": "40399ba217d9e4c45060c4d12334c53f931ca635",
      "parents": [
        "44beac008631d1b8a52f103e04eacba2bda81511"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Mon Jul 16 18:35:52 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Jul 18 01:46:58 2007 -0700"
      },
      "message": "[TCP]: remove unused argument to cong_avoid op\n\nNone of the existing TCP congestion controls use the rtt value pased\nin the ca_ops-\u003econg_avoid interface.  Which is lucky because seq_rtt\ncould have been -1 when handling a duplicate ack.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e4fd5da39f99d5921dda1fe3d93652fbd925fbfd",
      "tree": "595967b745720653cdc0f7c9e5d61c5433ea143e",
      "parents": [
        "4e07a91c37c69ec1647c218214591ee4fe3408fe"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Tue May 29 13:19:18 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu May 31 01:23:34 2007 -0700"
      },
      "message": "[TCP]: Consolidate checking for tcp orphan count being too big.\n\ntcp_out_of_resources() and tcp_close() perform the\nsame checking of number of orphan sockets. Move this\ncode into common place.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0ec96822d5c0df77107c03b8d9a81a436ab707fc",
      "tree": "0e17c856f1d1317741fa340b631b88abbc8f6ccf",
      "parents": [
        "ec9c948546a84d0dcee851be1009a8066958e69d"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu May 03 03:30:34 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 03 03:30:34 2007 -0700"
      },
      "message": "[TCP]: Use S+L catcher only with SACK for now\n\nTCP has a transitional state when SACK is not in use during\nwhich this invariant is temporarily broken. Without SACK,\ntcp_clean_rtx_queue does not decrement sacked_out. Therefore\ncalls to tcp_sync_left_out before sacked_out is again\ncorrected by tcp_fastretrans_alert can trigger this trap as\nsacked_out still has couple of segments that are already out\nof window.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d551e4541dd60ae53459f77a971f2d6043431f5f",
      "tree": "cb328b1ec7ae32ad054c9d08de0274e4056a868f",
      "parents": [
        "575ee7140dabe9b9c4f66f4f867039b97e548867"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Apr 30 00:42:20 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Apr 30 00:58:16 2007 -0700"
      },
      "message": "[TCP] FRTO: RFC4138 allows Nagle override when new data must be sent\n\nThis is a corner case where less than MSS sized new data thingie\nis awaiting in the send queue. For F-RTO to work correctly, a\nnew data segment must be sent at certain point or F-RTO cannot\nbe used at all. RFC4138 allows overriding of Nagle at that\npoint.\n\nImplementation uses frto_counter states 2 and 3 to distinguish\nwhen Nagle override is needed.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "34588b4c046c34773e5a1a962da7b78b05c4d1bd",
      "tree": "d655bed4dfd053b4d2a30f647857300694d44c93",
      "parents": [
        "6aaf47fa48d3c44280810b1b470261d340e4ed87"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Apr 30 00:57:33 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 30 00:57:33 2007 -0700"
      },
      "message": "[TCP]: Catch skb with S+L bugs earlier\n\nSACKED_ACKED and LOST are mutually exclusive with SACK, thus\nhaving their sum larger than packets_out is bug with SACK.\nEventually these bugs trigger traps in the tcp_clean_rtx_queue\nwith SACK but it\u0027s much more informative to do this here.\n\nNon-SACK TCP, however, could get more than packets_out duplicate\nACKs which each increment sacked_out, so it makes sense to do\nthis kind of limitting for non-SACK TCP but not for SACK enabled\none. Perhaps the author had the opposite in mind but did the\nlogic accidently wrong way around? Anyway, the sacked_out\nincrementer code for non-SACK already deals this issue before\ncalling sync_left_out so this trapping can be done\nunconditionally.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "164891aadf1721fca4dce473bb0e0998181537c6",
      "tree": "991393ec7306da475cb306fcc7cb084f737ebadc",
      "parents": [
        "65d1b4a7e73fe0e1f5275ad7d2d3547981480886"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Mon Apr 23 22:26:16 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:29:45 2007 -0700"
      },
      "message": "[TCP]: Congestion control API update.\n\nDo some simple changes to make congestion control API faster/cleaner.\n* use ktime_t rather than timeval\n* merge rtt sampling into existing ack callback\n  this means one indirect call versus two per ack.\n* use flags bits to store options/settings\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9e412ba7632f71259a53085665d4983b78257b7c",
      "tree": "b02d6df7e5357a741bf6d52a93e04a52b84f1f90",
      "parents": [
        "38b4da383705394788aa09208917ba200792de4b"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Apr 20 22:18:02 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:29:34 2007 -0700"
      },
      "message": "[TCP]: Sed magic converts func(sk, tp, ...) -\u003e func(sk, ...)\n\nThis is (mostly) automated change using magic:\n\nsed -e \u0027/struct sock \\*sk/ N\u0027 -e \u0027/struct sock \\*sk/ N\u0027\n    -e \u0027/struct sock \\*sk/ N\u0027 -e \u0027/struct sock \\*sk/ N\u0027\n    -e \u0027s|struct sock \\*sk,[\\n\\t ]*struct tcp_sock \\*tp\\([^{]*\\n{\\n\\)|\n\t  struct sock \\*sk\\1\\tstruct tcp_sock *tp \u003d tcp_sk(sk);\\n|g\u0027\n    -e \u0027s|struct sock \\*sk, struct tcp_sock \\*tp|\n\t  struct sock \\*sk|g\u0027 -e \u0027s|sk, tp\\([^-]\\)|sk\\1|g\u0027\n\nFixed four unused variable (tp) warnings that were introduced.\n\nIn addition, manually added newlines after local variables and\ntweaked function arguments positioning.\n\n$ gcc --version\ngcc (GCC) 4.1.1 20060525 (Red Hat 4.1.1-1)\n...\n$ codiff -fV built-in.o.old built-in.o.new\nnet/ipv4/route.c:\n  rt_cache_flush |  +14\n 1 function changed, 14 bytes added\n\nnet/ipv4/tcp.c:\n  tcp_setsockopt |   -5\n  tcp_sendpage   |  -25\n  tcp_sendmsg    |  -16\n 3 functions changed, 46 bytes removed\n\nnet/ipv4/tcp_input.c:\n  tcp_try_undo_recovery |   +3\n  tcp_try_undo_dsack    |   +2\n  tcp_mark_head_lost    |  -12\n  tcp_ack               |  -15\n  tcp_event_data_recv   |  -32\n  tcp_rcv_state_process |  -10\n  tcp_rcv_established   |   +1\n 7 functions changed, 6 bytes added, 69 bytes removed, diff: -63\n\nnet/ipv4/tcp_output.c:\n  update_send_head          |   -9\n  tcp_transmit_skb          |  +19\n  tcp_cwnd_validate         |   +1\n  tcp_write_wakeup          |  -17\n  __tcp_push_pending_frames |  -25\n  tcp_push_one              |   -8\n  tcp_send_fin              |   -4\n 7 functions changed, 20 bytes added, 63 bytes removed, diff: -43\n\nbuilt-in.o.new:\n 18 functions changed, 40 bytes added, 178 bytes removed, diff: -138\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4ac02bab77438b484a5cf855a002fb6a1d592894",
      "tree": "8a7442a9c9fa39e147eca0f0728a0691712b191a",
      "parents": [
        "3ff50b7997fe06cd5d276b229967bb52d6b3b6c1"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Fri Apr 20 17:11:46 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:29:25 2007 -0700"
      },
      "message": "[TCP]: Uninline tcp_done().\n\nThe function is quite big and has several call sites and nothing\nto collapse by compiler optimization on inlining.\n\nBesides it\u0027s nicer to read in a in .c file.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "604763722c655c7e3f31ecf6f7b4dafcd26a7a15",
      "tree": "a5c07f0e22ac86e7ca7a8c80bd3f111116610edd",
      "parents": [
        "628592ccdbbb5bb751217cf02e2e7abb500d7ffe"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Apr 09 11:59:39 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:43 2007 -0700"
      },
      "message": "[NET]: Treat CHECKSUM_PARTIAL as CHECKSUM_UNNECESSARY\n\nWhen a transmitted packet is looped back directly, CHECKSUM_PARTIAL\nmaps to the semantics of CHECKSUM_UNNECESSARY.  Therefore we should\ntreat it as such in the stack.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aa8223c7bb0b05183e1737881ed21827aa5b9e73",
      "tree": "05c9832326edfeb878472f15cf8133ed9f014cdf",
      "parents": [
        "ab6a5bb6b28a970104a34f0f6959b73cf61bdc72"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 10 21:04:22 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:26 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce tcp_hdr(), remove skb-\u003eh.th\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fe067e8ab5e0dc5ca3c54634924c628da92090b4",
      "tree": "98f5a6ebbb770f16682cfc52caea2da1e7eeb73b",
      "parents": [
        "02ea4923b4997d7e1310c027081f46d584b9d714"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Mar 07 12:12:44 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:02 2007 -0700"
      },
      "message": "[TCP]: Abstract out all write queue operations.\n\nThis allows the write queue implementation to be changed,\nfor example, to one which allows fast interval searching.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d729f72dca9406025bcfa9c1f660d71d9ef0ff5",
      "tree": "69a3ca50c6e266853676a545a113f13f254ae535",
      "parents": [
        "39df232f1a9ba48d41c68ee7d4046756e709cf91"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sun Mar 04 16:12:44 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:32 2007 -0700"
      },
      "message": "[NET]: Convert xtime.tv_sec to get_seconds()\n\nWhere appropriate, convert references to xtime.tv_sec to the\nget_seconds() helper function.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3cfe3baaf07c9e40a75f9a70662de56df1c246a8",
      "tree": "989b2aff491b5df3aa0215f611a8c7f1360c67e9",
      "parents": [
        "c5e7af0df5d7234afd8596560d9f570cfc6c18bf"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Tue Feb 27 10:09:49 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:23 2007 -0700"
      },
      "message": "[TCP]: Add two new spurious RTO responses to FRTO\n\nNew sysctl tcp_frto_response is added to select amongst these\nresponses:\n\t- Rate halving based; reuses CA_CWR state (default)\n\t- Very conservative; used to be the only one available (\u003d1)\n\t- Undo cwr; undoes ssthresh and cwnd reductions (\u003d2)\n\nThe response with rate halving requires a new parameter to\ntcp_enter_cwr because FRTO has already reduced ssthresh and\ndoing a second reduction there has to be prevented. In addition,\nto keep things nice on 80 cols screen, a local variable was\nadded.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "886236c1247ab5e2ad9c73f6e9a652e3ae3c8b07",
      "tree": "f0ab2d6f6b6c98c6042be100db752c2d492669ae",
      "parents": [
        "5ef814753eb810d900fbd77af7c87f6d04f0e551"
      ],
      "author": {
        "name": "John Heffner",
        "email": "jheffner@psc.edu",
        "time": "Sun Mar 25 19:21:45 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:19 2007 -0700"
      },
      "message": "[TCP]: Add RFC3742 Limited Slow-Start, controlled by variable sysctl_tcp_max_ssthresh.\n\nSigned-off-by: John Heffner \u003cjheffner@psc.edu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "46d0de4ed92650b95f27acae09914996bbe624e7",
      "tree": "455e6a9772294ef16a88800709685797e1779b75",
      "parents": [
        "7c9a4a5b67926dd186d427bc5b9fce6ccbde154c"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:10:39 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:12 2007 -0700"
      },
      "message": "[TCP] FRTO: Entry is allowed only during (New)Reno like recovery\n\nThis interpretation comes from RFC4138:\n    \"If the sender implements some loss recovery algorithm other\n     than Reno or NewReno [FHG04], the F-RTO algorithm SHOULD\n     NOT be entered when earlier fast recovery is underway.\"\n\nI think the RFC means to say (especially in the light of\nAppendix B) that ...recovery is underway (not just fast recovery)\nor was underway when it was interrupted by an earlier (F-)RTO\nthat hasn\u0027t yet been resolved (snd_una has not advanced enough).\nThus, my interpretation is that whenever TCP has ever\nretransmitted other than head, basic version cannot be used\nbecause then the order assumptions which are used as FRTO basis\ndo not hold.\n\nNewReno has only the head segment retransmitted at a time.\nTherefore, walk up to the segment that has not been SACKed, if\nthat segment is not retransmitted nor anything before it, we know\nfor sure, that nothing after the non-SACKed segment should be\neither. This assumption is valid because TCPCB_EVER_RETRANS does\nnot leave holes but each non-SACKed segment is rexmitted\nin-order.\n\nCheck for retrans_out \u003e 1 avoids more expensive walk through the\nskb list, as we can know the result beforehand: F-RTO will not be\nallowed.\n\nSACKed skb can turn into non-SACked only in the extremely rare\ncase of SACK reneging, in this case we might fail to detect\nretransmissions if there were them for any other than head. To\nget rid of that feature, whole rexmit queue would have to be\nwalked (always) or FRTO should be prevented when SACK reneging\nhappens. Of course RTO should still trigger after reneging which\nmakes this issue even less likely to show up. And as long as the\nresponse is as conservative as it\u0027s now, nothing bad happens even\nthen.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bdaae17da81db79b9aa4dfbf43305cfeef64f6a8",
      "tree": "5dce126ae84073646c15417c30bd1b6b13660784",
      "parents": [
        "9ead9a1d385ae2c52a6dcf2828d84ce66be04fc2"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 22:59:58 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:02 2007 -0700"
      },
      "message": "[TCP] FRTO: Moved tcp_use_frto from tcp.h to tcp_input.c\n\nIn addition, removed inline.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ba7808eac17360dda459f82222859b0e3879854b",
      "tree": "b9774fb03694e7e019d57c6f0b306cdd1232d4d2",
      "parents": [
        "a0d78ebf3a0e33a1aeacf2fc518ad9273d6a1c2f"
      ],
      "author": {
        "name": "Frederik Deweerdt",
        "email": "frederik.deweerdt@gmail.com",
        "time": "Sun Feb 04 20:15:27 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Feb 08 12:38:44 2007 -0800"
      },
      "message": "[TCP]: remove tcp header from tcp_v4_check (take #2)\n\nThe tcphdr struct passed to tcp_v4_check is not used, the following\npatch removes it from the parameter list.\n\nThis adds the netfilter modifications missing in the patch I sent\nfor rc3-mm1.\n\nSigned-off-by: Frederik Deweerdt \u003cfrederik.deweerdt@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0d630cc0a6cb8ad544b5913a26ff1349ed7c8587",
      "tree": "b57945e7c6fa865dcf549822b6888b88cbc0c820",
      "parents": [
        "44f9a2fdc48ccb8bb510b6e1210bf15b3e10afdb"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Jan 04 12:25:16 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 04 12:25:16 2007 -0800"
      },
      "message": "[TCP]: Use old definition of before\n\nThis reverts the new (unambiguous) definition of the TCP `before\u0027\nrelation. As pointed out in an example by Herbert Xu, there is \nexisting code which implicitly requires the old definition in order\nto work correctly.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9a036b9c33f74c989c4c8ac0abe05e0ed88f1f25",
      "tree": "7eadf26579e996975e35a5f34298937f7bd114e8",
      "parents": [
        "1f8a5fb80e63aab63de81169ab749d73e7509e3f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 20 10:25:55 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Dec 22 11:12:01 2006 -0800"
      },
      "message": "[TCP]: Fix ambiguity in the `before\u0027 relation.\n\nWhile looking at DCCP sequence numbers, I stumbled over a problem with\nthe following definition of before in tcp.h:\n\nstatic inline int before(__u32 seq1, __u32 seq2)\n{\n        return (__s32)(seq1-seq2) \u003c 0;\n}\n\nProblem: This definition suffers from an an ambiguity, i.e. always\n\n           before(a, (a + 2^31) % 2^32)) \u003d 1\n           before((a + 2^31) % 2^32), a) \u003d 1\n\n         In text: when the difference between a and b amounts to 2^31,\n         a is always considered `before\u0027 b, the function can not decide.\n         The reason is that implicitly 0 is `before\u0027 1 ... 2^31-1 ... 2^31\n\nSolution: There is a simple fix, by defining before in such a way that\n          0 is no longer `before\u0027 2^31, i.e. 0 `before\u0027 1 ... 2^31-1\n          By not using the middle between 0 and 2^32, before can be made\n          unambiguous.\n          This is achieved by testing whether seq2-seq1 \u003e 0 (using signed\n          32-bit arithmetic).\n\nI attach a patch to codify this. Also the `after\u0027 relation is basically\na redefinition of `before\u0027, it is now defined as a macro after before.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8e5200f54062b8af0ed1d186ea0f113854786d89",
      "tree": "71e00b21ae4f8410413f70141aa275529dbbfb84",
      "parents": [
        "34bcca28335977e969338c98c6c43a1e08f592b2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Nov 20 18:06:37 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:27:16 2006 -0800"
      },
      "message": "[NET]: Fix assorted misannotations (from md5 and udplite merges).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b51655b958dfb1176bfcf99466231fdbef8751ff",
      "tree": "a53d0ec00d8db4169ba8c1c487fffbd34d6dde03",
      "parents": [
        "b1550f221255f7dd06048d832bf0f3d166840e1c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 14 21:40:42 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:23:38 2006 -0800"
      },
      "message": "[NET]: Annotate __skb_checksum_complete() and friends.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6b11687ef003ed595033da89643c8995676f929d",
      "tree": "f18b8e552e88aa213a24cd10bb4c67ba0bab8710",
      "parents": [
        "d6f5493c1a42b1203e5b0cb0507afd00bb2927bf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 14 21:28:24 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:23:29 2006 -0800"
      },
      "message": "[NET]: Annotate csum_tcpudp_magic() callers in net/*\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cfb6eeb4c860592edd123fdea908d23c6ad1c7dc",
      "tree": "361c073622faa540ef6602ef1b0a6e8c0a17fc60",
      "parents": [
        "bf6bce71eae386dbc37f93af7e5ad173450d9945"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Tue Nov 14 19:07:45 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:39 2006 -0800"
      },
      "message": "[TCP]: MD5 Signature Option (RFC2385) support.\n\nBased on implementation by Rick Payne.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ce7bc3bf15cbf5dc5a5587ccb6b04c5b4dde4336",
      "tree": "20ccf7f98ac5d1aabbc706fa876e8f361219db97",
      "parents": [
        "3ff825b28d3345ef381eceae22bf9d92231f23dc"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Nov 09 16:35:15 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:21:49 2006 -0800"
      },
      "message": "[TCP]: Restrict congestion control choices.\n\nAllow normal users to only choose among a restricted set of congestion\ncontrol choices.  The default is reno and what ever has been configured\nas default. But the policy can be changed by administrator at any time.\n\nFor example, to allow any choice:\n    cp /proc/sys/net/ipv4/tcp_available_congestion_control \\\n       /proc/sys/net/ipv4/tcp_allowed_congestion_control\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3ff825b28d3345ef381eceae22bf9d92231f23dc",
      "tree": "c3ca6ec1888ff912e0434f6621ecb2e46e8826f3",
      "parents": [
        "b68dbcab1dc70938fa5516d0ee82c0bf94e9a768"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Nov 09 16:32:06 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:21:48 2006 -0800"
      },
      "message": "[TCP]: Add tcp_available_congestion_control sysctl.\n\nCreate /proc/sys/net/ipv4/tcp_available_congestion_control\nthat reflects currently available TCP choices.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "72a3effaf633bcae9034b7e176bdbd78d64a71db",
      "tree": "b7a331527f1b15335a358f97809134f35587e57a",
      "parents": [
        "3c62f75aac7348ee262b1295cfcfeb3473f76815"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Nov 16 02:30:37 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:21:44 2006 -0800"
      },
      "message": "[NET]: Size listen hash tables using backlog hint\n\nWe currently allocate a fixed size (TCP_SYNQ_HSIZE\u003d512) slots hash table for\neach LISTEN socket, regardless of various parameters (listen backlog for\nexample)\n\nOn x86_64, this means order-1 allocations (might fail), even for \u0027small\u0027\nsockets, expecting few connections. On the contrary, a huge server wanting a\nbacklog of 50000 is slowed down a bit because of this fixed limit.\n\nThis patch makes the sizing of listen hash table a dynamic parameter,\ndepending of :\n- net.core.somaxconn tunable (default is 128)\n- net.ipv4.tcp_max_syn_backlog tunable (default : 256, 1024 or 128)\n- backlog value given by user application  (2nd parameter of listen())\n\nFor large allocations (bigger than PAGE_SIZE), we use vmalloc() instead of\nkmalloc().\n\nWe still limit memory allocation with the two existing tunables (somaxconn \u0026\ntcp_max_syn_backlog). So for standard setups, this patch actually reduce RAM\nusage.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3687b1dc6fe83a500ba4d3235704594f6a111a2d",
      "tree": "d57932b49d53234ea5daf2f2cbe780a8c347a1ad",
      "parents": [
        "118075b3cdc90e0815362365f3fc64d672ace0d6"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@nanjing-fnst.com",
        "time": "Sun Jul 30 20:35:54 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Aug 02 13:38:19 2006 -0700"
      },
      "message": "[TCP]: SNMPv2 tcpAttemptFails counter error\n\nRefer to RFC2012, tcpAttemptFails is defined as following:\n  tcpAttemptFails OBJECT-TYPE\n      SYNTAX      Counter32\n      MAX-ACCESS  read-only\n      STATUS      current\n      DESCRIPTION\n              \"The number of times TCP connections have made a direct\n              transition to the CLOSED state from either the SYN-SENT\n              state or the SYN-RCVD state, plus the number of times TCP\n              connections have made a direct transition to the LISTEN\n              state from the SYN-RCVD state.\"\n      ::\u003d { tcp 7 }\n\nWhen I lookup into RFC793, I found that the state change should occured\nunder following condition:\n  1. SYN-SENT -\u003e CLOSED\n     a) Received ACK,RST segment when SYN-SENT state.\n\n  2. SYN-RCVD -\u003e CLOSED\n     b) Received SYN segment when SYN-RCVD state(came from LISTEN).\n     c) Received RST segment when SYN-RCVD state(came from SYN-SENT).\n     d) Received SYN segment when SYN-RCVD state(came from SYN-SENT).\n\n  3. SYN-RCVD -\u003e LISTEN\n     e) Received RST segment when SYN-RCVD state(came from LISTEN).\n\nIn my test, those direct state transition can not be counted to\ntcpAttemptFails.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@nanjing-fnst.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a430a43d087545c96542ee64573237919109d370",
      "tree": "653b630298505d5a65e2e094868d83014e4b0dc4",
      "parents": [
        "89114afd435a486deb8583e89f490fc274444d18"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jul 08 13:34:56 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 08 13:34:56 2006 -0700"
      },
      "message": "[NET] gso: Fix up GSO packets with broken checksums\n\nCertain subsystems in the stack (e.g., netfilter) can break the partial\nchecksum on GSO packets.  Until they\u0027re fixed, this patch allows this to\nwork by recomputing the partial checksums through the GSO mechanism.\n\nOnce they\u0027ve all been converted to update the partial checksum instead of\nclearing it, this workaround can be removed.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bcd76111178ebccedd46a9b3eaff65c78e5a70af",
      "tree": "b0f059f3cb19d425d30cf42b2088aca4cae12a0a",
      "parents": [
        "adcfc7d0b4d7bc3c7edac6fdde9f3ae510bd6054"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jun 30 13:36:35 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 30 14:12:08 2006 -0700"
      },
      "message": "[NET]: Generalise TSO-specific bits from skb_setup_caps\n\nThis patch generalises the TSO-specific bits from sk_setup_caps by adding\nthe sk_gso_type member to struct sock.  This makes sk_setup_caps generic\nso that it can be used by TCPv6 or UFO.\n\nThe only catch is that whoever uses this must provide a GSO implementation\nfor their protocol which I think is a fair deal :) For now UFO continues to\nlive without a GSO implementation which is OK since it doesn\u0027t use the sock\ncaps field at the moment.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "576a30eb6453439b3c37ba24455ac7090c247b5a",
      "tree": "e0c427a61e3de5c93e797c09903d910f6f060e64",
      "parents": [
        "68c1692e3ea5d79f24cb5cc566c4a73939d13d25"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Jun 27 13:22:38 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Jun 29 16:57:53 2006 -0700"
      },
      "message": "[NET]: Added GSO header verification\n\nWhen GSO packets come from an untrusted source (e.g., a Xen guest domain),\nwe need to verify the header integrity before passing it to the hardware.\n\nSince the first step in GSO is to verify the header, we can reuse that\ncode by adding a new bit to gso_type: SKB_GSO_DODGY.  Packets with this\nbit set can only be fed directly to devices with the corresponding bit\nNETIF_F_GSO_ROBUST.  If the device doesn\u0027t have that bit, then the skb\nis fed to the GSO engine which will allow the packet to be sent to the\nhardware if it passes the header check.\n\nThis patch changes the sg flag to a full features flag.  The same method\ncan be used to implement TSO ECN support.  We simply have to mark packets\nwith CWR set with SKB_GSO_ECN so that only hardware with a corresponding\nNETIF_F_TSO_ECN can accept them.  The GSO engine can either fully segment\nthe packet, or segment the first MTU and pass the rest to the hardware for\nfurther segmentation.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f4c50d990dcf11a296679dc05de3873783236711",
      "tree": "f4daf1c80fe591d45631e998b0b5d31d6fe76d85",
      "parents": [
        "f6a78bfcb141f963187464bac838d46a81c3882a"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jun 22 03:02:40 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 23 02:07:33 2006 -0700"
      },
      "message": "[NET]: Add software TSOv4\n\nThis patch adds the GSO implementation for IPv4 TCP.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7967168cefdbc63bf332d6b1548eca7cd65ebbcc",
      "tree": "c45759149ae0acdc89d746e556a0ae278d11776d",
      "parents": [
        "d4828d85d188dc70ed172802e798d3978bb6e29e"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jun 22 02:40:14 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 23 02:07:29 2006 -0700"
      },
      "message": "[NET]: Merge TSO/UFO fields in sk_buff\n\nHaving separate fields in sk_buff for TSO/UFO (tso_size/ufo_size) is not\ngoing to scale if we add any more segmentation methods (e.g., DCCP).  So\nlet\u0027s merge them.\n\nThey were used to tell the protocol of a packet.  This function has been\nsubsumed by the new gso_type field.  This is essentially a set of netdev\nfeature bits (shifted by 16 bits) that are required to process a specific\nskb.  As such it\u0027s easy to tell whether a given device can process a GSO\nskb: you just have to and the gso_type field and the netdev\u0027s features\nfield.\n\nI\u0027ve made gso_type a conjunction.  The idea is that you have a base type\n(e.g., SKB_GSO_TCPV4) that can be modified further to support new features.\nFor example, if we add a hardware TSO type that supports ECN, they would\ndeclare NETIF_F_TSO | NETIF_F_TSO_ECN.  All TSO packets with CWR set would\nhave a gso_type of SKB_GSO_TCPV4 | SKB_GSO_TCPV4_ECN while all other TSO\npackets would be SKB_GSO_TCPV4.  This means that only the CWR packets need\nto be emulated in software.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cee4cca740d209bcb4b9857baa2253d5ba4e3fbe",
      "tree": "88a23004393ea4a32cad79839479c8e653e401d6",
      "parents": [
        "2edc322d420a4cec8dbc184a1220ecd7fa9f8ae6",
        "9348f0de2d2b541b4ba64fb1f4efee9710a3d731"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 20 15:10:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 20 15:10:08 2006 -0700"
      },
      "message": "Merge git://git.infradead.org/hdrcleanup-2.6\n\n* git://git.infradead.org/hdrcleanup-2.6: (63 commits)\n  [S390] __FD_foo definitions.\n  Switch to __s32 types in joystick.h instead of C99 types for consistency.\n  Add \u003csys/types.h\u003e to headers included for userspace in \u003clinux/input.h\u003e\n  Move inclusion of \u003clinux/compat.h\u003e out of user scope in asm-x86_64/mtrr.h\n  Remove struct fddi_statistics from user view in \u003clinux/if_fddi.h\u003e\n  Move user-visible parts of drivers/s390/crypto/z90crypt.h to include/asm-s390\n  Revert include/media changes: Mauro says those ioctls are only used in-kernel(!)\n  Include \u003clinux/types.h\u003e and use __uXX types in \u003clinux/cramfs_fs.h\u003e\n  Use __uXX types in \u003clinux/i2o_dev.h\u003e, include \u003clinux/ioctl.h\u003e too\n  Remove private struct dx_hash_info from public view in \u003clinux/ext3_fs.h\u003e\n  Include \u003clinux/types.h\u003e and use __uXX types in \u003clinux/affs_hardblocks.h\u003e\n  Use __uXX types in \u003clinux/divert.h\u003e for struct divert_blk et al.\n  Use __u32 for elf_addr_t in \u003casm-powerpc/elf.h\u003e, not u32. It\u0027s user-visible.\n  Remove PPP_FCS from user view in \u003clinux/ppp_defs.h\u003e, remove __P mess entirely\n  Use __uXX types in user-visible structures in \u003clinux/nbd.h\u003e\n  Don\u0027t use \u0027u32\u0027 in user-visible struct ip_conntrack_old_tuple.\n  Use __uXX types for S390 DASD volume label definitions which are user-visible\n  S390 BIODASDREADCMB ioctl should use __u64 not u64 type.\n  Remove unneeded inclusion of \u003clinux/time.h\u003e from \u003clinux/ufs_fs.h\u003e\n  Fix private integer types used in V4L2 ioctls.\n  ...\n\nManually resolve conflict in include/linux/mtd/physmap.h\n"
    },
    {
      "commit": "35089bb203f44e33b6bbb6c4de0b0708f9a48921",
      "tree": "3e9ca3dbc12a063121c3ecba2558400307d4acd5",
      "parents": [
        "9e1881dec9e3e8f8408551cddfda489857a7ec99"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jun 13 22:33:04 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:30:53 2006 -0700"
      },
      "message": "[TCP]: Add tcp_slow_start_after_idle sysctl.\n\nA lot of people have asked for a way to disable tcp_cwnd_restart(),\nand it seems reasonable to add a sysctl to do that.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "72dc5b9225c53310c010b68a70ea97c8c8e24bdf",
      "tree": "ebd23e7cbe9846414b6fa8f8327f37043447e019",
      "parents": [
        "a4ed25849532728effaa0665c92e08e029e41407"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Mon Jun 05 17:30:08 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:29:29 2006 -0700"
      },
      "message": "[TCP]: Minimum congestion window consolidation.\n\nMany of the TCP congestion methods all just use ssthresh\nas the minimum congestion window on decrease.  Rather than\nduplicating the code, just have that be the default if that\nhandle in the ops structure is not set.\n\nMinor behaviour change to TCP compound.  It probably wants\nto use this (ssthresh) as lower bound, rather than ssthresh/2\nbecause the latter causes undershoot on loss.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9593782585e0cf70babe787a8463d492a68b1744",
      "tree": "149401a3973036452a07bed899e70d3b92abe1bf",
      "parents": [
        "624d1164730d58a494cc5aa4afa37d02c41e83a7"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue May 23 18:02:55 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:25:54 2006 -0700"
      },
      "message": "[I/OAT]: Add a sysctl for tuning the I/OAT offloaded I/O threshold\n\nAny socket recv of less than this ammount will not be offloaded\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0e4b4992b8007c6b62ec143cbbb292f98813ca11",
      "tree": "fccdef8ec226d1febc5f7c22a793b10337026187",
      "parents": [
        "97fc2f0848c928c63c2ae619deee61a0b1107b69"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue May 23 18:00:16 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:25:50 2006 -0700"
      },
      "message": "[I/OAT]: Rename cleanup_rbuf to tcp_cleanup_rbuf and make non-static\n\nNeeded to be able to call tcp_cleanup_rbuf in tcp_input.c for I/OAT\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "97fc2f0848c928c63c2ae619deee61a0b1107b69",
      "tree": "651f5ec78128605736d6c777a13697d5e58a1b62",
      "parents": [
        "de5506e155276d385712c2aa1c2d9a27cd4ed947"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue May 23 17:55:33 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:25:48 2006 -0700"
      },
      "message": "[I/OAT]: Structure changes for TCP recv offload to I/OAT\n\nAdds an async_wait_queue and some additional fields to tcp_sock, and a\ndma_cookie_t to sk_buff.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "0803dbed7a23721d091639c9e173c0389dcd524a",
      "tree": "349668b826a66cf669dc48612a12047620662af9",
      "parents": [
        "c08e49611a8b4e38a75bf217e1029a48faf10b82"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Mar 31 02:25:46 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Mar 31 02:25:46 2006 -0800"
      },
      "message": "[TCP]: Kill unused extern decl for tcp_v4_hash_connecting()\n\nNoticed by Alan Menegotto.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3fdadf7d27e3fbcf72930941884387d1f4936f04",
      "tree": "167072cf1e60b6b307610563614b435ff0caa52d",
      "parents": [
        "c750360938b403e6cc193d293cfbcb099dd6c60e"
      ],
      "author": {
        "name": "Dmitry Mishin",
        "email": "dim@openvz.org",
        "time": "Mon Mar 20 22:45:21 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:45:21 2006 -0800"
      },
      "message": "[NET]: {get|set}sockopt compatibility layer\n\nThis patch extends {get|set}sockopt compatibility layer in order to\nmove protocol specific parts to their place and avoid huge universal\nnet/compat.c file in the future.\n\nSigned-off-by: Dmitry Mishin \u003cdim@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "15d99e02babae8bc20b836917ace07d93e318149",
      "tree": "6a8941a3ef45f831161730aeee4a2fcc18cca78a",
      "parents": [
        "c1b1bce8527c2c3cac7e2520ca54b7c04281033e"
      ],
      "author": {
        "name": "Rick Jones",
        "email": "rick.jones2@hp.com",
        "time": "Mon Mar 20 22:40:29 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:40:29 2006 -0800"
      },
      "message": "[TCP]: sysctl to allow TCP window \u003e 32767 sans wscale\n\nBack in the dark ages, we had to be conservative and only allow 15-bit\nwindow fields if the window scale option was not negotiated.  Some\nancient stacks used a signed 16-bit quantity for the window field of\nthe TCP header and would get confused.\n\nThose days are long gone, so we can use the full 16-bits by default\nnow.\n\nThere is a sysctl added so that we can still interact with such old\nstacks\n\nSigned-off-by: Rick Jones \u003crick.jones2@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5d424d5a674f782d0659a3b66d951f412901faee",
      "tree": "579871172044e02e626a90388d19ec55cf2d1fc4",
      "parents": [
        "1d60290f27e7dc4bce2c43922d0bfa9abd246fc9"
      ],
      "author": {
        "name": "John Heffner",
        "email": "jheffner@psc.edu",
        "time": "Mon Mar 20 17:53:41 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 17:53:41 2006 -0800"
      },
      "message": "[TCP]: MTU probing\n\nImplementation of packetization layer path mtu discovery for TCP, based on\nthe internet-draft currently found at\n\u003chttp://www.ietf.org/internet-drafts/draft-ietf-pmtud-method-05.txt\u003e.\n\nSigned-off-by: John Heffner \u003cjheffner@psc.edu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "40efc6fa179f440a008333ea98f701bc35a1f97f",
      "tree": "ef087df36868362c0238a0aa4373532622e49068",
      "parents": [
        "3c19065a1e2c862becc576bc65e54f2bc1cbffe6"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Tue Jan 03 16:03:49 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 03 16:03:49 2006 -0800"
      },
      "message": "[TCP]: less inline\u0027s\n\nTCP inline usage cleanup:\n * get rid of inline in several places\n * replace __inline__ with inline where possible\n * move functions used in one file out of tcp.h\n * let compiler decide on used once cases\n\nOn x86_64: \n   text\t   data\t    bss\t    dec\t    hex\tfilename\n3594701\t 648348\t 567400\t4810449\t 4966d1\tvmlinux.orig\n3593133\t 648580\t 567400\t4809113\t 496199\tvmlinux\n\nOn sparc64:\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n2538278\t 406152\t 530392\t3474822\t 350586\tvmlinux.ORIG\n2536382\t 406384\t 530392\t3473158\t 34ff06\tvmlinux\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8639a11e23d9eb0a6ceac2feed27acdfbb158f95",
      "tree": "14895d8e71a0561b46da04421f55364a52e46b35",
      "parents": [
        "14c850212ed8f8cbb5972ad6b8812e08a0bc901c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Dec 27 15:17:57 2005 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:11:22 2006 -0800"
      },
      "message": "[TCP]: Don\u0027t use __constant_htonl for a non const arg\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6d6ee43e0b8b8d4847627fd43739b98ec2b9404f",
      "tree": "a2a66381d2351610c81362bf218e743f6ccf56ef",
      "parents": [
        "fc44b9805324c0ad2733ea2feea9935cc056709d"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Dec 13 23:25:19 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:10:54 2006 -0800"
      },
      "message": "[TWSK]: Introduce struct timewait_sock_ops\n\nSo that we can share several timewait sockets related functions and\nmake the timewait mini sockets infrastructure closer to the request\nmini sockets one.\n\nNext changesets will take advantage of this, moving more code out of\nTCP and DCCP v4 and v6 to common infrastructure.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8292a17a399ffb7c5c8b083db4ad994e090055f7",
      "tree": "1544436169ba1dc2eface34664a203c2c17a8d65",
      "parents": [
        "ca304b6104ffdd120bb6687a88a0625e58bc71cd"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Dec 13 23:15:52 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:10:38 2006 -0800"
      },
      "message": "[ICSK]: Rename struct tcp_func to struct inet_connection_sock_af_ops\n\nAnd move it to struct inet_connection_sock. DCCP will use it in the\nupcoming changesets.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "31f3426904e066f17e3f88c468a2f7c869ad4aac",
      "tree": "11e67ebf551552dad83cf53815945ff299344273",
      "parents": [
        "cf225356578326308b16a0fd03ff3fa72fe3da07"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Tue Nov 15 15:17:10 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 15 15:17:10 2005 -0800"
      },
      "message": "[TCP]: More spelling fixes.\n\nFrom Joe Perches\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6a438bbe68c7013a42d9c5aee5a40d7dafdbe6ec",
      "tree": "09775f0479168cd53494155a5789e78df218b497",
      "parents": [
        "caa20d9abe810be2ede9612b6c9db6ce7d6edf80"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Nov 10 17:14:59 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 10 17:14:59 2005 -0800"
      },
      "message": "[TCP]: speed up SACK processing\n\nUse \"hints\" to speed up the SACK processing. Various forms \nof this have been used by TCP developers (Web100, STCP, BIC)\nto avoid the 2x linear search of outstanding segments.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "caa20d9abe810be2ede9612b6c9db6ce7d6edf80",
      "tree": "18d027397fa5ddf9dcfb193ba114f3b8276199e2",
      "parents": [
        "326f36e9e7de362e09745ce6f84b65e7ccac33ba"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Nov 10 17:13:47 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 10 17:13:47 2005 -0800"
      },
      "message": "[TCP]: spelling fixes\n\nMinor spelling fixes for TCP code.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9772efb970780aeed488c19d8b4afd46c3b484af",
      "tree": "de016aaa29c8a95e98c7abaa70c8b590160e2886",
      "parents": [
        "7faffa1c7fb9b8e8917e3225d4e2638270c0a48b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Nov 10 17:09:53 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 10 17:09:53 2005 -0800"
      },
      "message": "[TCP]: Appropriate Byte Count support\n\nThis is an updated version of the RFC3465 ABC patch originally\nfor Linux 2.6.11-rc4 by Yee-Ting Li. ABC is a way of counting\nbytes ack\u0027d rather than packets when updating congestion control.\n\nThe orignal ABC described in the RFC applied to a Reno style\nalgorithm. For advanced congestion control there is little\nchange after leaving slow start.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7faffa1c7fb9b8e8917e3225d4e2638270c0a48b",
      "tree": "3c9f998639bc2374a86b1f2251ae421e625c1e9d",
      "parents": [
        "2d2abbab63f6726a147ae61ada39bf2c9ee0db9a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Nov 10 17:07:24 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 10 17:07:24 2005 -0800"
      },
      "message": "[TCP]: add tcp_slow_start helper\n\nMove all the code that does linear TCP slowstart to one\ninline function to ease later patch to add ABC support.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f4805eded7d38c4e42bf473dc5eb2f34853beb06",
      "tree": "1f7e0e90642e775b4e8c2c47d84e2df8ce2de3c3",
      "parents": [
        "6e6ece5dc6022e8086c565498d23511bbceda811"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Nov 10 16:53:30 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 10 16:53:30 2005 -0800"
      },
      "message": "[TCP]: fix congestion window update when using TSO deferal\n\nTCP peformance with TSO over networks with delay is awful.\nOn a 100Mbit link with 150ms delay, we get 4Mbits/sec with TSO and\n50Mbits/sec without TSO.\n\nThe problem is with TSO, we intentionally do not keep the maximum\nnumber of packets in flight to fill the window, we hold out to until \nwe can send a MSS chunk. But, we also don\u0027t update the congestion window \nunless we have filled, as per RFC2861.\n\nThis patch replaces the check for the congestion window being full\nwith something smarter that accounts for TSO.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fb286bb2990a107009dbf25f6ffebeb7df77f9be",
      "tree": "0eede2c37f1b3831e59601933eebf6b82be75ffc",
      "parents": [
        "1064e944d03eb7a72c0fa11236d5e69cfd877a71"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Nov 10 13:01:24 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 10 13:01:24 2005 -0800"
      },
      "message": "[NET]: Detect hardware rx checksum faults correctly\n\nHere is the patch that introduces the generic skb_checksum_complete\nwhich also checks for hardware RX checksum faults.  If that happens,\nit\u0027ll call netdev_rx_csum_fault which currently prints out a stack\ntrace with the device name.  In future it can turn off RX checksum.\n\nI\u0027ve converted every spot under net/ that does RX checksum checks to\nuse skb_checksum_complete or __skb_checksum_complete with the\nexceptions of:\n\n* Those places where checksums are done bit by bit.  These will call\nnetdev_rx_csum_fault directly.\n\n* The following have not been completely checked/converted:\n\nipmr\nip_vs\nnetfilter\ndccp\n\nThis patch is based on patches and suggestions from Stephen Hemminger\nand David S. Miller.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6475be16fd9b3c6746ca4d18959246b13c669ea8",
      "tree": "03e0da36680ddb227591a4007fa4e6f18d82782c",
      "parents": [
        "ef015786152adaff5a6a8bf0c8ea2f70cee8059d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 01 22:47:01 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 01 22:47:01 2005 -0700"
      },
      "message": "[TCP]: Keep TSO enabled even during loss events.\n\nAll we need to do is resegment the queue so that\nwe record SACK information accurately.  The edges\nof the SACK blocks guide our resegmenting decisions.\n\nWith help from Herbert Xu.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "20380731bc2897f2952ae055420972ded4cd786e",
      "tree": "abd31e5ebfadcf4f9024634eec8b11855029e512",
      "parents": [
        "9deff7f2365958c5c5aa8cb5a0dd651c4dd83f8f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Aug 16 02:18:02 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:01:32 2005 -0700"
      },
      "message": "[NET]: Fix sparse warnings\n\nOf this type, mostly:\n\nCHECK   net/ipv6/netfilter.c\nnet/ipv6/netfilter.c:96:12: warning: symbol \u0027ipv6_netfilter_init\u0027 was not declared. Should it be static?\nnet/ipv6/netfilter.c:101:6: warning: symbol \u0027ipv6_netfilter_fini\u0027 was not declared. Should it be static?\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "17b085eacef81a6286bd478f2ec75e04abb091cb",
      "tree": "b990ca4a3b8e2c08fbcf09ba18e9ae469754b2df",
      "parents": [
        "a8c2190ee7da1a1dc68ff1a6b5f03feb61e523a5"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Aug 12 12:59:17 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:57:54 2005 -0700"
      },
      "message": "[INET_DIAG]: Move the tcp_diag interface to the proper place\n\nWith this the previous setup is back, i.e. tcp_diag can be built as a module,\nas dccp_diag and both share the infrastructure available in inet_diag.\n\nIf one selects CONFIG_INET_DIAG as module CONFIG_INET_TCP_DIAG will also be\nbuilt as a module, as will CONFIG_INET_DCCP_DIAG, if CONFIG_IP_DCCP was\nselected static or as a module, if CONFIG_INET_DIAG is y, being statically\nlinked CONFIG_INET_TCP_DIAG will follow suit and CONFIG_INET_DCCP_DIAG will be\nbuilt in the same manner as CONFIG_IP_DCCP.\n\nNow to aim at UDP, converting it to use inet_hashinfo, so that we can use\niproute2 for UDP sockets as well.\n\nAh, just to show an example of this new infrastructure working for DCCP :-)\n\n[root@qemu ~]# ./ss -dane\nState      Recv-Q Send-Q Local Address:Port  Peer Address:Port\nLISTEN     0      0                  *:5001             *:*     ino:942 sk:cfd503a0\nESTAB      0      0          127.0.0.1:5001     127.0.0.1:32770 ino:943 sk:cfd50a60\nESTAB      0      0          127.0.0.1:32770    127.0.0.1:5001  ino:947 sk:cfd50700\nTIME-WAIT  0      0          127.0.0.1:32769    127.0.0.1:5001  timer:(timewait,3.430ms,0) ino:0 sk:cf209620\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "73c1f4a033675f168df7e98bbeeafca3c644b8a6",
      "tree": "041e0c203be710b39c8b3a1c18d23e7a50e321a6",
      "parents": [
        "4f5736c4c7cf6f9bd8db82b712cfdd51c87e06b9"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Aug 12 12:51:49 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:57:44 2005 -0700"
      },
      "message": "[TCPDIAG]: Just rename everything to inet_diag\n\nNext changeset will rename tcp_diag.[ch] to inet_diag.[ch].\n\nI\u0027m taking this longer route so as to easy review, making clear the changes\nmade all along the way.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6687e988d9aeaccad6774e6a8304f681f3ec0a03",
      "tree": "ecd3d28f9989847aa1dcde4782de0210aeadc290",
      "parents": [
        "64ce207306debd7157f47282be94770407bec01c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Wed Aug 10 04:03:31 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:56:18 2005 -0700"
      },
      "message": "[ICSK]: Move TCP congestion avoidance members to icsk\n\nThis changeset basically moves tcp_sk()-\u003e{ca_ops,ca_state,etc} to inet_csk(),\nminimal renaming/moving done in this changeset to ease review.\n\nMost of it is just changes of struct tcp_sock * to struct sock * parameters.\n\nWith this we move to a state closer to two interesting goals:\n\n1. Generalisation of net/ipv4/tcp_diag.c, becoming inet_diag.c, being used\n   for any INET transport protocol that has struct inet_hashinfo and are\n   derived from struct inet_connection_sock. Keeps the userspace API, that will\n   just not display DCCP sockets, while newer versions of tools can support\n   DCCP.\n\n2. INET generic transport pluggable Congestion Avoidance infrastructure, using\n   the current TCP CA infrastructure with DCCP.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "696ab2d3bffc746fb8cf3712f066d42b9886aeed",
      "tree": "d0990b1d6f5fd6b3b7ddce553a16cccf6f029651",
      "parents": [
        "295ff7edb8f72b77d524759266f7524deae379b3"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Aug 09 20:45:03 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:55:58 2005 -0700"
      },
      "message": "[TIMEWAIT]: Move inet_timewait_death_row routines to net/ipv4/inet_timewait_sock.c\n\nAlso export the ones that will be used in the next changeset, when\nDCCP uses this infrastructure.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "295ff7edb8f72b77d524759266f7524deae379b3",
      "tree": "e16e99e324444fb01ae3dfd221b5d47a88acfeb8",
      "parents": [
        "0b4e03bf0bc43ad6250a1e2fa25fc3eb2b028977"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Aug 09 20:44:40 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:55:48 2005 -0700"
      },
      "message": "[TIMEWAIT]: Introduce inet_timewait_death_row\n\nThat groups all of the tables and variables associated to the TCP timewait\nschedulling/recycling/killing code, that now can be isolated from the TCP\nspecific code and used by other transport protocols, such as DCCP.\n\nNext changeset will move this code to net/ipv4/inet_timewait_sock.c\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a019d6fe2b9da68ea4ba6cf3c4e86fc1dbf554c3",
      "tree": "f82f0523c313228d64998fac30790edcfd0785c3",
      "parents": [
        "7c657876b63cb1d8a2ec06f8fc6c37bb8412e66c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:15:09 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:49:50 2005 -0700"
      },
      "message": "[ICSK]: Move generalised functions from tcp to inet_connection_sock\n\nThis also improves reqsk_queue_prune and renames it to\ninet_csk_reqsk_queue_prune, as it deals with both inet_connection_sock\nand inet_request_sock objects, not just with request_sock ones thus\nbelonging to inet_request_sock.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "295f7324ff8d9ea58b4d3ec93b1aaa1d80e048a9",
      "tree": "509c113d2622a28836303590ba1a40cecea59d3b",
      "parents": [
        "0a5578cf8e5e045aaa68643c17ce885426697c6b"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:11:56 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:49:29 2005 -0700"
      },
      "message": "[ICSK]: Introduce reqsk_queue_prune from code in tcp_synack_timer\n\nWith this we\u0027re very close to getting all of the current TCP\nrefactorings in my dccp-2.6 tree merged, next changeset will export\nsome functions needed by the current DCCP code and then dccp-2.6.git\nwill be born!\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a5578cf8e5e045aaa68643c17ce885426697c6b",
      "tree": "1c58ba5c3236499ec5abeedcc43faa7bed816b07",
      "parents": [
        "9f1d2604c71498579609b1532fedc5a89276bb00"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:11:41 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:49:24 2005 -0700"
      },
      "message": "[ICSK]: Generalise tcp_listen_{start,stop}\n\nThis also moved inet_iif from tcp to inet_hashtables.h, as it is\nneeded by the inet_lookup callers, perhaps this needs a bit of\npolishing, but for now seems fine.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3f421baa4720b708022f8bcc52a61e5cd6f10bf8",
      "tree": "e4201b1e2356cea8b7bd8d68dfba06e84002a77d",
      "parents": [
        "463c84b97f24010a67cd871746d6a7e4c925a5f9"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:11:08 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:49:14 2005 -0700"
      },
      "message": "[NET]: Just move the inet_connection_sock function from tcp sources\n\nCompleting the previous changeset, this also generalises tcp_v4_synq_add,\nrenaming it to inet_csk_reqsk_queue_hash_add, already geing used in the\nDCCP tree, which I plan to merge RSN.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "463c84b97f24010a67cd871746d6a7e4c925a5f9",
      "tree": "48df67ede4ebb5d12b3c0ae55d72531574bd51a6",
      "parents": [
        "87d11ceb9deb7a3f13fdee6e89d9bb6be7d27a71"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:10:42 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:43:19 2005 -0700"
      },
      "message": "[NET]: Introduce inet_connection_sock\n\nThis creates struct inet_connection_sock, moving members out of struct\ntcp_sock that are shareable with other INET connection oriented\nprotocols, such as DCCP, that in my private tree already uses most of\nthese members.\n\nThe functions that operate on these members were renamed, using a\ninet_csk_ prefix while not being moved yet to a new file, so as to\nease the review of these changes.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8feaf0c0a5488b3d898a9c207eb6678f44ba3f26",
      "tree": "ddd004afe2f7c8295f6fdb94d34f78a42b5961cb",
      "parents": [
        "33b62231908c58ae04185e4f1063d1e35a7c8576"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:09:30 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:42:13 2005 -0700"
      },
      "message": "[INET]: Generalise tcp_tw_bucket, aka TIME_WAIT sockets\n\nThis paves the way to generalise the rest of the sock ID lookup\nroutines and saves some bytes in TCPv4 TIME_WAIT sockets on distro\nkernels (where IPv6 is always built as a module):\n\n[root@qemu ~]# grep tw_sock /proc/slabinfo\ntw_sock_TCPv6  0  0  128  31  1\ntw_sock_TCP    0  0   96  41  1\n[root@qemu ~]#\n\nNow if a protocol wants to use the TIME_WAIT generic infrastructure it\nonly has to set the sk_prot-\u003etwsk_obj_size field with the size of its\ninet_timewait_sock derived sock and proto_register will create\nsk_prot-\u003etwsk_slab, for now its only for INET sockets, but we can\nintroduce timewait_sock later if some non INET transport protocolo\nwants to use this stuff.\n\nNext changesets will take advantage of this new infrastructure to\ngeneralise even more TCP code.\n\n[acme@toy net-2.6.14]$ grep built-in /tmp/before.size /tmp/after.size\n/tmp/before.size: 188646   11764    5068  205478   322a6 net/ipv4/built-in.o\n/tmp/after.size:  188144   11764    5068  204976   320b0 net/ipv4/built-in.o\n[acme@toy net-2.6.14]$\n\nTested with both IPv4 \u0026 IPv6 (::1 (localhost) \u0026 ::ffff:172.20.0.1\n(qemu host)).\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c752f0739f09b803aed191c4765a3b6650a08653",
      "tree": "33dcc7acf66ec51952b76276c758e38811f4f708",
      "parents": [
        "f3f05f7046e7c85b04af390d95a82a27160dd5d0"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:08:28 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:41:54 2005 -0700"
      },
      "message": "[TCP]: Move the tcp sock states to net/tcp_states.h\n\nLots of places just needs the states, not even linux/tcp.h, where this\nenum was, needs it.\n\nThis speeds up development of the refactorings as less sources are\nrebuilt when things get moved from net/tcp.h.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f3f05f7046e7c85b04af390d95a82a27160dd5d0",
      "tree": "9a4a552c030ea8b2428ceee75311d73a6b339255",
      "parents": [
        "6e04e02165a7209a71db553b7bc48d68421e5ebf"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:08:09 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:41:49 2005 -0700"
      },
      "message": "[INET]: Generalise the tcp_listen_ lock routines\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6e04e02165a7209a71db553b7bc48d68421e5ebf",
      "tree": "004157924013e6c099cacac59f39d3dd61f3e0e5",
      "parents": [
        "2d8c4ce51903636ce0f60addc8134aa50ab8fa76"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:07:35 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:41:44 2005 -0700"
      },
      "message": "[INET]: Move tcp_port_rover to inet_hashinfo\n\nAlso expose all of the tcp_hashinfo members, i.e. killing those\ntcp_ehash, etc macros, this will more clearly expose already generic\nfunctions and some that need just a bit of work to become generic, as\nwe\u0027ll see in the upcoming changesets.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2d8c4ce51903636ce0f60addc8134aa50ab8fa76",
      "tree": "1ea4d4faf831b832489b30b13d8910777020feed",
      "parents": [
        "ff21d5774b4a186c98be6398eacde75d896db804"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:07:13 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:40:29 2005 -0700"
      },
      "message": "[INET]: Generalise tcp_bind_hash \u0026 tcp_inherit_port\n\nThis required moving tcp_bucket_cachep to inet_hashinfo.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a55ebcc4c4532107ad9eee1c9bb698ab5f12c00f",
      "tree": "964be5918610e6f89cc7f2fee48418979b48773b",
      "parents": [
        "77d8bf9c6208eb535f05718168ffcc476be0ca8c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:01:14 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:38:48 2005 -0700"
      },
      "message": "[INET]: Move bind_hash from tcp_sk to inet_sk\n\nThis should really be in a inet_connection_sock, but I\u0027m leaving it\nfor a later optimization, when some more fields common to INET\ntransport protocols now in tcp_sk or inet_sk will be chunked out into\ninet_connection_sock, for now its better to concentrate on getting the\nchanges in the core merged to leave the DCCP tree with only DCCP\nspecific code.\n\nNext changesets will take advantage of this move to generalise things\nlike tcp_bind_hash, tcp_put_port, tcp_inherit_port, making the later\nreceive a inet_hashinfo parameter, and even __tcp_tw_hashdance, etc in\nthe future, when tcp_tw_bucket gets transformed into the struct\ntimewait_sock hierarchy.\n\ntcp_destroy_sock also is eligible as soon as tcp_orphan_count gets\nmoved to sk_prot.\n\nA cascade of incremental changes will ultimately make the tcp_lookup\nfunctions be fully generic.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "77d8bf9c6208eb535f05718168ffcc476be0ca8c",
      "tree": "255d84f4f222161235d54f82793667cccc509229",
      "parents": [
        "0f7ff9274e72fd254fbd1ab117bbc1db6e7cdb34"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:00:51 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:38:39 2005 -0700"
      },
      "message": "[INET]: Move the TCP hashtable functions/structs to inet_hashtables.[ch]\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0f7ff9274e72fd254fbd1ab117bbc1db6e7cdb34",
      "tree": "95736729a2f5302666604c4287a2af97ececd734",
      "parents": [
        "304a16180fb6d2b153b45f6fbbcec1fa814496e5"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 19:59:44 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:38:32 2005 -0700"
      },
      "message": "[INET]: Just rename the TCP hashtable functions/structs to inet_\n\nThis is to break down the complexity of the series of patches,\nmaking it very clear that this one just does:\n\n1. renames tcp_ prefixed hashtable functions and data structures that\n   were already mostly generic to inet_ to share it with DCCP and\n   other INET transport protocols.\n\n2. Removes not used functions (__tb_head \u0026 tb_head)\n\n3. Removes some leftover prototypes in the headers (tcp_bucket_unlock \u0026\n   tcp_v4_build_header)\n\nNext changesets will move tcp_sk(sk)-\u003ebind_hash to inet_sock so that we can\nmake functions such as tcp_inherit_port, __tcp_inherit_port, tcp_v4_get_port,\n__tcp_put_port,  generic and get others like tcp_destroy_sock closer to generic\n(tcp_orphan_count will go to sk-\u003esk_prot to allow this).\n\nEventually most of these functions will be used passing the transport protocol\ninet_hashinfo structure.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "32519f11d38ea8f4f60896763bacec7db1760f9c",
      "tree": "9e3fe09e4f7468f119350d80a6ecb8d871a86dd0",
      "parents": [
        "6cbb0df788b90777a7ed0f9d8261260353f48076"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 19:50:02 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:37:55 2005 -0700"
      },
      "message": "[INET]: Introduce inet_sk_rebuild_header\n\nFrom tcp_v4_rebuild_header, that already was pretty generic, I only\nneeded to use sk-\u003esk_protocol instead of the hardcoded IPPROTO_TCP and\nestablish the requirement that INET transport layer protocols that\nwant to use this function map TCP_SYN_SENT to its equivalent state.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6cbb0df788b90777a7ed0f9d8261260353f48076",
      "tree": "152b75c0279b8f612412f24a5ab35ab6d5a208d8",
      "parents": [
        "614c6cb4f225a7da9f13e5dd0fac3b531078eb9f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 19:49:02 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:37:48 2005 -0700"
      },
      "message": "[SOCK]: Introduce sk_setup_caps\n\nFrom tcp_v4_setup_caps, that always is preceded by a call to\n__sk_dst_set, so coalesce this sequence into sk_setup_caps, removing\none call to a TCP function in the IP layer.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e6848976b721eeb5551cd94673faafeef78d9f35",
      "tree": "6c78b0eb52614ff6386b603ca64091b5aefaa418",
      "parents": [
        "d13964f4490157b8a290903362bfbc54f750a6bc"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 19:45:38 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:37:29 2005 -0700"
      },
      "message": "[NET]: Cleanup INET_REFCNT_DEBUG code\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d1b04c081e3fb0a08ac108737e4efa9f4830c916",
      "tree": "b45fe692feee1bdd713bf07eec7aeaf648fa80b8",
      "parents": [
        "889371f61fd5bb914d0331268f12432590cf7e85"
      ],
      "author": {
        "name": "Baruch Even",
        "email": "baruch@ev-en.org",
        "time": "Sat Jul 30 17:41:59 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 30 17:41:59 2005 -0700"
      },
      "message": "[NET]: Spelling mistakes threshoulds -\u003e thresholds\n\nJust simple spelling mistake fixes.\n\nSigned-Off-By: Baruch Even \u003cbaruch@ev-en.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "86a76caf8705e3524e15f343f3c4806939a06dc8",
      "tree": "ac2022a6073b5af228e009178048bdab070d2230",
      "parents": [
        "b03efcfb2180289718991bb984044ce6c5b7d1b0"
      ],
      "author": {
        "name": "Victor Fusco",
        "email": "victor@cetuc.puc-rio.br",
        "time": "Fri Jul 08 14:57:47 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 08 14:57:47 2005 -0700"
      },
      "message": "[NET]: Fix sparse warnings\n\nFrom: Victor Fusco \u003cvictor@cetuc.puc-rio.br\u003e\n\nFix the sparse warning \"implicit cast to nocast type\"\n\nSigned-off-by: Victor Fusco \u003cvictor@cetuc.puc-rio.br\u003e\nSigned-off-by: Domen Puncer \u003cdomen@coderock.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b03efcfb2180289718991bb984044ce6c5b7d1b0",
      "tree": "f3b0c6c4eaf0991c28b7116a20994b48398eea57",
      "parents": [
        "a92b7b80579fe68fe229892815c750f6652eb6a9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 08 14:57:23 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 08 14:57:23 2005 -0700"
      },
      "message": "[NET]: Transform skb_queue_len() binary tests into skb_queue_empty()\n\nThis is part of the grand scheme to eliminate the qlen\nmember of skb_queue_head, and subsequently remove the\n\u0027list\u0027 member of sk_buff.\n\nMost users of skb_queue_len() want to know if the queue is\nempty or not, and that\u0027s trivially done with skb_queue_empty()\nwhich doesn\u0027t use the skb_queue_head-\u003eqlen member and instead\nuses the queue list emptyness as the test.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1b4a7e69576d65efc31a8cea0714173c2841244",
      "tree": "92082532651cddc6f0649a9d7ca9ca63e381d310",
      "parents": [
        "0d9901df62fe4820aee86b49f1a074cdb5c6928e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 15:24:38 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 15:24:38 2005 -0700"
      },
      "message": "[TCP]: Move to new TSO segmenting scheme.\n\nMake TSO segment transmit size decisions at send time not earlier.\n\nThe basic scheme is that we try to build as large a TSO frame as\npossible when pulling in the user data, but the size of the TSO frame\noutput to the card is determined at transmit time.\n\nThis is guided by tp-\u003exmit_size_goal.  It is always set to a multiple\nof MSS and tells sendmsg/sendpage how large an SKB to try and build.\n\nLater, tcp_write_xmit() and tcp_push_one() chop up the packet if\nnecessary and conditions warrant.  These routines can also decide to\n\"defer\" in order to wait for more ACKs to arrive and thus allow larger\nTSO frames to be emitted.\n\nA general observation is that TSO elongates the pipe, thus requiring a\nlarger congestion window and larger buffering especially at the sender\nside.  Therefore, it is important that applications 1) get a large\nenough socket send buffer (this is accomplished by our dynamic send\nbuffer expansion code) 2) do large enough writes.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "55c97f3e990c1ff63957c64f6cb10711a09fd70e",
      "tree": "003c5ca17005c8b22cc4cbe0b10721fc4ea676fd",
      "parents": [
        "a2e2a59c93cc8ba39caa9011c2573f429e40ccd9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 15:19:38 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 15:19:38 2005 -0700"
      },
      "message": "[TCP]: Fix __tcp_push_pending_frames() \u0027nonagle\u0027 handling.\n\n\u0027nonagle\u0027 should be passed to the tcp_snd_test() function\nas \u0027TCP_NAGLE_PUSH\u0027 if we are checking an SKB not at the\ntail of the write_queue.  This is because Nagle does not\napply to such frames since we cannot possibly tack more\ndata onto them.\n\nHowever, while doing this __tcp_push_pending_frames() makes\nall of the packets in the write_queue use this modified\n\u0027nonagle\u0027 value.\n\nFix the bug and simplify this function by just calling\ntcp_write_xmit() directly if sk_send_head is non-NULL.\n\nAs a result, we can now make tcp_data_snd_check() just call\ntcp_push_pending_frames() instead of the specialized\n__tcp_data_snd_check().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a2e2a59c93cc8ba39caa9011c2573f429e40ccd9",
      "tree": "6eae3953758b1dd84fa42b0545dd5dfd95c65b19",
      "parents": [
        "92df7b518dcb113de8bc2494e3cd275ad887f12b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 15:19:23 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 15:19:23 2005 -0700"
      },
      "message": "[TCP]: Fix redundant calculations of tcp_current_mss()\n\ntcp_write_xmit() uses tcp_current_mss(), but some of it\u0027s callers,\nnamely __tcp_push_pending_frames(), already has this value available\nalready.\n\nWhile we\u0027re here, fix the \"cur_mss\" argument to be \"unsigned int\"\ninstead of plain \"unsigned\".\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "a762a9800752f05fa8768bb0ac35d0e7f1bcfe7f"
}
