)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "a762a9800752f05fa8768bb0ac35d0e7f1bcfe7f",
      "tree": "2e92990b86b5bb5404e2f784f7cbb2579609bd95",
      "parents": [
        "f44b527177d57ed382bfd93e1b55232465f6d058"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 15:18:51 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 15:18:51 2005 -0700"
      },
      "message": "[TCP]: Kill extra cwnd validate in __tcp_push_pending_frames().\n\nThe tcp_cwnd_validate() function should only be invoked\nif we actually send some frames, yet __tcp_push_pending_frames()\nwill always invoke it.  tcp_write_xmit() does the call for us,\nso the call here can simply be removed.\n\nAlso, tcp_write_xmit() can be marked static.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "84d3e7b9573291a1ea845bdd51b74bb484597661",
      "tree": "c0bd2b1721b09a21e9d44e92e2532dc79373844f",
      "parents": [
        "f6302d1d78f77c2d4c8bd32b0afc2df7fdf5f281"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 15:18:18 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 15:18:18 2005 -0700"
      },
      "message": "[TCP]: Move __tcp_data_snd_check into tcp_output.c\n\nIt reimplements portions of tcp_snd_check(), so it\nwe move it to tcp_output.c we can consolidate it\u0027s\nlogic much easier in a later change.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6302d1d78f77c2d4c8bd32b0afc2df7fdf5f281",
      "tree": "204ae65914f845312059af3fbd633460bda820e9",
      "parents": [
        "fc6415bcb0f58f03adb910e56d7e1df6368794e0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 15:18:03 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 15:18:03 2005 -0700"
      },
      "message": "[TCP]: Move send test logic out of net/tcp.h\n\nThis just moves the code into tcp_output.c, no code logic changes are\nmade by this patch.\n\nUsing this as a baseline, we can begin to untangle the mess of\ncomparisons for the Nagle test et al.  We will also be able to reduce\nall of the redundant computation that occurs when outputting data\npackets.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc6415bcb0f58f03adb910e56d7e1df6368794e0",
      "tree": "71c326c1176e87c57c80cb32d9049b813f58bced",
      "parents": [
        "c65f7f00c587828e3d50737805a78f74804972de"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 15:17:45 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 15:17:45 2005 -0700"
      },
      "message": "[TCP]: Fix quick-ack decrementing with TSO.\n\nOn each packet output, we call tcp_dec_quickack_mode()\nif the ACK flag is set.  It drops tp-\u003eack.quick until\nit hits zero, at which time we deflate the ATO value.\n\nWhen doing TSO, we are emitting multiple packets with\nACK set, so we should decrement tp-\u003eack.quick that many\nsegments.\n\nNote that, unlike this case, tcp_enter_cwr() should not\ntake the tcp_skb_pcount(skb) into consideration.  That\nfunction, one time, readjusts tp-\u003esnd_cwnd and moves\ninto TCP_CA_CWR state.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a8acfbac75c2ffdd66fb5dfcdb7ab5aaced94fd8",
      "tree": "16d93b0ca58c048e7e1b524f15e97db3e5beb35c",
      "parents": [
        "9b200b02a6c9cddca5132d64aa41156bbcddcbaa"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 23:45:02 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 23:45:02 2005 -0700"
      },
      "message": "[TCP]: Need to declare \u0027tcp_reno\u0027 in net/tcp.h\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5f8ef48d240963093451bcf83df89f1a1364f51d",
      "tree": "cecb30c2f59778f7f509a84b3aa7ea097c3f2b27",
      "parents": [
        "51b0bdedb8e784d0d969a6b77151911130812400"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 20:37:36 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 20:37:36 2005 -0700"
      },
      "message": "[TCP]: Allow choosing TCP congestion control via sockopt.\n\nAllow using setsockopt to set TCP congestion control to use on a per\nsocket basis.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "317a76f9a44b437d6301718f4e5d08bd93f98da7",
      "tree": "caeba9839dee264f59b035b81c3d13d6c61b638e",
      "parents": [
        "a8ad86f2dc46356f87be1327dabc18bdbda32f50"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 12:19:55 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 12:19:55 2005 -0700"
      },
      "message": "[TCP]: Add pluggable congestion control algorithm infrastructure.\n\nAllow TCP to have multiple pluggable congestion control algorithms.\nAlgorithms are defined by a set of operations and can be built in\nor modules.  The legacy \"new RENO\" algorithm is used as a starting\npoint and fallback.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e52c1f17e4ea8e61bd26eb25f1a184202693c2b9",
      "tree": "d6094325ad30bf48f5296fd0faab85e8b9d76227",
      "parents": [
        "2ad69c55a282315e6119cf7fd744f26a925bdfd2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 18 22:49:40 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 18 22:49:40 2005 -0700"
      },
      "message": "[NET]: Move sysctl_max_syn_backlog into request_sock.c\n\nThis fixes the CONFIG_INET\u003dn build failure noticed\nby Andrew Morton.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0e87506fcc734647c7b2497eee4eb81e785c857a",
      "tree": "bb8863c59fdef2628f17b6773c52801792a57722",
      "parents": [
        "60236fdd08b2169045a3bbfc5ffe1576e6c3c17b"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Sat Jun 18 22:47:59 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 18 22:47:59 2005 -0700"
      },
      "message": "[NET] Generalise tcp_listen_opt\n\nThis chunks out the accept_queue and tcp_listen_opt code and moves\nthem to net/core/request_sock.c and include/net/request_sock.h, to\nmake it useful for other transport protocols, DCCP being the first one\nto use it.\n\nNext patches will rename tcp_listen_opt to accept_sock and remove the\ninline tcp functions that just call a reqsk_queue_ function.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "60236fdd08b2169045a3bbfc5ffe1576e6c3c17b",
      "tree": "4541c682cc72daf560ec516e2b5868089a88b6ea",
      "parents": [
        "2e6599cb899ba4b133f42cbf9d2b1883d2dc583a"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Sat Jun 18 22:47:21 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 18 22:47:21 2005 -0700"
      },
      "message": "[NET] Rename open_request to request_sock\n\nOk, this one just renames some stuff to have a better namespace and to\ndissassociate it from TCP:\n\nstruct open_request  -\u003e struct request_sock\ntcp_openreq_alloc    -\u003e reqsk_alloc\ntcp_openreq_free     -\u003e reqsk_free\ntcp_openreq_fastfree -\u003e __reqsk_free\n\nWith this most of the infrastructure closely resembles a struct\nsock methods subset.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2e6599cb899ba4b133f42cbf9d2b1883d2dc583a",
      "tree": "b5d4fcca4d2a515fc3d3d20cefaaeebd8dbf661f",
      "parents": [
        "1944972d3bb651474a5021c9da8d0166ae19f1eb"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Sat Jun 18 22:46:52 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 18 22:46:52 2005 -0700"
      },
      "message": "[NET] Generalise TCP\u0027s struct open_request minisock infrastructure\n\nKept this first changeset minimal, without changing existing names to\nease peer review.\n\nBasicaly tcp_openreq_alloc now receives the or_calltable, that in turn\nhas two new members:\n\n-\u003eslab, that replaces tcp_openreq_cachep\n-\u003eobj_size, to inform the size of the openreq descendant for\n  a specific protocol\n\nThe protocol specific fields in struct open_request were moved to a\nclass hierarchy, with the things that are common to all connection\noriented PF_INET protocols in struct inet_request_sock, the TCP ones\nin tcp_request_sock, that is an inet_request_sock, that is an\nopen_request.\n\nI.e. this uses the same approach used for the struct sock class\nhierarchy, with sk_prot indicating if the protocol wants to use the\nopen_request infrastructure by filling in sk_prot-\u003ersk_prot with an\nor_calltable.\n\nResults? Performance is improved and TCP v4 now uses only 64 bytes per\nopen request minisock, down from 96 without this patch :-)\n\nNext changeset will rename some of the structs, fields and functions\nmentioned above, struct or_calltable is way unclear, better name it\nstruct request_sock_ops, s/struct open_request/struct request_sock/g,\netc.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "02c30a84e6298b6b20a56f0896ac80b47839e134",
      "tree": "031e9d68ad83c371af7ebeb6840f3ede52698663",
      "parents": [
        "125947f2ab8c45417feaa4a8800e89529ca4612f"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Thu May 05 16:16:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:49 2005 -0700"
      },
      "message": "[PATCH] update Ross Biro bouncing email address\n\nRoss moved.  Remove the bad email address so people will find the correct\none in ./CREDITS.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d5ac99a648b8c61d0c7f1c32a8ab7f1dca0123d2",
      "tree": "3811d84e83dab918c57aeca1081ae343cb97df8b",
      "parents": [
        "158a0e45b69254a9ee4d7795e3b98d8c959fb799"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Apr 24 19:12:33 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 24 19:12:33 2005 -0700"
      },
      "message": "[TCP]: skb pcount with MTU discovery\n\nThe problem is that when doing MTU discovery, the too-large segments in\nthe write queue will be calculated as having a pcount of \u003e1.  When\ntcp_write_xmit() is trying to send, tcp_snd_test() fails the cwnd test\nwhen pcount \u003e cwnd.\n\nThe segments are eventually transmitted one at a time by keepalive, but\nthis can take a long time.\n\nThis patch checks if TSO is enabled when setting pcount.\n\nSigned-off-by: John Heffner \u003cjheffner@psc.edu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
