)]}'
{
  "log": [
    {
      "commit": "547b792cac0a038b9dbf958d3c120df3740b5572",
      "tree": "08554d083b0ca7d65739dc1ce12f9b12a9b8e1f8",
      "parents": [
        "53e5e96ec18da6f65e89f05674711e1c93d8df67"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Jul 25 21:43:18 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 25 21:43:18 2008 -0700"
      },
      "message": "net: convert BUG_TRAP to generic WARN_ON\n\nRemoves legacy reinvent-the-wheel type thing. The generic\nmachinery integrates much better to automated debugging aids\nsuch as kerneloops.org (and others), and is unambiguous due to\nbetter naming. Non-intuively BUG_TRAP() is actually equal to\nWARN_ON() rather than BUG_ON() though some might actually be\npromoted to BUG_ON() but I left that to future.\n\nI could make at least one BUILD_BUG_ON conversion.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "49a72dfb8814c2d65bd9f8c9c6daf6395a1ec58d",
      "tree": "38804d609f21503573bbdd8bb9af38df99275ff5",
      "parents": [
        "845525a642c1c9e1335c33a274d4273906ee58eb"
      ],
      "author": {
        "name": "Adam Langley",
        "email": "agl@imperialviolet.org",
        "time": "Sat Jul 19 00:01:42 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 19 00:01:42 2008 -0700"
      },
      "message": "tcp: Fix MD5 signatures for non-linear skbs\n\nCurrently, the MD5 code assumes that the SKBs are linear and, in the case\nthat they aren\u0027t, happily goes off and hashes off the end of the SKB and\ninto random memory.\n\nReported by Stephen Hemminger in [1]. Advice thanks to Stephen and Evgeniy\nPolyakov. Also includes a couple of missed route_caps from Stephen\u0027s patch\nin [2].\n\n[1] http://marc.info/?l\u003dlinux-netdev\u0026m\u003d121445989106145\u0026w\u003d2\n[2] http://marc.info/?l\u003dlinux-netdev\u0026m\u003d121459157816964\u0026w\u003d2\n\nSigned-off-by: Adam Langley \u003cagl@imperialviolet.org\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "57ef42d59d1c1d79be59fc3c6380ae14234e38c3",
      "tree": "4ccc2166f6967ac1fb582715f7d7d5bb5c9205fc",
      "parents": [
        "9b4661bd6e5437508e0920608f3213c23212cd1b"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:02:08 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:02:08 2008 -0700"
      },
      "message": "mib: put tcp statistics on struct net\n\nProc temporary uses stats from init_net.\n\nBTW, TCP_XXX_STATS are beautiful (w/o do { } while (0) facing) again :)\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed88098e25d77bef3b2ad8c9d8e2ebf454d9ccbf",
      "tree": "1923cf073c299e1265cbe8a82de10cf95c91c791",
      "parents": [
        "f2bf415cfed703de5ba94d25cdb160920c01fb00"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:32:45 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:32:45 2008 -0700"
      },
      "message": "mib: add net to NET_ADD_STATS_USER\n\nDone with NET_XXX_STATS macros :)\n\nTo be continued...\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f67c817fcfd94f5ca0f14b114b7fa25c0210c8b",
      "tree": "3472fe69877d53aff3e3b78b8d7ec34e684db39b",
      "parents": [
        "de0744af1fe2d0a3d428f6af0f2fe1f6179b1a9c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:31:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:31:39 2008 -0700"
      },
      "message": "mib: add net to NET_INC_STATS_USER\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "de0744af1fe2d0a3d428f6af0f2fe1f6179b1a9c",
      "tree": "68d02820b1aa13e8fa9743c0ece5930a13d5a205",
      "parents": [
        "4e6734447dbc7a0a85e09616821c0782d9fb1141"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:31:16 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:31:16 2008 -0700"
      },
      "message": "mib: add net to NET_INC_STATS_BH\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4e6734447dbc7a0a85e09616821c0782d9fb1141",
      "tree": "4fa4e7f6a479a172d690fba7f50c0659cb977e2d",
      "parents": [
        "1ed834655a0d42ecd80ff051e681e2ea44747b6c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:30:14 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:30:14 2008 -0700"
      },
      "message": "mib: add net to NET_INC_STATS\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5c52ba170f8167511bdb65b981f4582100c40675",
      "tree": "1dab120003eb696dfb4ca18c40861274a317739d",
      "parents": [
        "cf1100a7a4f2573f50f9a923b53373977328e3c8"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:28:10 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:28:10 2008 -0700"
      },
      "message": "sock: add net to prot-\u003eenter_memory_pressure callback\n\nThe tcp_enter_memory_pressure calls NET_INC_STATS, but doesn\u0027t\nhave where to get the net from.\n\nI decided to add a sk argument, not the net itself, only to factor\nall the required sock_net(sk) calls inside the enter_memory_pressure \ncallback itself.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "74688e487a407a33d42879957b478601aca616b8",
      "tree": "38c3be832e3ac9379b9b4f5a836caf9540d1b14c",
      "parents": [
        "63231bddf6514778792d3784f63822473d250fc0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:22:46 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:22:46 2008 -0700"
      },
      "message": "mib: add net to TCP_DEC_STATS\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "63231bddf6514778792d3784f63822473d250fc0",
      "tree": "d380f9ca00fa0ca2cd74142c5b51b97717ef1e9a",
      "parents": [
        "81cc8a75d944fa39fc333c2c329c8e8b3c62cada"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:22:25 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:22:25 2008 -0700"
      },
      "message": "mib: add net to TCP_INC_STATS_BH\n\nSame as before - the sock is always there to get the net from,\nbut there are also some places with the net already saved on \nthe stack.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "81cc8a75d944fa39fc333c2c329c8e8b3c62cada",
      "tree": "40d93df3f13d96e8cf66d154d2b865c35df18ec7",
      "parents": [
        "a9c19329eccdb145a08a4a2e969d7b40c54c9bcc"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:22:04 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:22:04 2008 -0700"
      },
      "message": "mib: add net to TCP_INC_STATS\n\nFortunately (almost) all the TCP code has a sock to get the net from :)\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "70efce27fc3d54271519244dc5e47da4ed711dd4",
      "tree": "c95c8cb7f7fe985d99bc01a0f35bc474681fb75b",
      "parents": [
        "7b1c65faa27f5ade3915e4bbc9186b6e64d2d6ec"
      ],
      "author": {
        "name": "Will Newton",
        "email": "will.newton@gmail.com",
        "time": "Wed Jul 16 20:13:43 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:13:43 2008 -0700"
      },
      "message": "net/ipv4/tcp.c: Fix use of PULLHUP instead of POLLHUP in comments.\n\nChange PULLHUP to POLLHUP in tcp_poll comments and clean up another\ncomment for grammar and coding style.\n\nSigned-off-by: Will Newton \u003cwill.newton@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ea2aca084ba82aaf7c148d04914ceed8758ce08a",
      "tree": "dcb3f4f849cf48deac2dd3bafd5c2cd2f0e7dc79",
      "parents": [
        "f3032be921cd126615ce3bfd7084e3d319f3f892",
        "c5a78ac00c400df29645e59938700301efb371d0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 05 23:08:07 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 05 23:08:07 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tDocumentation/feature-removal-schedule.txt\n\tdrivers/net/wan/hdlc_fr.c\n\tdrivers/net/wireless/iwlwifi/iwl-4965.c\n\tdrivers/net/wireless/iwlwifi/iwl3945-base.c\n"
    },
    {
      "commit": "374e7b59498ce0785b3727794b351221528a5159",
      "tree": "dca488eae546ff8a113e614670e23460a23dc7ea",
      "parents": [
        "81b23b4a7acd9b37a269c62d02479d4f645dd20a"
      ],
      "author": {
        "name": "Octavian Purdila",
        "email": "opurdila@ixiacom.com",
        "time": "Thu Jul 03 03:31:21 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 03 03:31:21 2008 -0700"
      },
      "message": "tcp: fix a size_t \u003c 0 comparison in tcp_read_sock\n\n\u003cused\u003e should be of type int (not size_t) since recv_actor can return\nnegative values and it is also used in a \u003c 0 comparison.\n\nSigned-off-by: Octavian Purdila \u003copurdila@ixiacom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "81b23b4a7acd9b37a269c62d02479d4f645dd20a",
      "tree": "b9e36252237aae5a572f70438b6b331c173ed201",
      "parents": [
        "2fff58fce14701e27d5e8a50fa73caef9a6907f5"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Jul 03 03:22:02 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 03 03:22:02 2008 -0700"
      },
      "message": "tcp: net/ipv4/tcp.c needs linux/scatterlist.h\n\nalpha:\n\nnet/ipv4/tcp.c: In function \u0027tcp_calc_md5_hash\u0027:\nnet/ipv4/tcp.c:2479: error: implicit declaration of function \u0027sg_init_table\u0027    net/ipv4/tcp.c:2482: error: implicit declaration of function \u0027sg_set_buf\u0027\nnet/ipv4/tcp.c:2507: error: implicit declaration of function \u0027sg_mark_end\u0027      \n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1b63ba8a86c85524a8d7e5953b314ce71ebcb9c9",
      "tree": "fe3dc41cbb47ae12b7c3faf6a88b097349e50d5a",
      "parents": [
        "e35c3269edba151e1c703d87068a28ce2cd65bb0",
        "d420895efb259a78dda50f95289571faa6e10e41"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 28 01:19:40 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 28 01:19:40 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/wireless/iwlwifi/iwl4965-base.c\n"
    },
    {
      "commit": "57413ebc4e0f1e471a3b4db4aff9a85c083d090e",
      "tree": "325ee5d251700d991cea87d2c4d643b374959095",
      "parents": [
        "479798211967cd828e09ce27775b8cbfe99462ab"
      ],
      "author": {
        "name": "Miquel van Smoorenburg",
        "email": "miquels@cistron.nl",
        "time": "Fri Jun 27 17:23:57 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 27 17:23:57 2008 -0700"
      },
      "message": "tcp: calculate tcp_mem based on low memory instead of all memory\n\nThe tcp_mem array which contains limits on the total amount of memory\nused by TCP sockets is calculated based on nr_all_pages.  On a 32 bits\nx86 system, we should base this on the number of lowmem pages.\n\nSigned-off-by: Miquel van Smoorenburg \u003cmiquels@cistron.nl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4ae127d1b6c71f9240dd4245f240e6dd8fc98014",
      "tree": "b7aa27b3e0c655f4613fe2146cb57d7f69e421f6",
      "parents": [
        "875ec4333b99144e2589e900a0bcd2c25c757b27",
        "7775c9753b94fe429dc4323360d6502c95e0dd6e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 13 20:52:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 13 20:52:39 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/smc911x.c\n"
    },
    {
      "commit": "ec0a196626bd12e0ba108d7daa6d95a4fb25c2c5",
      "tree": "68d9c2923765e12853368e8edb27b241142e0c48",
      "parents": [
        "f23d60de719e639690b2dc5c2d0e4243ff614b7a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 12 16:31:35 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 12 16:34:35 2008 -0700"
      },
      "message": "tcp: Revert \u0027process defer accept as established\u0027 changes.\n\nThis reverts two changesets, ec3c0982a2dd1e671bad8e9d26c28dcba0039d87\n(\"[TCP]: TCP_DEFER_ACCEPT updates - process as established\") and\nthe follow-on bug fix 9ae27e0adbf471c7a6b80102e38e1d5a346b3b38\n(\"tcp: Fix slab corruption with ipv6 and tcp6fuzz\").\n\nThis change causes several problems, first reported by Ingo Molnar\nas a distcc-over-loopback regression where connections were getting\nstuck.\n\nIlpo Järvinen first spotted the locking problems.  The new function\nadded by this code, tcp_defer_accept_check(), only has the\nchild socket locked, yet it is modifying state of the parent\nlistening socket.\n\nFixing that is non-trivial at best, because we can\u0027t simply just grab\nthe parent listening socket lock at this point, because it would\ncreate an ABBA deadlock.  The normal ordering is parent listening\nsocket --\u003e child socket, but this code path would require the\nreverse lock ordering.\n\nNext is a problem noticed by Vitaliy Gusev, he noted:\n\n----------------------------------------\n\u003e--- a/net/ipv4/tcp_timer.c\n\u003e+++ b/net/ipv4/tcp_timer.c\n\u003e@@ -481,6 +481,11 @@ static void tcp_keepalive_timer (unsigned long data)\n\u003e \t\tgoto death;\n\u003e \t}\n\u003e\n\u003e+\tif (tp-\u003edefer_tcp_accept.request \u0026\u0026 sk-\u003esk_state \u003d\u003d TCP_ESTABLISHED) {\n\u003e+\t\ttcp_send_active_reset(sk, GFP_ATOMIC);\n\u003e+\t\tgoto death;\n\nHere socket sk is not attached to listening socket\u0027s request queue. tcp_done()\nwill not call inet_csk_destroy_sock() (and tcp_v4_destroy_sock() which should\nrelease this sk) as socket is not DEAD. Therefore socket sk will be lost for\nfreeing.\n----------------------------------------\n\nFinally, Alexey Kuznetsov argues that there might not even be any\nreal value or advantage to these new semantics even if we fix all\nof the bugs:\n\n----------------------------------------\nHiding from accept() sockets with only out-of-order data only\nis the only thing which is impossible with old approach. Is this really\nso valuable? My opinion: no, this is nothing but a new loophole\nto consume memory without control.\n----------------------------------------\n\nSo revert this thing for now.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e6e30add6bd8115af108de2a13ec82d997a55777",
      "tree": "558b4d1c3ac369805aa9c57abca710bdf52aff75",
      "parents": [
        "d4c3c0753594adaafbcb77a086f013f1d847b3f0",
        "9501f9722922f2e80e1f9dc6682311d65c2b5690"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 11 22:33:59 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 11 22:33:59 2008 -0700"
      },
      "message": "Merge branch \u0027net-next-2.6-misc-20080612a\u0027 of git://git.linux-ipv6.org/gitroot/yoshfuji/linux-2.6-next\n"
    },
    {
      "commit": "0b040829952d84bf2a62526f0e24b624e0699447",
      "tree": "b2e836e7e64343f19b949e50099bbe2ea554ec30",
      "parents": [
        "573bf470e693f73a6ac437b17a64a10902ba54bf"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Jun 10 22:46:50 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 11 21:00:38 2008 -0700"
      },
      "message": "net: remove CVS keywords\n\nThis patch removes CVS keywords that weren\u0027t updated for a long time\nfrom comments.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d26d76dd4a4c87ef037a44a42a0608ffc730199",
      "tree": "884ff53a83e460aa3f1837cc336a5a34f364156e",
      "parents": [
        "076fb7223357769c39f3ddf900bba6752369c76a"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Thu Apr 17 13:19:16 2008 +0900"
      },
      "committer": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Thu Jun 12 02:38:20 2008 +0900"
      },
      "message": "tcp md5sig: Share most of hash calcucaltion bits between IPv4 and IPv6.\n\nWe can share most part of the hash calculation code because\nthe only difference between IPv4 and IPv6 is their pseudo headers.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    },
    {
      "commit": "293ad60401da621b8b329abbe8c388edb25f658a",
      "tree": "fb2fdaf7721c8efa36b0b47f7b63d4e600217dbb",
      "parents": [
        "26af65cbeb2467a486ae4fc7242c94e470c67c50"
      ],
      "author": {
        "name": "Octavian Purdila",
        "email": "opurdila@ixiacom.com",
        "time": "Wed Jun 04 15:45:58 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 04 15:45:58 2008 -0700"
      },
      "message": "tcp: Fix for race due to temporary drop of the socket lock in skb_splice_bits.\n\nskb_splice_bits temporary drops the socket lock while iterating over\nthe socket queue in order to break a reverse locking condition which\nhappens with sendfile. This, however, opens a window of opportunity\nfor tcp_collapse() to aggregate skbs and thus potentially free the\ncurrent skb used in skb_splice_bits and tcp_read_sock.\n\nThis patch fixes the problem by (re-)getting the same \"logical skb\"\nafter the lock has been temporary dropped.\n\nBased on idea and initial patch from Evgeniy Polyakov.\n\nSigned-off-by: Octavian Purdila \u003copurdila@ixiacom.com\u003e\nAcked-by: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1f29b0584dcb695589407a11bb7533fe21fa47c4",
      "tree": "0eeed392ebde08d89f8d33692e51df98feda1faf",
      "parents": [
        "9d29672c64505f2d7f707701b829715705308a69"
      ],
      "author": {
        "name": "Satoru SATOH",
        "email": "satoru.satoh@gmail.com",
        "time": "Mon Apr 21 02:27:58 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 21 02:27:58 2008 -0700"
      },
      "message": "tcp: Trivial fix to correct function name in a comment in net/ipv4/tcp.c\n\nThis is a trivial fix to correct function name in a comment in\nnet/ipv4/tcp.c.\n\nSigned-off-by: Satoru SATOH \u003csatoru.satoh@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "06802a819a0a2d31c952c0624cea6cd00e4e50da",
      "tree": "8ccd7c668c7fbd8f08cb89426006040217caf3f1",
      "parents": [
        "9bd512f619cc116b7830134d7c9f6e404a38c7bf",
        "8f3ea33a5078a09eba12bfe57424507809367756"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 23 22:54:03 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 23 22:54:03 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of ../net-2.6/\n\nConflicts:\n\n\tnet/ipv6/ndisc.c\n"
    },
    {
      "commit": "69d1506731168d6845a76a303b2c45f7c05f3f2c",
      "tree": "3bedf2680b30c09b0375616a1c2b0d291a9f376f",
      "parents": [
        "7512cbf6efc97644812f137527a54b8e92b6a90a"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Mar 22 15:47:05 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 22 15:47:05 2008 -0700"
      },
      "message": "[TCP]: Let skbs grow over a page on fast peers\n\nWhile testing the virtio-net driver on KVM with TSO I noticed\nthat TSO performance with a 1500 MTU is significantly worse\ncompared to the performance of non-TSO with a 16436 MTU.  The\npacket dump shows that most of the packets sent are smaller\nthan a page.\n\nLooking at the code this actually is quite obvious as it always\nstop extending the packet if it\u0027s the first packet yet to be\nsent and if it\u0027s larger than the MSS.  Since each extension is\nbound by the page size, this means that (given a 1500 MTU) we\u0027re\nvery unlikely to construct packets greater than a page, provided\nthat the receiver and the path is fast enough so that packets can\nalways be sent immediately.\n\nThe fix is also quite obvious.  The push calls inside the loop\nis just an optimisation so that we don\u0027t end up doing all the\nsending at the end of the loop.  Therefore there is no specific\nreason why it has to do so at MSS boundaries.  For TSO, the\nmost natural extension of this optimisation is to do the pushing\nonce the skb exceeds the TSO size goal.\n\nThis is what the patch does and testing with KVM shows that the\nTSO performance with a 1500 MTU easily surpasses that of a 16436\nMTU and indeed the packet sizes sent are generally larger than\n16436.\n\nI don\u0027t see any obvious downsides for slower peers or connections,\nbut it would be prudent to test this extensively to ensure that\nthose cases don\u0027t regress.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ec3c0982a2dd1e671bad8e9d26c28dcba0039d87",
      "tree": "11a3cd7c530e4225a4c3d4c3f3cc54eb7d2e0e4f",
      "parents": [
        "e4c78840284f3f51b1896cf3936d60a6033c4d2c"
      ],
      "author": {
        "name": "Patrick McManus",
        "email": "mcmanus@ducksong.com",
        "time": "Fri Mar 21 16:33:01 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 21 16:33:01 2008 -0700"
      },
      "message": "[TCP]: TCP_DEFER_ACCEPT updates - process as established\n\nChange TCP_DEFER_ACCEPT implementation so that it transitions a\nconnection to ESTABLISHED after handshake is complete instead of\nleaving it in SYN-RECV until some data arrvies. Place connection in\naccept queue when first data packet arrives from slow path.\n\nBenefits:\n  - established connection is now reset if it never makes it\n   to the accept queue\n\n - diagnostic state of established matches with the packet traces\n   showing completed handshake\n\n - TCP_DEFER_ACCEPT timeouts are expressed in seconds and can now be\n   enforced with reasonable accuracy instead of rounding up to next\n   exponential back-off of syn-ack retry.\n\nSigned-off-by: Patrick McManus \u003cmcmanus@ducksong.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ab1e0a13d70299e792fd0527cefd070c1405fa5b",
      "tree": "d470e7b94b0e33ea59b12713366f1bee0b94f78c",
      "parents": [
        "9dc7f30e3bac329998a2a9bb814bd0abc7cb58e2"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sun Feb 03 04:06:04 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 03 04:28:52 2008 -0800"
      },
      "message": "[SOCK] proto: Add hashinfo member to struct proto\n\nThis way we can remove TCP and DCCP specific versions of\n\nsk-\u003esk_prot-\u003eget_port: both v4 and v6 use inet_csk_get_port\nsk-\u003esk_prot-\u003ehash:     inet_hash is directly used, only v6 need\n                       a specific version to deal with mapped sockets\nsk-\u003esk_prot-\u003eunhash:   both v4 and v6 use inet_hash directly\n\nstruct inet_connection_sock_af_ops also gets a new member, bind_conflict, so\nthat inet_csk_get_port can find the per family routine.\n\nNow only the lookup routines receive as a parameter a struct inet_hashtable.\n\nWith this we further reuse code, reducing the difference among INET transport\nprotocols.\n\nEventually work has to be done on UDP and SCTP to make them share this\ninfrastructure and get as a bonus inet_diag interfaces so that iproute can be\nused with these protocols.\n\nnet-2.6/net/ipv4/inet_hashtables.c:\n  struct proto\t\t\t     |   +8\n  struct inet_connection_sock_af_ops |   +8\n 2 structs changed\n  __inet_hash_nolisten               |  +18\n  __inet_hash                        | -210\n  inet_put_port                      |   +8\n  inet_bind_bucket_create            |   +1\n  __inet_hash_connect                |   -8\n 5 functions changed, 27 bytes added, 218 bytes removed, diff: -191\n\nnet-2.6/net/core/sock.c:\n  proto_seq_show                     |   +3\n 1 function changed, 3 bytes added, diff: +3\n\nnet-2.6/net/ipv4/inet_connection_sock.c:\n  inet_csk_get_port                  |  +15\n 1 function changed, 15 bytes added, diff: +15\n\nnet-2.6/net/ipv4/tcp.c:\n  tcp_set_state                      |   -7\n 1 function changed, 7 bytes removed, diff: -7\n\nnet-2.6/net/ipv4/tcp_ipv4.c:\n  tcp_v4_get_port                    |  -31\n  tcp_v4_hash                        |  -48\n  tcp_v4_destroy_sock                |   -7\n  tcp_v4_syn_recv_sock               |   -2\n  tcp_unhash                         | -179\n 5 functions changed, 267 bytes removed, diff: -267\n\nnet-2.6/net/ipv6/inet6_hashtables.c:\n  __inet6_hash |   +8\n 1 function changed, 8 bytes added, diff: +8\n\nnet-2.6/net/ipv4/inet_hashtables.c:\n  inet_unhash                        | +190\n  inet_hash                          | +242\n 2 functions changed, 432 bytes added, diff: +432\n\nvmlinux:\n 16 functions changed, 485 bytes added, 492 bytes removed, diff: -7\n\n/home/acme/git/net-2.6/net/ipv6/tcp_ipv6.c:\n  tcp_v6_get_port                    |  -31\n  tcp_v6_hash                        |   -7\n  tcp_v6_syn_recv_sock               |   -9\n 3 functions changed, 47 bytes removed, diff: -47\n\n/home/acme/git/net-2.6/net/dccp/proto.c:\n  dccp_destroy_sock                  |   -7\n  dccp_unhash                        | -179\n  dccp_hash                          |  -49\n  dccp_set_state                     |   -7\n  dccp_done                          |   +1\n 5 functions changed, 1 bytes added, 242 bytes removed, diff: -241\n\n/home/acme/git/net-2.6/net/dccp/ipv4.c:\n  dccp_v4_get_port                   |  -31\n  dccp_v4_request_recv_sock          |   -2\n 2 functions changed, 33 bytes removed, diff: -33\n\n/home/acme/git/net-2.6/net/dccp/ipv6.c:\n  dccp_v6_get_port                   |  -31\n  dccp_v6_hash                       |   -7\n  dccp_v6_request_recv_sock          |   +5\n 3 functions changed, 5 bytes added, 38 bytes removed, diff: -33\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "490d5046930276aae50dd16942649bfc626056f7",
      "tree": "91e15e68c70361239773b63324b028b64e9687ce",
      "parents": [
        "389f661224cdbdf178553fb09a52dc6c8bf86890"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sat Jan 12 03:17:20 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:01:47 2008 -0800"
      },
      "message": "[TCP]: Uninline tcp_set_state\n\nnet/ipv4/tcp.c:\n  tcp_close_state | -226\n  tcp_done        | -145\n  tcp_close       | -564\n  tcp_disconnect  | -141\n 4 functions changed, 1076 bytes removed, diff: -1076\n\nnet/ipv4/tcp_input.c:\n  tcp_fin               |  -86\n  tcp_rcv_state_process | -164\n 2 functions changed, 250 bytes removed, diff: -250\n\nnet/ipv4/tcp_ipv4.c:\n  tcp_v4_connect | -209\n 1 function changed, 209 bytes removed, diff: -209\n\nnet/ipv4/arp.c:\n  arp_ignore |   +5\n 1 function changed, 5 bytes added, diff: +5\n\nnet/ipv6/tcp_ipv6.c:\n  tcp_v6_connect | -158\n 1 function changed, 158 bytes removed, diff: -158\n\nnet/sunrpc/xprtsock.c:\n  xs_sendpages |   -2\n 1 function changed, 2 bytes removed, diff: -2\n\nnet/dccp/ccids/ccid3.c:\n  ccid3_update_send_interval |   +7\n 1 function changed, 7 bytes added, diff: +7\n\nnet/ipv4/tcp.c:\n  tcp_set_state | +238\n 1 function changed, 238 bytes added, diff: +238\n\nbuilt-in.o:\n 12 functions changed, 250 bytes added, 1695 bytes removed, diff: -1445\n\nI\u0027ve no explanation why some unrelated changes seem to occur\nconsistently as well (arp_ignore, ccid3_update_send_interval;\nI checked the arp_ignore asm and it seems to be due to some\nreordered of operation order causing some extra opcodes to be\ngenerated). Still, the benefits are pretty obvious from the\ncodiff\u0027s results.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4828e7f49a402930e8b3e72de695c8d37e0f98ee",
      "tree": "021c5d357b8a081bee8b8798e362b37999ee1ffb",
      "parents": [
        "cadbd0313bc897f5917d013174cdf9077edf4aa5"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Dec 31 04:50:19 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:00:23 2008 -0800"
      },
      "message": "[TCP]: Remove TCPCB_URG \u0026 TCPCB_AT_TAIL as unnecessary\n\nThe snd_up check should be enough. I suspect this has been\nthere to provide a minor optimization in clean_rtx_queue which\nused to have a small if (!-\u003esacked) block which could skip\nsnd_up check among the other work.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3ab224be6d69de912ee21302745ea45a99274dbc",
      "tree": "335dcef1cfacfefe3f36c21d5f144e011bc3bfba",
      "parents": [
        "a06b494b61de44617dd58612164bdde56fca7bfb"
      ],
      "author": {
        "name": "Hideo Aoki",
        "email": "haoki@redhat.com",
        "time": "Mon Dec 31 00:11:19 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:00:18 2008 -0800"
      },
      "message": "[NET] CORE: Introducing new memory accounting interface.\n\nThis patch introduces new memory accounting functions for each network\nprotocol. Most of them are renamed from memory accounting functions\nfor stream protocols. At the same time, some stream memory accounting\nfunctions are removed since other functions do same thing.\n\nRenaming:\n\tsk_stream_free_skb()\t\t-\u003e\tsk_wmem_free_skb()\n\t__sk_stream_mem_reclaim()\t-\u003e\t__sk_mem_reclaim()\n\tsk_stream_mem_reclaim()\t\t-\u003e\tsk_mem_reclaim()\n\tsk_stream_mem_schedule \t\t-\u003e    \t__sk_mem_schedule()\n\tsk_stream_pages()      \t\t-\u003e\tsk_mem_pages()\n\tsk_stream_rmem_schedule()\t-\u003e\tsk_rmem_schedule()\n\tsk_stream_wmem_schedule()\t-\u003e\tsk_wmem_schedule()\n\tsk_charge_skb()\t\t\t-\u003e\tsk_mem_charge()\n\nRemoveing\n\tsk_stream_rfree():\tconsolidates into sock_rfree()\n\tsk_stream_set_owner_r(): consolidates into skb_set_owner_r()\n\tsk_stream_mem_schedule()\n\nThe following functions are added.\n    \tsk_has_account(): check if the protocol supports accounting\n\tsk_mem_uncharge(): do the opposite of sk_mem_charge()\n\nIn addition, to achieve consolidation, updating sk_wmem_queued is\nremoved from sk_mem_charge().\n\nNext, to consolidate memory accounting functions, this patch adds\nmemory accounting calls to network core functions. Moreover, present\nmemory accounting call is renamed to new accounting call.\n\nFinally we replace present memory accounting calls with new interface\nin TCP and SCTP.\n\nSigned-off-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nSigned-off-by: Hideo Aoki \u003chaoki@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1f9e636ea21bd648a5cbd2f744a1d39a5e183b20",
      "tree": "33d4c23d9c2a64ed042151f51962754af3359692",
      "parents": [
        "ea72912c888661d1a847f1b1450643d4114097cf"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Tue Dec 11 02:12:04 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:07 2008 -0800"
      },
      "message": "[TCP]: Use BUILD_BUG_ON for tcp_skb_cb size checking\n\nThe sizeof(struct tcp_skb_cb) should not be less than the\nsizeof(skb-\u003ecb). This is checked in net/ipv4/tcp.c, but\nthis check can be made more gracefully.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "df97c708d5e6eebdd9ded1fa588eae09acf53793",
      "tree": "35bcca504e629f3b9635fd52870a8add0846f333",
      "parents": [
        "f561d0f27d6283c49359bb96048f8ac3728c812c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Nov 29 21:22:33 2007 +1100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:08 2008 -0800"
      },
      "message": "[NET]: Eliminate unused argument from sk_stream_alloc_pskb\n\nThe 3rd argument is always zero (according to grep :) Eliminate\nit and merge the function with sk_stream_alloc_skb.\n\nThis saves 44 more bytes, and together with the previous patch\nwe have:\n\nadd/remove: 1/0 grow/shrink: 0/8 up/down: 183/-751 (-568)\nfunction                                     old     new   delta\nsk_stream_alloc_skb                            -     183    +183\nip_rt_init                                   529     525      -4\narp_ignore                                   112     107      -5\n__inet_lookup_listener                       284     274     -10\ntcp_sendmsg                                 2583    2481    -102\ntcp_sendpage                                1449    1300    -149\ntso_fragment                                 417     258    -159\ntcp_fragment                                1149     988    -161\n__tcp_push_pending_frames                   1998    1837    -161\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f561d0f27d6283c49359bb96048f8ac3728c812c",
      "tree": "95665f72ac84fc9c91f5c1ee568f169984631887",
      "parents": [
        "3015a347dcd470fcc8becf1f84b0502391a3c0e0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Nov 29 20:28:50 2007 +1100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:07 2008 -0800"
      },
      "message": "[NET]: Uninline the sk_stream_alloc_pskb\n\nThis function seems too big for inlining. Indeed, it saves\nhalf-a-kilo when uninlined:\n\nadd/remove: 1/0 grow/shrink: 0/7 up/down: 195/-719 (-524)\nfunction                                     old     new   delta\nsk_stream_alloc_pskb                           -     195    +195\nip_rt_init                                   529     525      -4\n__inet_lookup_listener                       284     274     -10\ntcp_sendmsg                                 2583    2486     -97\ntcp_sendpage                                1449    1305    -144\ntso_fragment                                 417     267    -150\ntcp_fragment                                1149     992    -157\n__tcp_push_pending_frames                   1998    1841    -157\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ff7751d06f63131830102ffa0c9a38b313f100e",
      "tree": "304f6cfae108868a6f793f91cea86c6a8cf0e6d3",
      "parents": [
        "a0974dd3da87667e26ef5d3b32989a43319866f2"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Nov 06 23:32:26 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:53:32 2008 -0800"
      },
      "message": "[TCP]: Make tcp_splice_data_recv() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9c55e01c0cc835818475a6ce8c4d684df9949ac8",
      "tree": "1115311436677f837a4b477e3fd23c5e0ae184ef",
      "parents": [
        "bbdfc2f70610bebb841d0874dc901c648308e43a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 06 23:30:13 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:53:31 2008 -0800"
      },
      "message": "[TCP]: Splice receive support.\n\nSupport for network splice receive.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "230140cffa7feae90ad50bf259db1fa07674f3a7",
      "tree": "815472add31606423a508a17806b7884f0ab3e2e",
      "parents": [
        "efac52762b1e3fe3035d29e82d8ee1aebc45e4a7"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Nov 07 02:40:20 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Nov 07 04:15:11 2007 -0800"
      },
      "message": "[INET]: Remove per bucket rwlock in tcp/dccp ehash table.\n\nAs done two years ago on IP route cache table (commit\n22c047ccbc68fa8f3fa57f0e8f906479a062c426) , we can avoid using one\nlock per hash bucket for the huge TCP/DCCP hash tables.\n\nOn a typical x86_64 platform, this saves about 2MB or 4MB of ram, for\nlitle performance differences. (we hit a different cache line for the\nrwlock, but then the bucket cache line have a better sharing factor\namong cpus, since we dirty it less often). For netstat or ss commands\nthat want a full scan of hash table, we perform fewer memory accesses.\n\nUsing a \u0027small\u0027 table of hashed rwlocks should be more than enough to\nprovide correct SMP concurrency between different buckets, without\nusing too much memory. Sizing of this table depends on\nnum_possible_cpus() and various CONFIG settings.\n\nThis patch provides some locking abstraction that may ease a future\nwork using a different model for TCP/DCCP table.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0ccfe61803ad24f1c0fe5e1f5ce840ff0f3d9660",
      "tree": "5af62008d8e69df7866b7b3dd18db6a641e6b32f",
      "parents": [
        "e08a132b0ef3cf89dfbf1dea2c6248ea624bdcd7"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "jdelvare@suse.de",
        "time": "Tue Oct 30 00:59:25 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 30 00:59:25 2007 -0700"
      },
      "message": "[TCP]: Saner thash_entries default with much memory.\n\nOn systems with a very large amount of memory, the heuristics in\nalloc_large_system_hash() result in a very large TCP established hash\ntable: 16 millions of entries for a 128 GB ia64 system. This makes\nreading from /proc/net/tcp pretty slow (well over a second) and as a\nresult netstat is slow on these machines. I know that /proc/net/tcp is\ndeprecated in favor of tcp_diag, however at the moment netstat only\nknows of the former.\n\nI am skeptical that such a large TCP established hash is often needed.\nJust because a system has a lot of memory doesn\u0027t imply that it will\nhave several millions of concurrent TCP connections. Thus I believe\nthat we should put an arbitrary high limit to the size of the TCP\nestablished hash by default. Users who really need a bigger hash can\nalways use the thash_entries boot parameter to get more.\n\nI propose 2 millions of entries as the arbitrary high limit. This\nmakes /proc/net/tcp reasonably fast on the system in question (0.2 s)\nwhile being still large enough for me to be confident that network\nperformance won\u0027t suffer.\n\nThis is just one way to limit the hash size, there are others; I am not\nfamiliar enough with the TCP code to decide which is best. Thus, I\nwould welcome the proposals of alternatives.\n\n[ 2 million is still too large, thus I\u0027ve modified the limit in the\n  change to be \u0027512 * 1024\u0027. -DaveM ]\n\nSigned-off-by: Jean Delvare \u003cjdelvare@suse.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ba25f9dcc4ea6e30839fcab5a5516f2176d5bfed",
      "tree": "3123c03b25dd5c0cd24b6ab4fc16731217838157",
      "parents": [
        "9a2e70572e94e21e7ec4186702d045415422bda0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Use helpers to obtain task pid in printks\n\nThe task_struct-\u003epid member is going to be deprecated, so start\nusing the helpers (task_pid_nr/task_pid_vnr/task_pid_nr_ns) in\nthe kernel.\n\nThe first thing to start with is the pid, printed to dmesg - in\nthis case we may safely use task_pid_nr(). Besides, printks produce\nmore (much more) than a half of all the explicit pid usage.\n\n[akpm@linux-foundation.org: git-drm went and changed lots of stuff]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ee3afba88f5a79d0bff07ddd87af45919259f91",
      "tree": "b0117be47ea4f84abf56996f39792362c15909d7",
      "parents": [
        "768f3591e2b1cc309fd6f10d6579b216026d7817"
      ],
      "author": {
        "name": "Rick Jones",
        "email": "rick.jones2@hp.com",
        "time": "Tue Sep 18 13:26:31 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:51:35 2007 -0700"
      },
      "message": "[TCP]: Return useful listenq info in tcp_info and INET_DIAG_INFO.\n\nReturn some useful information such as the maximum listen backlog and\nthe current listen backlog in the tcp_info structure and\nINET_DIAG_INFO.\n\nSigned-off-by: Rick Jones \u003crick.jones2@hp.com\u003e\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "172589ccdde41b59861c92c4a971b95514ef24e3",
      "tree": "ae775e6db4cb85aad1c74b6d93ba359f9dfe88ea",
      "parents": [
        "c45248c70125cc374fdf264659643276c72801bf"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Tue Aug 28 15:50:33 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:37 2007 -0700"
      },
      "message": "[NET]: DIV_ROUND_UP cleanup (part two)\n\nHopefully captured all single statement cases under net/. I\u0027m\nnot too sure if there is some policy about #includes that are\n\"guaranteed\" (ie., in the current tree) to be available through\nsome other #included header, so I just added linux/kernel.h to\neach changed file that didn\u0027t #include it previously.\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": "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": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "e00c5d8b4d800b95b72b3f072e1d55d7c7034702",
      "tree": "737ffff95a250bcb344de7263e059eeb0df97678",
      "parents": [
        "2b1244a43be97f504494b557a7f7a65fe0d00dba"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Mar 08 09:57:36 2007 -0800"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Jul 11 16:10:53 2007 -0700"
      },
      "message": "I/OAT: warning fix\nnet/ipv4/tcp.c: In function \u0027tcp_recvmsg\u0027:\nnet/ipv4/tcp.c:1111: warning: unused variable \u0027available\u0027\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\n"
    },
    {
      "commit": "2b1244a43be97f504494b557a7f7a65fe0d00dba",
      "tree": "d3be36597917dbbae664fc6eb97dbe876c5e44e3",
      "parents": [
        "72d0b7a81d60f5e64ee7197bc190b9b3265f99dd"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Thu Mar 08 09:57:36 2007 -0800"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Jul 11 16:10:53 2007 -0700"
      },
      "message": "I/OAT: Only offload copies for TCP when there will be a context switch\nThe performance wins come with having the DMA copy engine doing the copies\nin parallel with the context switch.  If there is enough data ready on the\nsocket at recv time just use a regular copy.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\n"
    },
    {
      "commit": "ddb61a57bb6df673986e6476407f97d28b02031f",
      "tree": "1e7faaddbb0fa96d5fec64e15140a697c0cfd5eb",
      "parents": [
        "4b2a8fb3a7f7935f62a7bbdc851789fb7c2da032"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Jun 23 23:07:50 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 23 23:07:50 2007 -0700"
      },
      "message": "[TCP] tcp_read_sock: Allow recv_actor() return return negative error value.\n\ntcp_read_sock() currently assumes that the recv_actor() only returns\nnumber of bytes copied. For network splice receive, we may have to\nreturn an error in some cases. So allow the actor to return a negative\nerror value.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3f196eb519a419bf83ecc22753943fd0a0de4f8f",
      "tree": "0dbec7698b6bebd5c6bccd5a02246ff3edf4efa6",
      "parents": [
        "278a3de5abc7901805689a66340b5af9882b4f9a"
      ],
      "author": {
        "name": "Mark Glines",
        "email": "mark@glines.org",
        "time": "Thu May 31 15:44:48 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Jun 03 18:08:43 2007 -0700"
      },
      "message": "[TCP]: Use default 32768-61000 outgoing port range in all cases.\n\nThis diff changes the default port range used for outgoing connections,\nfrom \"use 32768-61000 in most cases, but use N-4999 on small boxes\n(where N is a multiple of 1024, depending on just *how* small the box\nis)\" to just \"use 32768-61000 in all cases\".\n\nI don\u0027t believe there are any drawbacks to this change, and it keeps\noutgoing connection ports farther away from the mess of\nIANA-registered ports.\n\nSigned-off-by: Mark Glines \u003cmark@glines.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": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b40b4f79ce789e9e28d382c85006f62be2725282",
      "tree": "0764b390c4077f4569597678881487f718d25706",
      "parents": [
        "fde82055c1d0e64ff660d83c705db0e1abc9d12e"
      ],
      "author": {
        "name": "Srinivas Aji",
        "email": "Aji_Srinivas@emc.com",
        "time": "Thu May 03 17:32:28 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 03 17:32:28 2007 -0700"
      },
      "message": "[TCP]: zero out rx_opt in tcp_disconnect()\n\nWhen the server drops its connection, NFS client reconnects using the\nsame socket after disconnecting. If the new connection\u0027s SYN,ACK\ndoesn\u0027t contain the TCP timestamp option and the old connection\u0027s did,\ntp-\u003etcp_header_len is recomputed assuming no timestamp header but\ntp-\u003erx_opt.tstamp_ok remains set. Then tcp_build_and_update_options()\nadds in a timestamp option past the end of the allocated TCP header,\noverwriting TCP data, or when the data is in skb_shinfo(skb)-\u003efrags[],\noverwriting skb_shinfo(skb) causing a crash soon after. (The issue was\ndebugged from such a crash.)\n\nSimilarly, wscale_ok and sack_ok also get set based on the SYN,ACK\npacket but not reset on disconnect, since they are zeroed out at\ninitialization. The patch zeroes out the entire tp-\u003erx_opt struct in\ntcp_disconnect() to avoid this sort of problem.\n\nSigned-off-by: Srinivas Aji \u003cAji_Srinivas@emc.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "65bb723c9502b7ba0a3aad13bdac8832e213ba74",
      "tree": "8afacca25ce6a611da0c667210a2f3c39637f8f0",
      "parents": [
        "ecfd6b183780c6d9e85873693b3ce6c5f4d08b58"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Apr 28 21:21:46 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 28 21:21:46 2007 -0700"
      },
      "message": "[TCP]: Update references in two old comments\n\nThis updates references to drafts in comments which must be about 10\nyears old.  Internet draft draft-ietf-tcpimpl-prob-03.txt expired in 1998\nand was replaced by RFC 2525 in March 1999.\n\nSection 3.10 of the draft maps almost identically into section 2.17 of RFC\n2525: both are entitled \"Failure to RST on close with data pending\", the\ndifferences in text body amount to a typo and minor sentence change.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\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": "3ff50b7997fe06cd5d276b229967bb52d6b3b6c1",
      "tree": "4f0f57123a945c3e6c39759456b6187bb78c4b1f",
      "parents": [
        "c462238d6a6d8ee855bda10f9fff442971540ed2"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Fri Apr 20 17:09:22 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:29:24 2007 -0700"
      },
      "message": "[NET]: cleanup extra semicolons\n\nSpring cleaning time...\n\nThere seems to be a lot of places in the network code that have\nextra bogus semicolons after conditionals.  Most commonly is a\nbogus semicolon after: switch() { }\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4103f8cd5c1f260d674a7b426ed221812de54d47",
      "tree": "28649757907dd77b53a8c16533c963c43fea4be0",
      "parents": [
        "73417f617a93cf30342c3ea41abc38927bd467aa"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Mar 27 13:58:31 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:19 2007 -0700"
      },
      "message": "[TCP]: tcp_memory_pressure and tcp_socket are__read_mostly candidates\n\ntcp_memory_pressure and tcp_socket currently share a cache line with tcp_memory_allocated, tcp_sockets_allocated.\n(Very hot cache line)\nIt makes sense to declare these variables as __read_mostly, to avoid false sharing on SMP.\n\nffffffff8081d9c0 B tcp_orphan_count\nffffffff8081d9c4 B tcp_memory_allocated\nffffffff8081d9c8 B tcp_sockets_allocated\nffffffff8081d9cc B tcp_memory_pressure\nffffffff8081d9d0 b tcp_md5sig_users\nffffffff8081d9d8 b tcp_md5sig_pool\nffffffff8081d9e0 b warntime.31570\nffffffff8081d9e8 b tcp_socket\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27a884dc3cb63b93c2b3b643f5b31eed5f8a4d26",
      "tree": "5a267e40f9b94014be38dad5de0a52b6628834e0",
      "parents": [
        "be8bd86321fa7f06359d866ef61fb4d2f3e9dce9"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Apr 19 20:29:13 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:28 2007 -0700"
      },
      "message": "[SK_BUFF]: Convert skb-\u003etail to sk_buff_data_t\n\nSo that it is also an offset from skb-\u003ehead, reduces its size from 8 to 4 bytes\non 64bit architectures, allowing us to combine the 4 bytes hole left by the\nlayer headers conversion, reducing struct sk_buff size to 256 bytes, i.e. 4\n64byte cachelines, and since the sk_buff slab cache is SLAB_HWCACHE_ALIGN...\n:-)\n\nMany calculations that previously required that skb-\u003e{transport,network,\nmac}_header be first converted to a pointer now can be done directly, being\nmeaningful as offsets or pointers.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9c70220b73908f64792422a2c39c593c4792f2c5",
      "tree": "2090ea10aaa2714a5e095bae8cc02e743c378a3a",
      "parents": [
        "a27ef749e7be3b06fb58df53d94eb97a21f18707"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 18:04:18 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:31 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_transport_header(skb)\n\nFor the places where we need a pointer to the transport header, it is\nstill legal to touch skb-\u003eh.raw directly if just adding to,\nsubtracting from or setting it to another layer header.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\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": "53cdcc04c1e85d4e423b2822b66149b6f2e52c2c",
      "tree": "7a4072113c88b00f28e75dbcee3e8e803c44d79b",
      "parents": [
        "3e6b3b2e34ac2c72fa05b5e4b20bd88d64c298dc"
      ],
      "author": {
        "name": "John Heffner",
        "email": "jheffner@psc.edu",
        "time": "Fri Mar 16 15:04:03 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 16 15:04:03 2007 -0700"
      },
      "message": "[TCP]: Fix tcp_mem[] initialization.\n\nChange tcp_mem initialization function.  The fraction of total memory\nis now a continuous function of memory size, and independent of page\nsize.\n\nSigned-off-by: John Heffner \u003cjheffner@psc.edu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2c4f6219aca5939b57596278ea8b014275d4917b",
      "tree": "4635aab17f05da9945e112c61c54e93788417f4e",
      "parents": [
        "7f62ad5d37f4e43c841e92c6f159c93dcf2d2cdd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Feb 20 23:51:47 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Feb 26 11:42:48 2007 -0800"
      },
      "message": "[TCP]: Fix MD5 signature pool locking.\n\nThe locking calls assumed that these code paths were only\ninvoked in software interrupt context, but that isn\u0027t true.\n\nTherefore we need to use spin_{lock,unlock}_bh() throughout.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e905a9edab7f4f14f9213b52234e4a346c690911",
      "tree": "9e52a5f47eec47c5685c347ff7af22290a10305b",
      "parents": [
        "642656518b2e64fd59d9bbd15b6885cac5fe99b1"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Fri Feb 09 23:24:47 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Feb 10 23:19:39 2007 -0800"
      },
      "message": "[NET] IPV4: Fix whitespace errors.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dbca9b2750e3b1ee6f56a616160ccfc12e8b161f",
      "tree": "bf84c0acb5495fc95bc616d32b8af946f2e3bca9",
      "parents": [
        "eac3731bd04c7131478722a3c148b78774553116"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Feb 08 14:16:46 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 08 14:16:46 2007 -0800"
      },
      "message": "[NET]: change layout of ehash table\n\nehash table layout is currently this one :\n\nFirst half of this table is used by sockets not in TIME_WAIT state\nSecond half of it is used by sockets in TIME_WAIT state.\n\nThis is non optimal because of for a given hash or socket, the two chain heads \nare located in separate cache lines.\nMoreover the locks of the second half are never used.\n\nIf instead of this halving, we use two list heads in inet_ehash_bucket instead \nof only one, we probably can avoid one cache miss, and reduce ram usage, \nparticularly if sizeof(rwlock_t) is big (various CONFIG_DEBUG_SPINLOCK, \nCONFIG_DEBUG_LOCK_ALLOC settings). So we still halves the table but we keep \ntogether related chains to speedup lookups and socket state change.\n\nIn this patch I did not try to align struct inet_ehash_bucket, but a future \npatch could try to make this structure have a convenient size (a power of two \nor a multiple of L1_CACHE_SIZE).\nI guess rwlock will just vanish as soon as RCU is plugged into ehash :) , so \nmaybe we dont need to scratch our heads to align the bucket...\n\nNote : In case struct inet_ehash_bucket is not a power of two, we could \nprobably change alloc_large_system_hash() (in case it use __get_free_pages()) \nto free the unused space. It currently allocates a big zone, but the last \nquarter of it could be freed. Again, this should be a temporary \u0027problem\u0027.\n\nPatch tested on ipv4 tcp only, but should be OK for IPV6 and DCCP.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6931ba7cef3991fbb970997d33e24139ccdc3c2c",
      "tree": "b9b94005e1b4b1d9e2628d7fd5d3b5357d578598",
      "parents": [
        "befffe901649e2cc421d0d150c4379d01658cf6b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Dec 13 16:25:44 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Dec 13 16:48:26 2006 -0800"
      },
      "message": "[TCP]: Fix oops caused by __tcp_put_md5sig_pool()\n\nIt should call tcp_free_md5sig_pool() not __tcp_free_md5sig_pool()\nso that it does proper refcounting.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f5b99bcdddfb2338227faad3489c24907f37ee8e",
      "tree": "ab12dd443300df741e388ca80df0860dc65d24b0",
      "parents": [
        "2718aa7c55ba7264dd463b8f7006f0975366fa7b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu Nov 30 17:22:29 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:31:51 2006 -0800"
      },
      "message": "[NET]: Possible cleanups.\n\nThis patch contains the following possible cleanups:\n- make the following needlessly global functions statis:\n  - ipv4/tcp.c: __tcp_alloc_md5sig_pool()\n  - ipv4/tcp_ipv4.c: tcp_v4_reqsk_md5_lookup()\n  - ipv4/udplite.c: udplite_rcv()\n  - ipv4/udplite.c: udplite_err()\n- make the following needlessly global structs static:\n  - ipv4/tcp_ipv4.c: tcp_request_sock_ipv4_ops\n  - ipv4/tcp_ipv4.c: tcp_sock_ipv4_specific\n  - ipv6/tcp_ipv6.c: tcp_request_sock_ipv6_ops\n- net/ipv{4,6}/udplite.c: remove inline\u0027s from static functions\n                          (gcc should know best when to inline them)\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "352d48008b6f3e02d8ce77868432e329dd921cb1",
      "tree": "f95a23cc93d4a2bc7b7ef2f0431e455ab2059506",
      "parents": [
        "eafff86d3bd80403c808f67f5389813fdb5bd6c8"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Nov 17 19:59:12 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:24:03 2006 -0800"
      },
      "message": "[TCP]: Tidy up skb_entail\n\nHeck, it even saves us some few bytes:\n\n[acme@newtoy net-2.6.20]$ codiff -f /tmp/tcp.o.before ../OUTPUT/qemu/net-2.6.20/net/ipv4/tcp.o\n/pub/scm/linux/kernel/git/acme/net-2.6.20/net/ipv4/tcp.c:\n  tcp_sendpage |   -7\n  tcp_sendmsg  |   -5\n 2 functions changed, 12 bytes removed\n[acme@newtoy net-2.6.20]$\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "d3bc23e7ee9db8023dff5a86bb3b0069ed018789",
      "tree": "f281b190a20084386666e0f3bb957df427b93ca7",
      "parents": [
        "9981a0e36a572e9fcf84bfab915fdc93bed0e3c9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 14 21:24:49 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:23:27 2006 -0800"
      },
      "message": "[NET]: Annotate callers of csum_fold() 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": "52bf376c63eebe72e862a1a6e713976b038c3f50",
      "tree": "2bc19582770c2e2d55bc55c4faf7b15ac14228b4",
      "parents": [
        "337dde798dd1f3e4d4df4e684a0b4355dd65103d"
      ],
      "author": {
        "name": "John Heffner",
        "email": "jheffner@psc.edu",
        "time": "Tue Nov 14 20:25:17 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Nov 15 21:18:51 2006 -0800"
      },
      "message": "[TCP]: Fix up sysctl_tcp_mem initialization.\n\nFix up tcp_mem initial settings to take into account the size of the\nhash entries (different on SMP and non-SMP systems).\n\nSigned-off-by: John Heffner \u003cjheffner@psc.edu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9e950efa20dc8037c27509666cba6999da9368e8",
      "tree": "803cc09ecd7e400b6561719ea48b226f76c752fc",
      "parents": [
        "3b6a792f6ace33584897d1af08630c9acc0ce221"
      ],
      "author": {
        "name": "John Heffner",
        "email": "jheffner@psc.edu",
        "time": "Mon Nov 06 23:10:51 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Nov 07 15:10:11 2006 -0800"
      },
      "message": "[TCP]: Don\u0027t use highmem in tcp hash size calculation.\n\nThis patch removes consideration of high memory when determining TCP\nhash table sizes.  Taking into account high memory results in tcp_mem\nvalues that are too large.\n\nSigned-off-by: John Heffner \u003cjheffner@psc.edu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ef9696c909060ccdae3ade245ca88692b49285b",
      "tree": "3a2df5bbd6b448a4f873125ab5dd7c7a0cc7ae05",
      "parents": [
        "4eb327b517cf85f6cb7dcd5691e7b748cbe8c343"
      ],
      "author": {
        "name": "Alexey Kuznetsov",
        "email": "kuznet@ms2.inr.ac.ru",
        "time": "Tue Sep 19 12:52:50 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 15:19:05 2006 -0700"
      },
      "message": "[TCP]: Send ACKs each 2nd received segment.\n\nIt does not affect either mss-sized connections (obviously) or\nconnections controlled by Nagle (because there is only one small\nsegment in flight).\n\nThe idea is to record the fact that a small segment arrives on a\nconnection, where one small segment has already been received and\nstill not-ACKed. In this case ACK is forced after tcp_recvmsg() drains\nreceive buffer.\n\nIn other words, it is a \"soft\" each-2nd-segment ACK, which is enough\nto preserve ACK clock even when ABC is enabled.\n\nSigned-off-by: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e5d679f33900c71d1a76ba07c5b04055abd34480",
      "tree": "fb581f7156870056dbb91feaab9d3dd22fdcf61e",
      "parents": [
        "ff5dfe736dd9f6c74b206aa77c0465dfd503bdb9"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Aug 26 19:25:52 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 15:18:19 2006 -0700"
      },
      "message": "[NET]: Use SLAB_PANIC\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ab32ea5d8a760e7dd4339634e95d7be24ee5b842",
      "tree": "8460a66c529fe03f926848326d9b6aa874e19514",
      "parents": [
        "56fc85ac961e2c20dcb5ef07e2628b3f93de2e49"
      ],
      "author": {
        "name": "Brian Haley",
        "email": "brian.haley@hp.com",
        "time": "Fri Sep 22 14:15:41 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 14:55:03 2006 -0700"
      },
      "message": "[NET/IPV4/IPV6]: Change some sysctl variables to __read_mostly\n\nChange net/core, ipv4 and ipv6 sysctl variables to __read_mostly.\n\nCouldn\u0027t actually measure any performance increase while testing (.3%\nI consider noise), but seems like the right thing to do.\n\nSigned-off-by: Brian Haley \u003cbrian.haley@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "84fa7933a33f806bbbaae6775e87459b1ec584c0",
      "tree": "5be404225d90f640997b12f631e9b496b3fd0d61",
      "parents": [
        "8584d6df39db5601965f9bc5e3bf2fea833ad7bb"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Aug 29 16:44:56 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 14:53:53 2006 -0700"
      },
      "message": "[NET]: Replace CHECKSUM_HW by CHECKSUM_PARTIAL/CHECKSUM_COMPLETE\n\nReplace CHECKSUM_HW by CHECKSUM_PARTIAL (for outgoing packets, whose\nchecksum still needs to be completed) and CHECKSUM_COMPLETE (for\nincoming packets, device supplied full checksum).\n\nPatch originally from Herbert Xu, updated by myself for 2.6.18-rc3.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "29bbd72d6ee1dbf2d9f00d022f8e999aa528fb3a",
      "tree": "4bc8ba22fff42b1da83cab3b3d8113b6d4771b7a",
      "parents": [
        "95ce568812822931991a24147987c5c75c0ac5b0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Aug 02 15:02:31 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 02 15:02:31 2006 -0700"
      },
      "message": "[NET]: Fix more per-cpu typos\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "52499afe40387524e9f46ef9ce4695efccdd2ed9",
      "tree": "eb097a1c4150ff00a66a692f378ea4fb6f1035f0",
      "parents": [
        "a280b89982f48e9a32c6410a37419b12ca88af6b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Jul 31 22:32:09 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Aug 02 13:38:24 2006 -0700"
      },
      "message": "[TCP]: Process linger2 timeout consistently.\n\nBased upon guidance from Alexey Kuznetsov.\n\nWhen linger2 is active, we check to see if the fin_wait2\ntimeout is longer than the timewait.  If it is, we schedule\nthe keepalive timer for the difference between the timewait\ntimeout and the fin_wait2 timeout.\n\nWhen this orphan socket is seen by tcp_keepalive_timer()\nit will try to transform this fin_wait2 socket into a\nfin_wait2 mini-socket, again if linger2 is active.\n\nNot all paths were setting this initial keepalive timer correctly.\nThe tcp input path was doing it correctly, but tcp_close() wasn\u0027t,\npotentially making the socket linger longer than it really needs to.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bbcf467dab42ea3c85f368df346c82af2fbba665",
      "tree": "e9fe30c1be9c6a3773454bad3eefaabf4f5bee48",
      "parents": [
        "6ce1669fdb6b0a0faf9b2e2ba08048b520c57841"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jul 03 19:38:35 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 03 19:38:35 2006 -0700"
      },
      "message": "[NET]: Verify gso_type too in gso_segment\n\nWe don\u0027t want nasty Xen guests to pass a TCPv6 packet in with gso_type set\nto TCPv4 or even UDP (or a packet that\u0027s both TCP and UDP).\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e37a72de84d27ee8bc0e7dbb5c2f1774ed306dbb",
      "tree": "f9da35cbd79b52a5bd08d4a0f960bde6af741da0",
      "parents": [
        "93fdf10d4c28edaa1b9f80e7f9c3002359186d00",
        "f83ef8c0b58dac17211a4c0b6df0e2b1bd6637b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 15:40:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 15:40:17 2006 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:\n  [IPV6]: Added GSO support for TCPv6\n  [NET]: Generalise TSO-specific bits from skb_setup_caps\n  [IPV6]: Added GSO support for TCPv6\n  [IPV6]: Remove redundant length check on input\n  [NETFILTER]: SCTP conntrack: fix crash triggered by packet without chunks\n  [TG3]: Update version and reldate\n  [TG3]: Add TSO workaround using GSO\n  [TG3]: Turn on hw fix for ASF problems\n  [TG3]: Add rx BD workaround\n  [TG3]: Add tg3_netif_stop() in vlan functions\n  [TCP]: Reset gso_segs if packet is dodgy\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": "adcfc7d0b4d7bc3c7edac6fdde9f3ae510bd6054",
      "tree": "6bf8f6facbfbac9ea8ed4d3310ea46a7518ae453",
      "parents": [
        "2889139a6acd2945f6143eb85f7dc2a22a352e1a"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jun 30 13:36:15 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 30 14:12:06 2006 -0700"
      },
      "message": "[IPV6]: Added GSO support for TCPv6\n\nThis patch adds GSO support for IPv6 and TCPv6.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3820c3f3e41786322c0bb225b9c77b8deff869d1",
      "tree": "a422ad9d119950af2d139849fe24e935ad9f0a22",
      "parents": [
        "598736c55622f7ea65b98f93c825ff95c433877c"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jun 29 20:11:25 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 30 14:11:47 2006 -0700"
      },
      "message": "[TCP]: Reset gso_segs if packet is dodgy\n\nI wasn\u0027t paranoid enough in verifying GSO information.  A bogus gso_segs\ncould upset drivers as much as a bogus header would.  Let\u0027s reset it in\nthe per-protocol gso_segment functions.\n\nI didn\u0027t verify gso_size because that can be verified by the source of\nthe dodgy packets.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\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": "0718bcc09b3597c51e87f265c72135a4928d3c0b",
      "tree": "fd4a686629488bad28f3c780e6b2b52803698877",
      "parents": [
        "3ba07e65b288f00cc4d2420f1da46309b1cb5a0c"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Jun 25 23:55:46 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 25 23:55:46 2006 -0700"
      },
      "message": "[NET]: Fix CHECKSUM_HW GSO problems.\n\nFix checksum problems in the GSO code path for CHECKSUM_HW packets.\n\nThe ipv4 TCP pseudo header checksum has to be adjusted for GSO\nsegmented packets.\n\nThe adjustment is needed because the length field in the pseudo-header\nchanges.  However, because we have the inequality oldlen \u003e newlen, we\nknow that delta \u003d (u16)~oldlen + newlen is still a 16-bit quantity.\nThis also means that htonl(delta) + th-\u003echeck still fits in 32 bits.\nTherefore we don\u0027t have to use csum_add on this operations.\n\nThis is based on a patch by Michael Chan \u003cmchan@broadcom.com\u003e.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: Michael Chan \u003cmchan@broadcom.com\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": "8648b3053bff39a7ee4c711d74268079c928a657",
      "tree": "6de70eedf63c4b965d04040323827f1bc520ccdf",
      "parents": [
        "00b7050426da8e7e58c889c5c80a19920d2d41b3"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jun 17 22:06:05 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 17 22:06:05 2006 -0700"
      },
      "message": "[NET]: Add NETIF_F_GEN_CSUM and NETIF_F_ALL_CSUM\n\nThe current stack treats NETIF_F_HW_CSUM and NETIF_F_NO_CSUM\nidentically so we test for them in quite a few places.  For the sake\nof brevity, I\u0027m adding the macro NETIF_F_GEN_CSUM for these two.  We\nalso test the disjunct of NETIF_F_IP_CSUM and the other two in various\nplaces, for that purpose I\u0027ve added NETIF_F_ALL_CSUM.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1a2449a87bb7606113b1aa1a9d3c3e78ef189a1c",
      "tree": "86e833a8694f201de138697646e7e8469e9c8ef6",
      "parents": [
        "9593782585e0cf70babe787a8463d492a68b1744"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue May 23 18:05:53 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:25:56 2006 -0700"
      },
      "message": "[I/OAT]: TCP recv offload to I/OAT\n\nLocks down user pages and sets up for DMA in tcp_recvmsg, then calls\ndma_async_try_early_copy in tcp_v4_do_rcv\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "624d1164730d58a494cc5aa4afa37d02c41e83a7",
      "tree": "b6cc0776a826f8f2611eff41149410c7f4ccb355",
      "parents": [
        "0e4b4992b8007c6b62ec143cbbb292f98813ca11"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue May 23 18:01:28 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:25:52 2006 -0700"
      },
      "message": "[I/OAT]: Make sk_eat_skb I/OAT aware.\n\nAdd an extra argument to sk_eat_skb, and make it move early copied\npackets to the async_wait_queue instead of freeing them.\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": "75c2d9077c63ac21488129cc23561d4f4fd0f5e5",
      "tree": "f32af17fdadc749f899f66371981055fa8eab35a",
      "parents": [
        "82e84249f0ee098e004c8bd6d90a1640bd56cfbb"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed May 03 23:31:35 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 03 23:31:35 2006 -0700"
      },
      "message": "[TCP]: Fix sock_orphan dead lock\n\nCalling sock_orphan inside bh_lock_sock in tcp_close can lead to dead\nlocks.  For example, the inet_diag code holds sk_callback_lock without\ndisabling BH.  If an inbound packet arrives during that admittedly tiny\nwindow, it will cause a dead lock on bh_lock_sock.  Another possible\npath would be through sock_wfree if the network device driver frees the\ntx skb in process context with BH enabled.\n\nWe can fix this by moving sock_orphan out of bh_lock_sock.\n\nThe tricky bit is to work out when we need to destroy the socket\nourselves and when it has already been destroyed by someone else.\n\nBy moving sock_orphan before the release_sock we can solve this\nproblem.  This is because as long as we own the socket lock its\nstate cannot change.\n\nSo we simply record the socket state before the release_sock\nand then check the state again after we regain the socket lock.\nIf the socket state has transitioned to TCP_CLOSE in the time being,\nwe know that the socket has been destroyed.  Otherwise the socket is\nstill ours to keep.\n\nNote that I\u0027ve also moved the increment on the orphan count forward.\nThis may look like a problem as we\u0027re increasing it even if the socket\nis just about to be destroyed where it\u0027ll be decreased again.  However,\nthis simply enlarges a window that already exists.  This also changes\nthe orphan count test by one.\n\nConsidering what the orphan count is meant to do this is no big deal.\n\nThis problem was discoverd by Ingo Molnar using his lock validator.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b55813a2e50088ca30df33fa62aeed5d3adb1796",
      "tree": "be50fe404e94869fe854766e190a5753dbc7dd49",
      "parents": [
        "368d17e068f691dba5a4f122c271db5ec9b2ebd6",
        "9e19bb6d7a0959f5028d46e1ab99c50f0d36eda8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:39:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:39:20 2006 -0800"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:\n  [NETFILTER] x_table.c: sem2mutex\n  [IPV4]: Aggregate route entries with different TOS values\n  [TCP]: Mark tcp_*mem[] __read_mostly.\n  [TCP]: Set default max buffers from memory pool size\n  [SCTP]: Fix up sctp_rcv return value\n  [NET]: Take RTNL when unregistering notifier\n  [WIRELESS]: Fix config dependencies.\n  [NET]: Fill in a 32-bit hole in struct sock on 64-bit platforms.\n  [NET]: Ensure device name passed to SO_BINDTODEVICE is NULL terminated.\n  [MODULES]: Don\u0027t allow statically declared exports\n  [BRIDGE]: Unaligned accesses in the ethernet bridge\n"
    },
    {
      "commit": "f348d70a324e15afc701a494f32ec468abb7d1eb",
      "tree": "a4cb43429f7f08a6621c581bd99e4a03198e8c67",
      "parents": [
        "501f2499b897ca4be68b1acc7a4bc8cf66f5fd24"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Sat Mar 25 03:07:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:56 2006 -0800"
      },
      "message": "[PATCH] POLLRDHUP/EPOLLRDHUP handling for half-closed devices notifications\n\nImplement the half-closed devices notifiation, by adding a new POLLRDHUP\n(and its alias EPOLLRDHUP) bit to the existing poll/select sets.  Since the\nexisting POLLHUP handling, that does not report correctly half-closed\ndevices, was feared to be changed, this implementation leaves the current\nPOLLHUP reporting unchanged and simply add a new bit that is set in the few\nplaces where it makes sense.  The same thing was discussed and conceptually\nagreed quite some time ago:\n\nhttp://lkml.org/lkml/2003/7/12/116\n\nSince this new event bit is added to the existing Linux poll infrastruture,\neven the existing poll/select system calls will be able to use it.  As far\nas the existing POLLHUP handling, the patch leaves it as is.  The\npollrdhup-2.6.16.rc5-0.10.diff defines the POLLRDHUP for all the existing\narchs and sets the bit in the six relevant files.  The other attached diff\nis the simple change required to sys/epoll.h to add the EPOLLRDHUP\ndefinition.\n\nThere is \"a stupid program\" to test POLLRDHUP delivery here:\n\n http://www.xmailserver.org/pollrdhup-test.c\n\nIt tests poll(2), but since the delivery is same epoll(2) will work equally.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b8059eadf9f4dc24bd72da71daa832a9a9899fb4",
      "tree": "14ce03cd0b322ba35a600d13930a440aafda6f8d",
      "parents": [
        "7b4f4b5ebceab67ce440a61081a69f0265e17c2a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Mar 25 01:36:56 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Mar 25 01:36:56 2006 -0800"
      },
      "message": "[TCP]: Mark tcp_*mem[] __read_mostly.\n\nSuggested by Stephen Hemminger.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7b4f4b5ebceab67ce440a61081a69f0265e17c2a",
      "tree": "ac02c685ce23f2440fecbebaa5b55cd47947c03e",
      "parents": [
        "2babf9daae4a3561f3264638a22ac7d0b14a6f52"
      ],
      "author": {
        "name": "John Heffner",
        "email": "jheffner@psc.edu",
        "time": "Sat Mar 25 01:34:07 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 25 01:34:07 2006 -0800"
      },
      "message": "[TCP]: Set default max buffers from memory pool size\n\nThis patch sets the maximum TCP buffer sizes (available to automatic\nbuffer tuning, not to setsockopt) based on the TCP memory pool size.\nThe maximum sndbuf and rcvbuf each will be up to 4 MB, but no more\nthan 1/128 of the memory pressure threshold.\n\nSigned-off-by: John Heffner \u003cjheffner@psc.edu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "543d9cfeec4d58ad3fd974db5531b06b6b95deb4",
      "tree": "b5f79a92ec01b4a97f26d48cae11566498641822",
      "parents": [
        "f94691acf9df35d5cd828373e35391bdc4a3fde6"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 22:48:35 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:48:35 2006 -0800"
      },
      "message": "[NET]: Identation \u0026 other cleanups related to compat_[gs]etsockopt cset\n\nNo code changes, just tidying up, in some cases moving EXPORT_SYMBOLs\nto just after the function exported, etc.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dec73ff0293d59076d1fd8f4a264898ecfc457ec",
      "tree": "251a87b4b98d073fcd3753e01eea5ea44aaf9570",
      "parents": [
        "d1d47beef8ecaeedc368f00780d02cfa5e540005"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 22:46:16 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:46:16 2006 -0800"
      },
      "message": "[ICSK] compat: Introduce inet_csk_compat_[gs]etsockopt\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\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": "d83d8461f902c672bc1bd8fbc6a94e19f092da97",
      "tree": "0534c553ab92baa2eb9dbb5bba64f2c4540b1e89",
      "parents": [
        "22712813620fa8e682dbfb253a60ca0131da1e07"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Dec 13 23:26:10 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:10:58 2006 -0800"
      },
      "message": "[IP_SOCKGLUE]: Remove most of the tcp specific calls\n\nAs DCCP needs to be called in the same spots.\n\nNow we have a member in inet_sock (is_icsk), set at sock creation time from\nstruct inet_protosw-\u003eflags (if INET_PROTOSW_ICSK is set, like for TCP and\nDCCP) to see if a struct sock instance is a inet_connection_sock for places\nlike the ones in ip_sockglue.c (v4 and v6) where we previously were looking if\nsk_type was SOCK_STREAM, that is insufficient because we now use the same code\nfor DCCP, that has sk_type SOCK_DCCP.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "8292a17a399ffb7c5c8b083db4ad994e090055f7"
}
