)]}'
{
  "log": [
    {
      "commit": "7e38017557bc0b87434d184f8804cadb102bb903",
      "tree": "30c4a0793bd28f6731ade58786c06f9cf33115df",
      "parents": [
        "36e31b0af58728071e8023cf8e20c5166b700717"
      ],
      "author": {
        "name": "Andreas Petlund",
        "email": "apetlund@simula.no",
        "time": "Thu Feb 18 04:48:19 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 18 15:43:09 2010 -0800"
      },
      "message": "net: TCP thin dupack\n\nThis patch enables fast retransmissions after one dupACK for\nTCP if the stream is identified as thin. This will reduce\nlatencies for thin streams that are not able to trigger fast\nretransmissions due to high packet interarrival time. This\nmechanism is only active if enabled by iocontrol or syscontrol\nand the stream is identified as thin.\n\nSigned-off-by: Andreas Petlund \u003capetlund@simula.no\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "36e31b0af58728071e8023cf8e20c5166b700717",
      "tree": "8b4d251bf78965ac7501bea9011786b8255a3312",
      "parents": [
        "5aa4b32fc86408705337e941ed716880c63d1590"
      ],
      "author": {
        "name": "Andreas Petlund",
        "email": "apetlund@simula.no",
        "time": "Thu Feb 18 02:47:01 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 18 15:43:08 2010 -0800"
      },
      "message": "net: TCP thin linear timeouts\n\nThis patch will make TCP use only linear timeouts if the\nstream is thin. This will help to avoid the very high latencies\nthat thin stream suffer because of exponential backoff. This\nmechanism is only active if enabled by iocontrol or syscontrol\nand the stream is identified as thin. A maximum of 6 linear\ntimeouts is tried before exponential backoff is resumed.\n\nSigned-off-by: Andreas Petlund \u003capetlund@simula.no\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7d720c3e4f0c4fc152a6bf17e24244a3c85412d2",
      "tree": "36e037187ce79acb211702bea22e99c625787757",
      "parents": [
        "2bb4646fce8d09916b351d1a62f98db7cec6fc41"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 16 15:20:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 16 23:05:38 2010 -0800"
      },
      "message": "percpu: add __percpu sparse annotations to net\n\nAdd __percpu sparse annotations to net.\n\nThese annotations are to make sparse consider percpu variables to be\nin a different address space and warn if accessed without going\nthrough percpu accessors.  This patch doesn\u0027t affect normal builds.\n\nThe macro and type tricks around snmp stats make things a bit\ninteresting.  DEFINE/DECLARE_SNMP_STAT() macros mark the target field\nas __percpu and SNMP_UPD_PO_STATS() macro is updated accordingly.  All\nsnmp_mib_*() users which used to cast the argument to (void **) are\nupdated to cast it to (void __percpu **).\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nCc: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nCc: netdev@vger.kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "def87cf42069a6d4fd42a2ede8f19c620a292568",
      "tree": "1e8e97b452dd95d389feb4f04c0f25b6a9264412",
      "parents": [
        "afeca340c078e17ca233b3c68c3c3a70c56bfe1d"
      ],
      "author": {
        "name": "Krishna Kumar",
        "email": "krkumar2@in.ibm.com",
        "time": "Thu Dec 10 07:16:59 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 23 14:13:29 2009 -0800"
      },
      "message": "tcp: Slightly optimize tcp_sendmsg\n\nSlightly optimize tcp_sendmsg since NETIF_F_SG is used many\ntimes iteratively in the loop. The only other modification is\nto change:\n\t\t\t} else if (i \u003d\u003d MAX_SKB_FRAGS ||\n\t\t\t\t   (!i \u0026\u0026\n\t\t\t\t   !(sk-\u003esk_route_caps \u0026 NETIF_F_SG))) {\n\tto:\n\t\t\t} else if (i \u003d\u003d MAX_SKB_FRAGS || !sg) {\n\nThe reason why this change is correct: this code (other than\nthe MAX_SKB_FRAGS case) executes only due to the else part\nof: \"if (skb_tailroom(skb) \u003e 0) {\" - i.e. there was no space\nin the skb to put the data inline. Hence SG is false is a\nsufficient condition, and there is no way a fragment can be\nadded to the skb.\n\nChangelog:\n\t- Added the above explanation for the change\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nAcked-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "afeca340c078e17ca233b3c68c3c3a70c56bfe1d",
      "tree": "f7b308856bdd21f41ea61cf6b74cd28e50b0448f",
      "parents": [
        "12d50c46dc0f7fd2e625c4befaa5fa5740a7a594"
      ],
      "author": {
        "name": "Krishna Kumar",
        "email": "krkumar2@in.ibm.com",
        "time": "Thu Dec 10 07:16:52 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 23 14:13:28 2009 -0800"
      },
      "message": "tcp: Remove unrequired operations in tcp_push()\n\nRemove unrequired operations in tcp_push()\n\nChangelog:\n\tRemoved a temporary skb variable from tcp_push()\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nAcked-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3dc789320e1b310cb505dcd94512c279abcd5e1c",
      "tree": "b6173953ccff6c9bfd83096c97027c2d338287d1",
      "parents": [
        "e61444d9209821469ed0d5a9128dcf2e494533ea"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 20:07:54 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 08 20:07:54 2009 -0800"
      },
      "message": "tcp: Remove runtime check that can never be true.\n\nGCC even warns about it, as reported by Andrew Morton:\n\nnet/ipv4/tcp.c: In function \u0027do_tcp_getsockopt\u0027:\nnet/ipv4/tcp.c:2544: warning: comparison is always false due to limited range of data type\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e56fb50f2b7958b931c8a2fc0966061b3f3c8f3a",
      "tree": "392f548e99f5d098286cea54fb9e18ac8c31e672",
      "parents": [
        "435cf559f02ea3a3159eb316f97dc88bdebe9432"
      ],
      "author": {
        "name": "William Allen Simpson",
        "email": "william.allen.simpson@gmail.com",
        "time": "Wed Dec 02 18:19:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 02 22:07:25 2009 -0800"
      },
      "message": "TCPCT part 1e: implement socket option TCP_COOKIE_TRANSACTIONS\n\nProvide per socket control of the TCP cookie option and SYN/SYNACK data.\n\nThis is a straightforward re-implementation of an earlier (year-old)\npatch that no longer applies cleanly, with permission of the original\nauthor (Adam Langley):\n\n    http://thread.gmane.org/gmane.linux.network/102586\n\nThe principle difference is using a TCP option to carry the cookie nonce,\ninstead of a user configured offset in the data.\n\nAllocations have been rearranged to avoid requiring GFP_ATOMIC.\n\nRequires:\n   net: TCP_MSS_DEFAULT, TCP_MSS_DESIRED\n   TCPCT part 1c: sysctl_tcp_cookie_size, socket option TCP_COOKIE_TRANSACTIONS\n   TCPCT part 1d: define TCP cookie option, extend existing struct\u0027s\n\nSigned-off-by: William.Allen.Simpson@gmail.com\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "da5c78c82629a167794436e4306b4cf1faddea90",
      "tree": "c933fdc0583b592c01885890ebf770840555d28b",
      "parents": [
        "e6b4d11367519bc71729c09d05a126b133c755be"
      ],
      "author": {
        "name": "William Allen Simpson",
        "email": "william.allen.simpson@gmail.com",
        "time": "Wed Dec 02 18:12:09 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 02 22:07:23 2009 -0800"
      },
      "message": "TCPCT part 1b: generate Responder Cookie secret\n\nDefine (missing) hash message size for SHA1.\n\nDefine hashing size constants specific to TCP cookies.\n\nAdd new function: tcp_cookie_generator().\n\nMaintain global secret values for tcp_cookie_generator().\n\nThis is a significantly revised implementation of earlier (15-year-old)\nPhoturis [RFC-2522] code for the KA9Q cooperative multitasking platform.\n\nLinux RCU technique appears to be well-suited to this application, though\nneither of the circular queue items are freed.\n\nThese functions will also be used in subsequent patches that implement\nadditional features.\n\nSigned-off-by: William.Allen.Simpson@gmail.com\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ff9c38bba37937adb909cceb2a6521f2e92e17c6",
      "tree": "93bd6152d9fa28348be99ef1c788040cc7b7a94d",
      "parents": [
        "65c0cfafce9575319fb6f70080fbe226e5617e3b",
        "b2722b1c3a893ec6021508da15b32282ec79f4da"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 22:13:38 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 22:13:38 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/mac80211/ht.c\n"
    },
    {
      "commit": "1fdf475aa141a669af8db6ccc7015f0b725087de",
      "tree": "7298a884935feb59352566ca6119856a0e322cb5",
      "parents": [
        "0cae200eec6330cd2c20b24279597be1da50dc93"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Nov 30 12:53:30 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 30 12:53:30 2009 -0800"
      },
      "message": "tcp: tcp_disconnect() should clear window_clamp\n\nNFS can reuse its TCP socket after calling tcp_disconnect().\n\nWe noticed window scaling was not negotiated in SYN packet of next\nconnection request.\n\nFix is to clear tp-\u003ewindow_clamp in tcp_disconnect().\n\nReported-by: Krzysztof Oledzki \u003cole@ans.pl\u003e\nTested-by: Krzysztof Oledzki \u003cole@ans.pl\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a2bfbc072e279ff81e6b336acff612b9bc2e5281",
      "tree": "89cfe21911e1539e1b7f89d8a10d42abecba2a18",
      "parents": [
        "5c427ff9e4cc61625d48172ea082ae99e21eea6a",
        "82b3cc1a2f5e46300a9dec4a8cc8106dc20a4c23"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 17 00:05:02 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 17 00:05:02 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/can/Kconfig\n"
    },
    {
      "commit": "d792c1006fe92448217b71513d3955868358271d",
      "tree": "918d3fea89ab7f053a0a3f15c2b2feff24f81ef5",
      "parents": [
        "d01032e4fd33110f9f3a085a36cb819c1dfc5827"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Nov 13 13:56:33 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 13 13:56:33 2009 -0800"
      },
      "message": "tcp: provide more information on the tcp receive_queue bugs\n\nThe addition of rcv_nxt allows to discern whether the skb\nwas out of place or tp-\u003ecopied. Also catch fancy combination\nof flags if necessary (sadly we might miss the actual causer\nflags as it might have already returned).\n\nBtw, we perhaps would want to forward copied_seq in\nsomewhere or otherwise we might have some nice loop with\nWARN stuff within but where to do that safely I don\u0027t\nknow at this stage until more is known (but it is not\nmade significantly worse by this patch).\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cfadf853f6cd9689f79a63ca960c6f9d6665314f",
      "tree": "35418e342d9783f0974ea33ef03875aa21d2362a",
      "parents": [
        "05423b241311c9380b7280179295bac7794281b6",
        "f568a926a353d6816b3704d7367f34371df44ce7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 27 01:03:26 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 27 01:03:26 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/sh_eth.c\n"
    },
    {
      "commit": "c62f4c453ab4b0240ab857bfd089da2c01ad91e7",
      "tree": "2c99ed102d752d762cc051ee1e89539e0453bdc0",
      "parents": [
        "74eee2e8d08048c847d1998c686e12a477ff939a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Thu Oct 22 21:37:56 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 22 21:37:56 2009 -0700"
      },
      "message": "net: use WARN() for the WARN_ON in commit b6b39e8f3fbbb\n\nCommit b6b39e8f3fbbb (tcp: Try to catch MSG_PEEK bug) added a printk()\nto the WARN_ON() that\u0027s in tcp.c. This patch changes this combination\nto WARN(); the advantage of WARN() is that the printk message shows up\ninside the message, so that kerneloops.org will collect the message.\n\nIn addition, this gets rid of an extra if() statement.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b6b39e8f3fbbb31001b836afec87bcaf4811a7bf",
      "tree": "33cf8d3732bde60abc7651b0ecf78e297d7b0afb",
      "parents": [
        "55b8050353c4a212c94d7156e2bd5885225b869b"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Oct 19 19:41:06 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 20 00:51:57 2009 -0700"
      },
      "message": "tcp: Try to catch MSG_PEEK bug\n\nThis patch tries to print out more information when we hit the\nMSG_PEEK bug in tcp_recvmsg.  It\u0027s been around since at least\n2005 and it\u0027s about time that we finally fix it.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b103cf34382f26ff48a87931b83f13b177b47c1a",
      "tree": "6922379bca3fc9935d394bc474a91b859ac06813",
      "parents": [
        "0c3d79bce48034018e840468ac5a642894a521a3"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Mon Oct 19 10:10:40 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 19 19:19:06 2009 -0700"
      },
      "message": "tcp: fix TCP_DEFER_ACCEPT retrans calculation\n\nFix TCP_DEFER_ACCEPT conversion between seconds and\nretransmission to match the TCP SYN-ACK retransmission periods\nbecause the time is converted to such retransmissions. The old\nalgorithm selects one more retransmission in some cases. Allow\nup to 255 retransmissions.\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c720c7e8383aff1cb219bddf474ed89d850336e3",
      "tree": "4f12337e6690fccced376db9f501eaf98614a65e",
      "parents": [
        "988ade6b8e27e79311812f83a87b5cea11fabcd7"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Oct 15 06:30:45 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 18 18:52:53 2009 -0700"
      },
      "message": "inet: rename some inet_sock fields\n\nIn order to have better cache layouts of struct sock (separate zones\nfor rx/tx paths), we need this preliminary patch.\n\nGoal is to transfert fields used at lookup time in the first\nread-mostly cache line (inside struct sock_common) and move sk_refcnt\nto a separate cache line (only written by rx path)\n\nThis patch adds inet_ prefix to daddr, rcv_saddr, dport, num, saddr,\nsport and id fields. This allows a future patch to define these\nfields as macros, like sk_refcnt, without name clashes.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f373b53b5fe67aa4a6f28f921a529cc90f88e79b",
      "tree": "b2cae9152aed2e30b7a39c114678b9355ab5c14f",
      "parents": [
        "c3faca053d0a9c877597935b434150b422dbc6fb"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 09 00:16:19 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 13 03:44:02 2009 -0700"
      },
      "message": "tcp: replace ehash_size by ehash_mask\n\nStoring the mask (size - 1) instead of the size allows fast path to be\na bit faster.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "42324c62704365d6a3e89138dea55909d2f26afe",
      "tree": "6a56f042aebb4e0dbc8da7e904d79989e42b3666",
      "parents": [
        "914a9ab386a288d0f22252fc268ecbc048cdcbd5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Oct 01 15:26:00 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 02 09:46:05 2009 -0700"
      },
      "message": "net: splice() from tcp to pipe should take into account O_NONBLOCK\n\ntcp_splice_read() doesnt take into account socket\u0027s O_NONBLOCK flag\n\nBefore this patch :\n\nsplice(socket,0,pipe,0,128*1024,SPLICE_F_MOVE);\ncauses a random endless block (if pipe is full) and\nsplice(socket,0,pipe,0,128*1024,SPLICE_F_MOVE | SPLICE_F_NONBLOCK);\nwill return 0 immediately if the TCP buffer is empty.\n\nUser application has no way to instruct splice() that socket should be in blocking mode\nbut pipe in nonblock more.\n\nMany projects cannot use splice(tcp -\u003e pipe) because of this flaw.\n\nhttp://git.samba.org/?p\u003dsamba.git;a\u003dhistory;f\u003dsource3/lib/recvfile.c;h\u003dea0159642137390a0f7e57a123684e6e63e47581;hb\u003dHEAD\nhttp://lkml.indiana.edu/hypermail/linux/kernel/0807.2/0687.html\n\nLinus introduced  SPLICE_F_NONBLOCK in commit 29e350944fdc2dfca102500790d8ad6d6ff4f69d\n(splice: add SPLICE_F_NONBLOCK flag )\n\n  It doesn\u0027t make the splice itself necessarily nonblocking (because the\n  actual file descriptors that are spliced from/to may block unless they\n  have the O_NONBLOCK flag set), but it makes the splice pipe operations\n  nonblocking.\n\nLinus intention was clear : let SPLICE_F_NONBLOCK control the splice pipe mode only\n\nThis patch instruct tcp_splice_read() to use the underlying file O_NONBLOCK\nflag, as other socket operations do.\n\nUsers will then call :\n\nsplice(socket,0,pipe,0,128*1024,SPLICE_F_MOVE | SPLICE_F_NONBLOCK );\n\nto block on data coming from socket (if file is in blocking mode),\nand not block on pipe output (to avoid deadlock)\n\nFirst version of this patch was submitted by Octavian Purdila\n\nReported-by: Volker Lendecke \u003cvl@samba.org\u003e\nReported-by: Jason Gunthorpe \u003cjgunthorpe@obsidianresearch.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Octavian Purdila \u003copurdila@ixiacom.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4fdb78d3093a347456e108b77d56d493d29071b2",
      "tree": "2ad6dc10dc3603d40caaa26fbdb6684f30987a4e",
      "parents": [
        "28ad3957b913855e8d41a27f7b90bed944809625"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Oct 01 15:02:20 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 01 15:02:20 2009 -0700"
      },
      "message": "net/ipv4/tcp.c: fix min() type mismatch warning\n\nnet/ipv4/tcp.c: In function \u0027do_tcp_setsockopt\u0027:\nnet/ipv4/tcp.c:2050: warning: comparison of distinct pointer types lacks a cast\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b7058842c940ad2c08dd829b21e5c92ebe3b8758",
      "tree": "5fe78d599fc345ca0bcd4b083b79095a54b2921b",
      "parents": [
        "eb1cf0f8f7a9e5a6d573d5bd72c015686a042db0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 30 16:12:20 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 30 16:12:20 2009 -0700"
      },
      "message": "net: Make setsockopt() optlen be unsigned.\n\nThis provides safety against negative optlen at the type\nlevel instead of depending upon (sometimes non-trivial)\nchecks against this sprinkled all over the the place, in\neach and every implementation.\n\nBased upon work done by Arjan van de Ven and feedback\nfrom Linus Torvalds.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4481374ce88ba8f460c8b89f2572027bd27057d0",
      "tree": "6896601b6a1da0e3e932ffa75fcff966c834c02c",
      "parents": [
        "4738e1b9cf8f9e28d7de080a5e6ce5d0095ea18f"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Mon Sep 21 17:03:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:38 2009 -0700"
      },
      "message": "mm: replace various uses of num_physpages by totalram_pages\n\nSizing of memory allocations shouldn\u0027t depend on the number of physical\npages found in a system, as that generally includes (perhaps a huge amount\nof) non-RAM pages.  The amount of what actually is usable as storage\nshould instead be used as a basis here.\n\nSome of the calculations (i.e.  those not intending to use high memory)\nshould likely even use (totalram_pages - totalhigh_pages).\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b6a05c1dbebe8c616e2e5b0f52b7a01fd792911",
      "tree": "18b5a2d16ac3fa8dd6d4528469725c216aed428c",
      "parents": [
        "036d6a673fa0a2e2c5b72a3b1d1b86114c1711c0"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Tue Sep 15 01:30:10 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 15 01:30:10 2009 -0700"
      },
      "message": "tcp: fix ssthresh u16 leftover\n\nIt was once upon time so that snd_sthresh was a 16-bit quantity.\n...That has not been true for long period of time. I run across\nsome ancient compares which still seem to trust such legacy.\nPut all that magic into a single place, I hopefully found all\nof them.\n\nCompile tested, though linking of allyesconfig is ridiculous\nnowadays it seems.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aa1330766c49199bdab4d4a9096d98b072df9044",
      "tree": "98787478dbef0faa7caee09c4996abcda723a608",
      "parents": [
        "05c6a8d7a7d778f26d8eb821556988993b766092"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Sep 02 23:45:45 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 02 23:45:45 2009 -0700"
      },
      "message": "tcp: replace hard coded GFP_KERNEL with sk_allocation\n\nThis fixed a lockdep warning which appeared when doing stress\nmemory tests over NFS:\n\n\tinconsistent {RECLAIM_FS-ON-W} -\u003e {IN-RECLAIM_FS-W} usage.\n\n\tpage reclaim \u003d\u003e nfs_writepage \u003d\u003e tcp_sendmsg \u003d\u003e lock sk_lock\n\n\tmount_root \u003d\u003e nfs_root_data \u003d\u003e tcp_close \u003d\u003e lock sk_lock \u003d\u003e\n\t\t\ttcp_send_fin \u003d\u003e alloc_skb_fclone \u003d\u003e page reclaim\n\nDavid raised a concern that if the allocation fails in tcp_send_fin(), and it\u0027s\nGFP_ATOMIC, we are going to yield() (which sleeps) and loop endlessly waiting\nfor the allocation to succeed.\n\nBut fact is, the original GFP_KERNEL also sleeps. GFP_ATOMIC+yield() looks\nweird, but it is no worse the implicit sleep inside GFP_KERNEL. Both could\nloop endlessly under memory pressure.\n\nCC: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nCC: David S. Miller \u003cdavem@davemloft.net\u003e\nCC: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "df19a6267705456f463871ae2aabc44299909d2a",
      "tree": "59654abf9eb5dc58c9f8773dde5738b5bcb18312",
      "parents": [
        "5e9b2dbfcbc9b180a0064d8a473a4652ee99c9ad"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Aug 28 23:48:54 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 28 23:48:54 2009 -0700"
      },
      "message": "tcp: keepalive cleanups\n\nIntroduce keepalive_probes(tp) helper, and use it, like \nkeepalive_time_when(tp) and keepalive_intvl_when(tp)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a57de0b4336e48db2811a2030bb68dba8dd09d88",
      "tree": "a01c189d5fd55c69c9e2e842241e84b46728bc60",
      "parents": [
        "1b614fb9a00e97b1eab54d4e442d405229c059dd"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Wed Jul 08 12:09:13 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 09 17:06:57 2009 -0700"
      },
      "message": "net: adding memory barrier to the poll and receive callbacks\n\nAdding memory barrier after the poll_wait function, paired with\nreceive callbacks. Adding fuctions sock_poll_wait and sk_has_sleeper\nto wrap the memory barrier.\n\nWithout the memory barrier, following race can happen.\nThe race fires, when following code paths meet, and the tp-\u003ercv_nxt\nand __add_wait_queue updates stay in CPU caches.\n\nCPU1                         CPU2\n\nsys_select                   receive packet\n  ...                        ...\n  __add_wait_queue           update tp-\u003ercv_nxt\n  ...                        ...\n  tp-\u003ercv_nxt check          sock_def_readable\n  ...                        {\n  schedule                      ...\n                                if (sk-\u003esk_sleep \u0026\u0026 waitqueue_active(sk-\u003esk_sleep))\n                                        wake_up_interruptible(sk-\u003esk_sleep)\n                                ...\n                             }\n\nIf there was no cache the code would work ok, since the wait_queue and\nrcv_nxt are opposit to each other.\n\nMeaning that once tp-\u003ercv_nxt is updated by CPU2, the CPU1 either already\npassed the tp-\u003ercv_nxt check and sleeps, or will get the new value for\ntp-\u003ercv_nxt and will return with new data mask.\nIn both cases the process (CPU1) is being added to the wait queue, so the\nwaitqueue_active (CPU2) call cannot miss and will wake up CPU1.\n\nThe bad case is when the __add_wait_queue changes done by CPU1 stay in its\ncache, and so does the tp-\u003ercv_nxt update on CPU2 side.  The CPU1 will then\nendup calling schedule and sleep forever if there are no more data on the\nsocket.\n\nCalls to poll_wait in following modules were ommited:\n\tnet/bluetooth/af_bluetooth.c\n\tnet/irda/af_irda.c\n\tnet/irda/irnet/irnet_ppp.c\n\tnet/mac80211/rc80211_pid_debugfs.c\n\tnet/phonet/socket.c\n\tnet/rds/af_rds.c\n\tnet/rfkill/core.c\n\tnet/sunrpc/cache.c\n\tnet/sunrpc/rpc_pipe.c\n\tnet/tipc/socket.c\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6828b92bd21acd65113dfe0541f19f5df0d9668f",
      "tree": "be9b1009500891d7598a2c19a63fad9c0a28f17c",
      "parents": [
        "8e5b9dda99cc86bdbd822935fcc37c5808e271b3"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Jun 28 18:06:41 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 29 19:41:43 2009 -0700"
      },
      "message": "tcp: Do not tack on TSO data to non-TSO packet\n\nIf a socket starts out on a non-TSO route, and then switches to\na TSO route, then we will tack on data to the tail of the tx queue\neven if it started out life as non-TSO.  This is suboptimal because\nall of it will then be copied and checksummed unnecessarily.\n\nThis patch fixes this by ensuring that skb-\u003eip_summed is set to\nCHECKSUM_PARTIAL before appending extra data beyond the MSS.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "915219441d566f1da0caa0e262be49b666159e17",
      "tree": "91d40271d6601bc7ae10c4ab0cff2a47bb38d4e3",
      "parents": [
        "de1033428baf1940bbbbf9e66b073ee0a577f5e0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 21:35:47 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 21:35:47 2009 -0700"
      },
      "message": "tcp: Use SKB queue and list helpers instead of doing it by-hand.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a2a804cddfe65f18f903985e8a8d04c7c9eec354",
      "tree": "93c81d1a672b52ff8ec38fefa227ab894b37ec62",
      "parents": [
        "9aaa156cf9b7e9d9ed899f254283b91c4e3c36c8"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:34 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:05 2009 -0700"
      },
      "message": "tcp: Do not check flush when comparing options for GRO\n\nThere is no need to repeatedly check flush when comparing TCP\noptions for GRO as it will be false 99% of the time where it\nmatters.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a5b1cf288d4200506ab62fbb86cc81ace948a306",
      "tree": "c95339866f4d67220d111811a92e5c6b79de6ab4",
      "parents": [
        "7489594cb249aeb178287c9a43a9e4f366044259"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:28 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:01 2009 -0700"
      },
      "message": "gro: Avoid unnecessary comparison after skb_gro_header\n\nFor the overwhelming majority of cases, skb_gro_header\u0027s return\nvalue cannot be NULL.  Yet we must check it because of its current\nform.  This patch splits it up into multiple functions in order\nto avoid this.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "30a3ae30c775e2723f86ef70746ad3cb4404a4c9",
      "tree": "9a3365e4a2b611930f31674a0162126625adac10",
      "parents": [
        "4a9a2968a17eae42ef5dffca8b37534c864e30cc"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:26 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:00 2009 -0700"
      },
      "message": "tcp: Optimise len/mss comparison\n\nInstead of checking len \u003e mss || len \u003d\u003d 0, we can accomplish\nboth by checking (len - 1) \u003e mss using the unsigned wraparound.\nAt nearly a million times a second, this might just help.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4a9a2968a17eae42ef5dffca8b37534c864e30cc",
      "tree": "8fa6f421a04491546a25f18a30e2133d50d83c64",
      "parents": [
        "745898eaf0eb7a04a56dec1188d9148259510863"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:25 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:25:59 2009 -0700"
      },
      "message": "tcp: Remove unnecessary window comparisons for GRO\n\nThe window has already been checked as part of the flag word\nso there is no need to check it explicitly.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "745898eaf0eb7a04a56dec1188d9148259510863",
      "tree": "c4ad29d7bc6e8ceb5a96f68cee363f871b2bf17f",
      "parents": [
        "78d3fd0b7de844a6dad56e9620fc9d2271b32ab9"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:24 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:25:57 2009 -0700"
      },
      "message": "tcp: Optimise GRO port comparisons\n\nInstead of doing two 16-bit operations for the source/destination\nports, we can do one 32-bit operation to take care both.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "775273131810caa41dfc7f9e552ea5d8508caf40",
      "tree": "38ee8e4815d614c483be352524134c6f7fc163c3",
      "parents": [
        "705efc3b03cbee449e4d83b230423894152f7982"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sun May 10 20:32:34 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 18 15:05:40 2009 -0700"
      },
      "message": "tcp: fix MSG_PEEK race check\n\nCommit 518a09ef11 (tcp: Fix recvmsg MSG_PEEK influence of\nblocking behavior) lets the loop run longer than the race check\ndid previously expect, so we need to be more careful with this\ncheck and consider the work we have been doing.\n\nI tried my best to deal with urg hole madness too which happens\nhere:\n\tif (!sock_flag(sk, SOCK_URGINLINE)) {\n\t\t++*seq;\n\t\t...\nby using additional offset by one but I certainly have very\nlittle interest in testing that part.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nTested-by: Frans Pop \u003celendil@planet.nl\u003e\nTested-by: Ian Zimmermann \u003citz@buug.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a0a69a0106dab8d20596f97f6674bed3b394d1ee",
      "tree": "2477a32cab5f8afdb1c158f0b151048ee7afc594",
      "parents": [
        "9dd014eb9804f19d6230c3cbc10fa25f5416bda7"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Apr 17 02:34:38 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 17 02:34:38 2009 -0700"
      },
      "message": "gro: Fix use after free in tcp_gro_receive\n\nAfter calling skb_gro_receive skb-\u003elen can no longer be relied\non since if the skb was merged using frags, then its pages will\nhave been removed and the length reduced.\n\nThis caused tcp_gro_receive to prematurely end merging which\nresulted in suboptimal performance with ixgbe.\n\nThe fix is to store skb-\u003elen on the stack.\n\nReported-by: Mark Wagner \u003cmwagner@redhat.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "377f0a08e4cb56658d878d22c3aed4716e283c6b",
      "tree": "9b18ef210d92a04dc95bd694f680e52bbdf51223",
      "parents": [
        "eeb5f5c9b3c8bee5ab4794323c1d23d100a9db59"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Tue Mar 31 14:43:17 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 31 14:43:17 2009 -0700"
      },
      "message": "ipv4: remove unused parameter from tcp_recv_urg().\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "beedad923ad6237f03265fdf86eb8a1b50d14ae9",
      "tree": "14de83c72e68bcae559616f45da16dd990065cd0",
      "parents": [
        "9bdd8d40c8c59435664af6049dabe24b7779b203"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Wed Mar 18 18:50:09 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 18 18:50:09 2009 -0700"
      },
      "message": "tcp: remove parameter from tcp_recv_urg().\n\nThis patch removes an unused parameter (addr_len) from tcp_recv_urg()\nmethod in net/ipv4/tcp.c.\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "afece1c6587010cc81d1a43045c855774e8234a3",
      "tree": "00caa55dc0c2a86c44883154986885f0421d1251",
      "parents": [
        "2a3a041c4e2c1685e668b280c121a5a40a029a03"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sat Mar 14 14:23:07 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 15 20:09:55 2009 -0700"
      },
      "message": "tcp: make sure xmit goal size never becomes zero\n\nIt\u0027s not too likely to happen, would basically require crafted\npackets (must hit the max guard in tcp_bound_to_half_wnd()).\nIt seems that nothing that bad would happen as there\u0027s tcp_mems\nand congestion window that prevent runaway at some point from\nhurting all too much (I\u0027m not that sure what all those zero\nsized segments we would generate do though in write queue).\nPreventing it regardless is certainly the best way to go.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nCc: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2a3a041c4e2c1685e668b280c121a5a40a029a03",
      "tree": "dab327c0cbebec79968c3c2207d064a9152857f0",
      "parents": [
        "0c54b85f2828128274f319a1eb3ce7f604fe2a53"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sat Mar 14 22:45:16 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 15 20:09:55 2009 -0700"
      },
      "message": "tcp: cache result of earlier divides when mss-aligning things\n\nThe results is very unlikely change every so often so we\nhardly need to divide again after doing that once for a\nconnection. Yet, if divide still becomes necessary we\ndetect that and do the right thing and again settle for\nnon-divide state. Takes the u16 space which was previously\ntaken by the plain xmit_size_goal.\n\nThis should take care part of the tso vs non-tso difference\nwe found earlier.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c54b85f2828128274f319a1eb3ce7f604fe2a53",
      "tree": "8ff84b9aa9cd4775f244c2421e11adfbd206a7bf",
      "parents": [
        "72211e90501f954f586481c25521c3724cda3cc7"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sat Mar 14 14:23:05 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 15 20:09:54 2009 -0700"
      },
      "message": "tcp: simplify tcp_current_mss\n\nThere\u0027s very little need for most of the callsites to get\ntp-\u003exmit_goal_size updated. That will cost us divide as is,\nso slice the function in two. Also, the only users of the\ntp-\u003exmit_goal_size are directly behind tcp_current_mss(),\nso there\u0027s no need to store that variable into tcp_sock\nat all! The drop of xmit_goal_size currently leaves 16-bit\nhole and some reorganization would again be necessary to\nchange that (but I\u0027m aiming to fill that hole with u16\nxmit_goal_size_segs to cache the results of the remaining\ndivide to get that tso on regression).\n\nBring xmit_goal_size parts into tcp.c\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nCc: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0d6a775e27d975e5f9ea8e2911216d84face50ca",
      "tree": "a19fc1938325c517cab08ef7706115e784c72bb5",
      "parents": [
        "cabeccbd172cc305f4383f5a4808ae254745275f"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sat Feb 28 04:44:41 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 02 03:00:16 2009 -0800"
      },
      "message": "tcp: in sendmsg/pages open code the real goto target\n\ncopied was assigned zero right before the goto, so if (copied)\ncannot ever be true.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aa6320d336971171df1d13c1c284facf10804881",
      "tree": "3e659464dd24b9634897d631931f334ab1c22179",
      "parents": [
        "a5ad24be728d4352b71a81fba471aa41eb71f83a"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Feb 08 18:00:40 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 08 20:22:19 2009 -0800"
      },
      "message": "gro: Optimise TCP packet reception\n\ngro: Optimise TCP packet reception\n\nAs this function can be called more than half a million times for\n10GbE, it\u0027s important to optimise it as much as we can.\n\nThis patch uses bit ops to logical ops, as well as open coding\nmemcmp to exploit alignment properties.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "05bee4737774881e027bfd9a8b5c40a7d68f6325",
      "tree": "5fd32eb8fe345d2d30e85910beac241a4439e8cd",
      "parents": [
        "80595d59ba9917227856e663da249c2276a8628d",
        "905db44087855e3c1709f538ecdc22fd149cadd8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jan 30 14:31:07 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jan 30 14:31:07 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/e1000/e1000_main.c\n"
    },
    {
      "commit": "86911732d3996a9da07914b280621450111bb6da",
      "tree": "e787240d5ba869ddf4d0adfc3f9c69e0372e96ef",
      "parents": [
        "5d0d9be8ef456afc6c3fb5f8aad06ef19b704b05"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jan 29 14:19:50 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 29 16:33:03 2009 -0800"
      },
      "message": "gro: Avoid copying headers of unmerged packets\n\nUnfortunately simplicity isn\u0027t always the best.  The fraginfo\ninterface turned out to be suboptimal.  The problem was quite\nobvious.  For every packet, we have to copy the headers from\nthe frags structure into skb-\u003ehead, even though for 99% of the\npackets this part is immediately thrown away after the merge.\n\nLRO didn\u0027t have this problem because it directly read the headers\nfrom the frags structure.\n\nThis patch attempts to address this by creating an interface\nthat allows GRO to access the headers in the first frag without\nhaving to copy it.  Because all drivers that use frags place the\nheaders in the first frag this optimisation should be enough.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9fa5fdf291c9b58b1cb8b4bb2a0ee57efa21d635",
      "tree": "cfa28bcf674ef224a5ab66b3b8bc4bc1091ccb11",
      "parents": [
        "a7a41acf99d9150b424839b0d7b4f5ad9d211e2d"
      ],
      "author": {
        "name": "Dimitris Michailidis",
        "email": "dm@chelsio.com",
        "time": "Mon Jan 26 22:15:31 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 26 22:15:31 2009 -0800"
      },
      "message": "tcp: Fix length tcp_splice_data_recv passes to skb_splice_bits.\n\ntcp_splice_data_recv has two lengths to consider: the len parameter it\ngets from tcp_read_sock, which specifies the amount of data in the skb,\nand rd_desc-\u003ecount, which is the amount of data the splice caller still\nwants.  Currently it passes just the latter to skb_splice_bits, which then\nsplices min(rd_desc-\u003ecount, skb-\u003elen - offset) bytes.\n\nMost of the time this is fine, except when the skb contains urgent data.\nIn that case len goes only up to the urgent byte and is less than\nskb-\u003elen - offset.  By ignoring len tcp_splice_data_recv may a) splice\ndata tcp_read_sock told it not to, b) return to tcp_read_sock a value \u003e len.\n\nNow, tcp_read_sock doesn\u0027t handle used \u003e len and leaves the socket in a\nbad state (both sk_receive_queue and copied_seq are bad at that point)\nresulting in duplicated data and corruption.\n\nFix by passing min(rd_desc-\u003ecount, len) to skb_splice_bits.\n\nSigned-off-by: Dimitris Michailidis \u003cdm@chelsio.com\u003e\nAcked-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4e704ee3c2cd38748ca59d835435d6a7e7f6f613",
      "tree": "24d4f83bb55748fa5ae79f302b641663fa0488ba",
      "parents": [
        "f557206800801410c30e53ce7a27219b2c4cf0ba"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed Jan 14 20:41:12 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 14 20:41:12 2009 -0800"
      },
      "message": "gso: Ensure that the packet is long enough\n\nWhen we get a GSO packet from an untrusted source, we need to\nensure that it is sufficiently long so that we don\u0027t end up\ncrashing.\n\nBased on discovery and patch by Ian Campbell.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nTested-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "33966dd0e2f68f26943cd9ee93ec6abbc6547a8e",
      "tree": "75502831bb2868e016ed4f55d3ea3238b50f609b",
      "parents": [
        "9a0811ca4e9cf7be320ae8a5a43a259feb70074f"
      ],
      "author": {
        "name": "Willy Tarreau",
        "email": "w@1wt.eu",
        "time": "Tue Jan 13 16:04:36 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 13 16:04:36 2009 -0800"
      },
      "message": "tcp: splice as many packets as possible at once\n\nAs spotted by Willy Tarreau, current splice() from tcp socket to pipe is not\noptimal. It processes at most one segment per call.\nThis results in low performance and very high overhead due to syscall rate\nwhen splicing from interfaces which do not support LRO.\n\nWilly provided a patch inside tcp_splice_read(), but a better fix\nis to let tcp_read_sock() process as many segments as possible, so\nthat tcp_rcv_space_adjust() and tcp_cleanup_rbuf() are called less\noften.\n\nWith this change, splice() behaves like tcp_recvmsg(), being able\nto consume many skbs in one system call. With typical 1460 bytes\nof payload per frame, that means splice(SPLICE_F_NONBLOCK) can return\n16*1460 \u003d 23360 bytes.\n\nSigned-off-by: Willy Tarreau \u003cw@1wt.eu\u003e\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d9e8a3a5b8298a3c814ed37ac5756e6f67b6be41",
      "tree": "ffa1cf8b367b3f32155f6336d7b86b781a368019",
      "parents": [
        "2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f",
        "b9bdcbba010c2e49c8f837ea7a49fe006b636f41"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 11:52:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 11:52:14 2009 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (22 commits)\n  ioat: fix self test for multi-channel case\n  dmaengine: bump initcall level to arch_initcall\n  dmaengine: advertise all channels on a device to dma_filter_fn\n  dmaengine: use idr for registering dma device numbers\n  dmaengine: add a release for dma class devices and dependent infrastructure\n  ioat: do not perform removal actions at shutdown\n  iop-adma: enable module removal\n  iop-adma: kill debug BUG_ON\n  iop-adma: let devm do its job, don\u0027t duplicate free\n  dmaengine: kill enum dma_state_client\n  dmaengine: remove \u0027bigref\u0027 infrastructure\n  dmaengine: kill struct dma_client and supporting infrastructure\n  dmaengine: replace dma_async_client_register with dmaengine_get\n  atmel-mci: convert to dma_request_channel and down-level dma_slave\n  dmatest: convert to dma_request_channel\n  dmaengine: introduce dma_request_channel and private channels\n  net_dma: convert to dma_find_channel\n  dmaengine: provide a common \u0027issue_pending_all\u0027 implementation\n  dmaengine: centralize channel allocation, introduce dma_find_channel\n  dmaengine: up-level reference counting to the module level\n  ...\n"
    },
    {
      "commit": "684f2176015b313ab59cecf574117969cf638f28",
      "tree": "e87c2285d35f7f308c9046940d4efadb9b6ad11a",
      "parents": [
        "787e9208360117835101f513f7db593dc2525cf8"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jan 08 10:41:23 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 08 10:41:23 2009 -0800"
      },
      "message": "tcp6: Add GRO support\n\nThis patch adds GRO support for TCP over IPv6.  The code is exactly\nthe same as the IPv4 version except for the pseudo-header checksum\ncomputation.\n\nNote that I\u0027ve removed the unused tcphdr argument from tcp_v6_check\nrather than invent a bogus value for GRO.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f67b45999205164958de4ec0658d51fa4bee066d",
      "tree": "2fc3c2e833fdfea2f029dca05d5401ba9ae63229",
      "parents": [
        "2ba05622b8b143b0c95968ba59bddfbd6d2f2559"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 06 11:38:15 2009 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 06 11:38:15 2009 -0700"
      },
      "message": "net_dma: convert to dma_find_channel\n\nUse the general-purpose channel allocation provided by dmaengine.\n\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n\n\n"
    },
    {
      "commit": "6f49a57aa5a0c6d4e4e27c85f7af6c83325a12d1",
      "tree": "afba24357d1f4ff69ccb2b39a19542546590a50b",
      "parents": [
        "07f2211e4fbce6990722d78c4f04225da9c0e9cf"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 06 11:38:14 2009 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 06 11:38:14 2009 -0700"
      },
      "message": "dmaengine: up-level reference counting to the module level\n\nSimply, if a client wants any dmaengine channel then prevent all dmaengine\nmodules from being removed.  Once the clients are done re-enable module\nremoval.\n\nWhy?, beyond reducing complication:\n1/ Tracking reference counts per-transaction in an efficient manner, as\n   is currently done, requires a complicated scheme to avoid cache-line\n   bouncing effects.\n2/ Per-transaction ref-counting gives the false impression that a\n   dma-driver can be gracefully removed ahead of its user (net, md, or\n   dma-slave)\n3/ None of the in-tree dma-drivers talk to hot pluggable hardware, but\n   if such an engine were built one day we still would not need to notify\n   clients of remove events.  The driver can simply return NULL to a\n   -\u003eprep() request, something that is much easier for a client to handle.\n\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Maciej Sosnowski \u003cmaciej.sosnowski@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n\n\n\n"
    },
    {
      "commit": "7945cc6464a4db0caf6dfacdfe05806051c4cb7b",
      "tree": "8bcd5f9cb276229f1b25844249a4243b6f95f656",
      "parents": [
        "4f7d54f59bc470f0aaa932f747a95232d7ebf8b1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 05 00:59:00 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 05 00:59:00 2009 -0800"
      },
      "message": "tcp: Kill extraneous SPLICE_F_NONBLOCK checks.\n\nIn splice TCP receive, the SPLICE_F_NONBLOCK flag is used\nto compute the \"timeo\" value.  So checking it again inside\nof the main receive loop to trigger -EAGAIN processing is\nentirely unnecessary.\n\nNoticed by Jarek P. and Lennert Buytenhek.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4f7d54f59bc470f0aaa932f747a95232d7ebf8b1",
      "tree": "9d391a6c4d9fdb1c8534127702b5543b0b5ab089",
      "parents": [
        "129fa44785a399248ae2466b6cb5c655e96668f7"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@marvell.com",
        "time": "Mon Jan 05 00:00:12 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 05 00:00:12 2009 -0800"
      },
      "message": "tcp: don\u0027t mask EOF and socket errors on nonblocking splice receive\n\nCurrently, setting SPLICE_F_NONBLOCK on splice from a TCP socket\nresults in masking of EOF (RDHUP) and error conditions on the socket\nby an -EAGAIN return.  Move the NONBLOCK check in tcp_splice_read()\nto be after the EOF and error checks to fix this.\n\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@marvell.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b530256d2e0f1a75fab31f9821129fff1bb49faa",
      "tree": "e3e615d405921fc157169180d53c91d09b9a7186",
      "parents": [
        "cfc3a44c3c32abe48898398d9a92e8524c976803"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Jan 04 16:13:19 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 04 16:13:19 2009 -0800"
      },
      "message": "gro: Use gso_size to store MSS\n\nIn order to allow GRO packets without frag_list at all, we need to\nstore the MSS in the packet itself.  The obvious place is gso_size.\nThe only thing to watch out for is if the packet ends up not being\nGRO then we need to clear gso_size before pushing the packet into\nthe stack.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eb4dea5853046727bfbb579f0c9a8cae7369f7c6",
      "tree": "79e18d6284494ab63a890885b0eecce9431a9597",
      "parents": [
        "0f23174aa8c1aa7a2a6050a72a60d290ef9ee578"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Dec 29 23:04:08 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 29 23:04:08 2008 -0800"
      },
      "message": "net: Fix percpu counters deadlock\n\nWhen we converted the protocol atomic counters such as the orphan\ncount and the total socket count deadlocks were introduced due to\nthe mismatch in BH status of the spots that used the percpu counter\noperations.\n\nBased on the diagnosis and patch by Peter Zijlstra, this patch\nfixes these issues by disabling BH where we may be in process\ncontext.\n\nReported-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nTested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bf296b125b21b8d558ceb6ec30bb4eba2730cd6b",
      "tree": "5a06714c4001ccf1b217b888121f30d57fceea6d",
      "parents": [
        "71d93b39e52e92aea35f1058d957cf12250d0b75"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Dec 15 23:43:36 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 15 23:43:36 2008 -0800"
      },
      "message": "tcp: Add GRO support\n\nThis patch adds the TCP-specific portion of GRO.  The criterion for\nmerging is extremely strict (the TCP header must match exactly apart\nfrom the checksum) so as to allow refragmentation.  Otherwise this\nis pretty much identical to LRO, except that we support the merging\nof ECN 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": "dd24c00191d5e4a1ae896aafe33c6b8095ab4bd1",
      "tree": "e955c09e0b288e50c706b6ee409229d5a930c80c",
      "parents": [
        "1748376b6626acf59c24e9592ac67b3fe2a0e026"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Nov 25 21:17:14 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 21:17:14 2008 -0800"
      },
      "message": "net: Use a percpu_counter for orphan_count\n\nInstead of using one atomic_t per protocol, use a percpu_counter\nfor \"orphan_count\", to reduce cache line contention on\nheavy duty network servers. \n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1748376b6626acf59c24e9592ac67b3fe2a0e026",
      "tree": "65a28205daf1ca92e31389440764fc407365014e",
      "parents": [
        "c1b56878fb68e9c14070939ea4537ad4db79ffae"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Nov 25 21:16:35 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 21:16:35 2008 -0800"
      },
      "message": "net: Use a percpu_counter for sockets_allocated\n\nInstead of using one atomic_t per protocol, use a percpu_counter\nfor \"sockets_allocated\", to reduce cache line contention on\nheavy duty network servers. \n\nNote : We revert commit (248969ae31e1b3276fc4399d67ce29a5d81e6fd9\nnet: af_unix can make unix_nr_socks visbile in /proc),\nsince it is not anymore used after sock_prot_inuse_add() addition\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3ab5aee7fe840b5b1b35a8d1ac11c3de5281e611",
      "tree": "468296b7be813643248d4ca67497d6ddb6934fc6",
      "parents": [
        "88ab1932eac721c6e7336708558fa5ed02c85c80"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Nov 16 19:40:17 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 16 19:40:17 2008 -0800"
      },
      "message": "net: Convert TCP \u0026 DCCP hash tables to use RCU / hlist_nulls\n\nRCU was added to UDP lookups, using a fast infrastructure :\n- sockets kmem_cache use SLAB_DESTROY_BY_RCU and dont pay the\n  price of call_rcu() at freeing time.\n- hlist_nulls permits to use few memory barriers.\n\nThis patch uses same infrastructure for TCP/DCCP established\nand timewait sockets.\n\nThanks to SLAB_DESTROY_BY_RCU, no slowdown for applications\nusing short lived TCP connections. A followup patch, converting\nrwlocks to spinlocks will even speedup this case.\n\n__inet_lookup_established() is pretty fast now we dont have to\ndirty a contended cache line (read_lock/read_unlock)\n\nOnly established and timewait hashtable are converted to RCU\n(bind table and listen table are still using traditional locking)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9eeda9abd1faf489f3df9a1f557975f4c8650363",
      "tree": "3e0a58e25b776cfbee193195460324dccb1886c7",
      "parents": [
        "61c9eaf90081cbe6dc4f389e0056bff76eca19ec",
        "4bab0ea1d42dd1927af9df6fbf0003fc00617c50"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 06 22:43:03 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 06 22:43:03 2008 -0800"
      },
      "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/ath5k/base.c\n\tnet/8021q/vlan_core.c\n"
    },
    {
      "commit": "518a09ef11f8454f4676125d47c3e775b300c6a5",
      "tree": "a22f9f9de58e91d3287bcd21277e9378de49e18f",
      "parents": [
        "efb9a8c28ca0edd9e2572117105ebad9bbc0c368"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 05 03:36:01 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 05 03:36:01 2008 -0800"
      },
      "message": "tcp: Fix recvmsg MSG_PEEK influence of blocking behavior.\n\nVito Caputo noticed that tcp_recvmsg() returns immediately from\npartial reads when MSG_PEEK is used.  In particular, this means that\nSO_RCVLOWAT is not respected.\n\nSimply remove the test.  And this matches the behavior of several\nother systems, including BSD.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5a5f3a8db9d70c90e9d55b46e02b2d8deb1c2c2e",
      "tree": "051b35d2766bf5285a695b82d527cc3c2d77f435",
      "parents": [
        "d9319100c1ad7d0ed4045ded767684ad25670436"
      ],
      "author": {
        "name": "Jianjun Kong",
        "email": "jianjun@zeuux.org",
        "time": "Mon Nov 03 00:24:34 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 03 00:24:34 2008 -0800"
      },
      "message": "net: clean up net/ipv4/ipip.c raw.c tcp.c tcp_minisocks.c tcp_yeah.c xfrm4_policy.c\n\nSigned-off-by: Jianjun Kong \u003cjianjun@zeuux.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "33f5f57eeb0c6386fdd85f9c690dc8d700ba7928",
      "tree": "4bd3421bfa3088018f8e355e6f47e43599748802",
      "parents": [
        "654bed16cf86a9ef94495d9e6131b7ff7840a3dd"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Tue Oct 07 14:43:06 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 07 14:43:06 2008 -0700"
      },
      "message": "tcp: kill pointless urg_mode\n\nIt all started from me noticing that this urgent check in\ntcp_clean_rtx_queue is unnecessarily inside the loop. Then\nI took a longer look to it and found out that the users of\nurg_mode can trivially do without, well almost, there was\none gotcha.\n\nBonus: those funny people who use urg with \u003e\u003d 2^31 write_seq -\nsnd_una could now rejoice too (that\u0027s the only purpose for the\nbetween being there, otherwise a simple compare would have done\nthe thing). Not that I assume that the rest of the tcp code\nhappily lives with such mind-boggling numbers :-). Alas, it\nturned out to be impossible to set wmem to such numbers anyway,\nyes I really tried a big sendfile after setting some wmem but\nnothing happened :-). ...Tcp_wmem is int and so is sk_sndbuf...\nSo I hacked a bit variable to long and found out that it seems\nto 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": "c57943a1c96214ee68f3890bb6772841ffbfd606",
      "tree": "bfe79b29240d442c8ea104a89c2e827032b2824e",
      "parents": [
        "b339a47c370ec669f789c5989f54eec1d78574bb"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 07 14:18:42 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 07 14:18:42 2008 -0700"
      },
      "message": "net: wrap sk-\u003esk_backlog_rcv()\n\nWrap calling sk-\u003esk_backlog_rcv() in a function. This will allow extending the\ngeneric sk_backlog_rcv behaviour.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c7004482e8dcb7c3c72666395cfa98a216a4fb70",
      "tree": "fe771839cf85fc5b455d53025eb97f20779e2eda",
      "parents": [
        "6252352d16f7b45a0fd42224f7e70e0288dc4480"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 06 10:43:54 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 06 10:43:54 2008 -0700"
      },
      "message": "tcp: Respect SO_RCVLOWAT in tcp_poll().\n\nBased upon a report by Vito Caputo.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "9c55e01c0cc835818475a6ce8c4d684df9949ac8"
}
