)]}'
{
  "log": [
    {
      "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": "71320afcdb33b3f0b754ba1fac6a8c77aa469041",
      "tree": "cb613b91b48e46c282ee3ee9feeca29f7cf84178",
      "parents": [
        "d61ba9fd55b52a10b8e0ffd39bbc33587d3bfc8d"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jan 12 00:06:07 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 12 21:18:35 2009 -0800"
      },
      "message": "netfilter 06/09: nf_conntrack: fix ICMP/ICMPv6 timeout sysctls on big-endian\n\nAn old bug crept back into the ICMP/ICMPv6 conntrack protocols: the timeout\nvalues are defined as unsigned longs, the sysctl\u0027s maxsize is set to\nsizeof(unsigned int). Use unsigned int for the timeout values as in the\nother conntrack protocols.\n\nReported-by: Jean-Mickael Guerin \u003cjean-mickael.guerin@6wind.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "88843104a19d5896bf67ab6bd685e976240dd04a",
      "tree": "2a72e316b69d4c009ce55a9c216ac65218bc7554",
      "parents": [
        "985ebdb5ed54151eba734aa1b307460e8e4267ba"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jan 12 00:06:00 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 12 21:18:33 2009 -0800"
      },
      "message": "netfilter 01/09: remove \"happy cracking\" message\n\nDon\u0027t spam logs for locally generated short packets. these can only\nbe generated by root.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\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": "7f46b1343f723f98634a5dcee47856b2000079ed",
      "tree": "ed22b6298c8dd2f687890a0d79abcd1d273b5f81",
      "parents": [
        "b8c31da64165b8566fc6e1c9c826f76e7b98ff02",
        "9e42d0cf5020aaf217433cad1a224745241d212a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 08 11:05:59 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 08 11:05:59 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6\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": "ac8cc0fa5395fe2278e305a4cbed48e90d88d878",
      "tree": "515f577bfddd054ee4373228be7c974dfb8133af",
      "parents": [
        "238c6d54830c624f34ac9cf123ac04aebfca5013",
        "3699c53c485bf0168e6500d0ed18bf931584dd7c"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Jan 07 09:58:22 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Jan 07 09:58:22 2009 +1100"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\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": "6c2e8ac0953fccdd24dc6c4b9e08e8f1cd68cf07",
      "tree": "c52e242ec5e5c2d131af2d9dbb038f78f724a74c",
      "parents": [
        "6a94cb73064c952255336cc57731904174b2c58f"
      ],
      "author": {
        "name": "Paul Moore",
        "email": "paul.moore@hp.com",
        "time": "Wed Dec 31 12:54:11 2008 -0500"
      },
      "committer": {
        "name": "Paul Moore",
        "email": "paul.moore@hp.com",
        "time": "Wed Dec 31 12:54:11 2008 -0500"
      },
      "message": "netlabel: Update kernel configuration API\n\nUpdate the NetLabel kernel API to expose the new features added in kernel\nreleases 2.6.25 and 2.6.28: the static/fallback label functionality and network\naddress based selectors.\n\nSigned-off-by: Paul Moore \u003cpaul.moore@hp.com\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": "0f23174aa8c1aa7a2a6050a72a60d290ef9ee578",
      "tree": "530ed36b528ff6f08034788cef32e0e0756d3bcc",
      "parents": [
        "f201a8a4511a4c9953189924df3c880207194b41"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Dec 29 12:23:42 2008 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 29 22:44:47 2008 -0800"
      },
      "message": "cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits: net\n\nIn future all cpumask ops will only be valid (in general) for bit\nnumbers \u003c nr_cpu_ids.  So use that instead of NR_CPUS in iterators\nand other comparisons.\n\nThis is always safe: no cpu number can be \u003e\u003d nr_cpu_ids, and\nnr_cpu_ids is initialized to NR_CPUS at boot.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0191b625ca5a46206d2fb862bb08f36f2fcb3b31",
      "tree": "454d1842b1833d976da62abcbd5c47521ebe9bd7",
      "parents": [
        "54a696bd07c14d3b1192d03ce7269bc59b45209a",
        "eb56092fc168bf5af199d47af50c0d84a96db898"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 28 12:49:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 28 12:49:40 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1429 commits)\n  net: Allow dependancies of FDDI \u0026 Tokenring to be modular.\n  igb: Fix build warning when DCA is disabled.\n  net: Fix warning fallout from recent NAPI interface changes.\n  gro: Fix potential use after free\n  sfc: If AN is enabled, always read speed/duplex from the AN advertising bits\n  sfc: When disabling the NIC, close the device rather than unregistering it\n  sfc: SFT9001: Add cable diagnostics\n  sfc: Add support for multiple PHY self-tests\n  sfc: Merge top-level functions for self-tests\n  sfc: Clean up PHY mode management in loopback self-test\n  sfc: Fix unreliable link detection in some loopback modes\n  sfc: Generate unique names for per-NIC workqueues\n  802.3ad: use standard ethhdr instead of ad_header\n  802.3ad: generalize out mac address initializer\n  802.3ad: initialize ports LACPDU from const initializer\n  802.3ad: remove typedef around ad_system\n  802.3ad: turn ports is_individual into a bool\n  802.3ad: turn ports is_enabled into a bool\n  802.3ad: make ntt bool\n  ixgbe: Fix set_ringparam in ixgbe to use the same memory pools.\n  ...\n\nFixed trivial IPv4/6 address printing conflicts in fs/cifs/connect.c due\nto the conversion to %pI (in this networking merge) and the addition of\ndoing IPv6 addresses (from the earlier merge of CIFS).\n"
    },
    {
      "commit": "f2712fd0b4097e8385bdb75c0ebd285a057fe299",
      "tree": "f2e1a1b4d5e7f9e9103c714893b0fd792e20c54b",
      "parents": [
        "fdb614c28487df41f7bf2c98e85f29f31885561e"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Dec 26 01:31:18 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 26 01:31:18 2008 -0800"
      },
      "message": "ipsec: Remove useless ret variable\n\nThis patch removes a useless ret variable from the IPv4 ESP/UDP\ndecapsulation code.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "64ff3b938ec6782e6585a83d5459b98b0c3f6eb8",
      "tree": "aa53a121fd7edb8ba5b3fede8ff1990b44265d56",
      "parents": [
        "8510b937ae1e23583abdeb828cad5c518295c61d"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Dec 25 17:12:58 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 25 17:12:58 2008 -0800"
      },
      "message": "tcp: Always set urgent pointer if it\u0027s beyond snd_nxt\n\nOur TCP stack does not set the urgent flag if the urgent pointer\ndoes not fit in 16 bits, i.e., if it is more than 64K from the\nsequence number of a packet.\n\nThis behaviour is different from the BSDs, and clearly contradicts\nthe purpose of urgent mode, which is to send the notification\n(though not necessarily the associated data) as soon as possible.\nOur current behaviour may in fact delay the urgent notification\nindefinitely if the receiver window does not open up.\n\nSimply matching BSD however may break legacy applications which\nincorrectly rely on the out-of-band delivery of urgent data, and\nconversely the in-band delivery of non-urgent data.\n\nAlexey Kuznetsov suggested a safe solution of following BSD only\nif the urgent pointer itself has not yet been transmitted.  This\nway we guarantee that when the remote end sees the packet with\nnon-urgent data marked as urgent due to wrap-around we would have\nadvanced the urgent pointer beyond, either to the actual urgent\ndata or to an as-yet untransmitted packet.\n\nThe only potential downside is that applications on the remote\nend may see multiple SIGURG notifications.  However, this would\noccur anyway with other TCP stacks.  More importantly, the outcome\nof such a duplicate notification is likely to be harmless since\nthe signal itself does not carry any information other than the\nfact that we\u0027re in urgent mode.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7091e728c570157496e52296d2dbe816a6916836",
      "tree": "9b393f1939f2632495ae083392b2172da2ed5000",
      "parents": [
        "b4ee07df3d8121060200dbe1c6686a4e0682bee2"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Dec 25 16:42:51 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 25 16:42:51 2008 -0800"
      },
      "message": "netns: igmp: make /proc/net/{igmp,mcfilter} per netns\n\nThis patch makes the followinf proc entries per-netns:\n/proc/net/igmp\n/proc/net/mcfilter\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nAcked-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b4ee07df3d8121060200dbe1c6686a4e0682bee2",
      "tree": "f318811dae2fcf9e920f097be0a40487aca12173",
      "parents": [
        "cb5b04fe14394a93eb9a3523f5af9f77480a5a04"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Dec 25 16:42:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 25 16:42:23 2008 -0800"
      },
      "message": "netns: igmp: allow IPPROTO_IGMP sockets in netns\n\nLooks like everything is already ready.\n\nRequired for ebtables(8) for one thing.\n\nAlso, required for ipmr per-netns (coming soon). (Benjamin)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cbacc2c7f066a1e01b33b0e27ae5efbf534bc2db",
      "tree": "90d1093131d2a3543a8b3b1f3364e7c6f4081a93",
      "parents": [
        "4a6908a3a050aacc9c3a2f36b276b46c0629ad91",
        "74192246910ff4fb95309ba1a683215644beeb62"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 25 11:40:09 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 25 11:40:09 2008 +1100"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "6086ebca13ddc9cfaaa25248ba8ebef35103fb74",
      "tree": "95024e17835a02286120cd7c630d1e5afea51463",
      "parents": [
        "e98def1f71fa0a6a37e12a56eb52ce5ed9e2e800"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Thu Dec 18 19:54:22 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 18 22:27:42 2008 -0800"
      },
      "message": "tcp: Stop scaring users with \"treason uncloaked!\"\n\nThe original message was unhelpful and extremely alarming to our poor\nusers, despite its charm. Make it less frightening.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b1879204dda06a92a4ff55b681c99ee185180003",
      "tree": "3045f326dcff6bb1ca3768803bfc62e98e69c6dc",
      "parents": [
        "c40cf519f0c0f0cb0579d853949ef517a8bb494d"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Tue Dec 16 01:15:11 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 16 01:15:11 2008 -0800"
      },
      "message": "ipmr: merge common code\n\nAlso removes redundant skb-\u003elen \u003c x check which can\u0027t\nbe true once pskb_may_pull(skb, x) succeeded.\n\n$ diff-funcs pim_rcv ipmr.c ipmr.c pim_rcv_v1\n  --- ipmr.c:pim_rcv()\n  +++ ipmr.c:pim_rcv_v1()\n@@ -1,22 +1,27 @@\n-static int pim_rcv(struct sk_buff * skb)\n+int pim_rcv_v1(struct sk_buff * skb)\n {\n-\tstruct pimreghdr *pim;\n+\tstruct igmphdr *pim;\n \tstruct iphdr   *encap;\n \tstruct net_device  *reg_dev \u003d NULL;\n\n \tif (!pskb_may_pull(skb, sizeof(*pim) + sizeof(*encap)))\n \t\tgoto drop;\n\n-\tpim \u003d (struct pimreghdr *)skb_transport_header(skb);\n-\tif (pim-\u003etype !\u003d ((PIM_VERSION\u003c\u003c4)|(PIM_REGISTER)) ||\n-\t    (pim-\u003eflags\u0026PIM_NULL_REGISTER) ||\n-\t    (ip_compute_csum((void *)pim, sizeof(*pim)) !\u003d 0 \u0026\u0026\n-\t     csum_fold(skb_checksum(skb, 0, skb-\u003elen, 0))))\n+\tpim \u003d igmp_hdr(skb);\n+\n+\tif (!mroute_do_pim ||\n+\t    skb-\u003elen \u003c sizeof(*pim) + sizeof(*encap) ||\n+\t    pim-\u003egroup !\u003d PIM_V1_VERSION || pim-\u003ecode !\u003d PIM_V1_REGISTER)\n \t\tgoto drop;\n\n-\t/* check if the inner packet is destined to mcast group */\n \tencap \u003d (struct iphdr *)(skb_transport_header(skb) +\n-\t\t\t\t sizeof(struct pimreghdr));\n+\t\t\t\t sizeof(struct igmphdr));\n+\t/*\n+\t   Check that:\n+\t   a. packet is really destinted to a multicast group\n+\t   b. packet is not a NULL-REGISTER\n+\t   c. packet is not truncated\n+\t */\n \tif (!ipv4_is_multicast(encap-\u003edaddr) ||\n \t    encap-\u003etot_len \u003d\u003d 0 ||\n \t    ntohs(encap-\u003etot_len) + sizeof(*pim) \u003e skb-\u003elen)\n@@ -40,9 +45,9 @@\n \tskb-\u003eip_summed \u003d 0;\n \tskb-\u003epkt_type \u003d PACKET_HOST;\n \tdst_release(skb-\u003edst);\n+\tskb-\u003edst \u003d NULL;\n \treg_dev-\u003estats.rx_bytes +\u003d skb-\u003elen;\n \treg_dev-\u003estats.rx_packets++;\n-\tskb-\u003edst \u003d NULL;\n \tnf_reset(skb);\n \tnetif_rx(skb);\n \tdev_put(reg_dev);\n\n$ codiff net/ipv4/ipmr.o.old net/ipv4/ipmr.o.new\n\nnet/ipv4/ipmr.c:\n  pim_rcv_v1 | -283\n  pim_rcv    | -284\n 2 functions changed, 567 bytes removed\n\nnet/ipv4/ipmr.c:\n  __pim_rcv | +307\n 1 function changed, 307 bytes added\n\nnet/ipv4/ipmr.o.new:\n 3 functions changed, 307 bytes added, 567 bytes removed, diff: -260\n\n(Tested on x86_64).\n\nIt seems that pimlen arg could be left out as well and\neq-sizedness of structs trapped with BUILD_BUG_ON but\nI don\u0027t think that\u0027s more than a cosmetic flaw since there\naren\u0027t that many args anyway.\n\nCompile tested.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\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": "73cc19f1556b95976934de236fd9043f7208844f",
      "tree": "4ebe390a9b328bba32d149b9f83e998836806f5d",
      "parents": [
        "d565b0a1a9b6ee7dff46e1f68b26b526ac11ae50"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Dec 15 23:41:09 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 15 23:41:09 2008 -0800"
      },
      "message": "ipv4: Add GRO infrastructure\n\nThis patch adds GRO support for IPv4.\n\nThe criteria for merging is more stringent than LRO, in particular,\nwe require all fields in the IP header to be identical except for\nthe length, ID and checksum.  In addition, the ID must form an\narithmetic sequence with a difference of one.\n\nThe ID requirement might seem overly strict, however, most hardware\nTSO solutions already obey this rule.  Linux itself also obeys this\nwhether GSO is in use or not.\n\nIn future we could relax this rule by storing the IDs (or rather\nmaking sure that we don\u0027t drop them when pulling the aggregate\nskb\u0027s tail).\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eb14f019597cd86c21a6c601d7e900f40030c2e7",
      "tree": "36fb2f36a1747f98988f87215db1eef3a71d45eb",
      "parents": [
        "9a4a84294b0d60b8c287131478f743ba2bc68949",
        "a3dd15444baa9c7522c8457ab564c41219dfb44c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 15 20:03:50 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 15 20:03:50 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/e1000e/ich8lan.c\n"
    },
    {
      "commit": "be70ed189bc0d16e1609a1c6c04ec9418b4dd11a",
      "tree": "1214e61fe28526db985a6c4ae04bc257388415af",
      "parents": [
        "ec8f2375d7584969501918651241f91eca2a6ad3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 15 00:19:14 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 15 00:19:14 2008 -0800"
      },
      "message": "netfilter: update rwlock initialization for nat_table\n    \nThe commit e099a173573ce1ba171092aee7bb3c72ea686e59\n(netfilter: netns nat: per-netns NAT table) renamed the\nnat_table from __nat_table to nat_table without updating the\n__RW_LOCK_UNLOCKED(__nat_table.lock).\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\n"
    },
    {
      "commit": "857a6e0a4d8db0bbee685ccc97c6bd7987e7aede",
      "tree": "718f01a26676fb3804ae3cf4fcc1bdab25c74f7e",
      "parents": [
        "012b215ceb55aa38826f091cecfd373cc9bbb05b"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sun Dec 14 23:13:08 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 14 23:13:08 2008 -0800"
      },
      "message": "icsk: join error paths using goto\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d3a564da34e5844aca4f991b73f8ca512246b23",
      "tree": "9cff1e4a8c5feb4c76a360e782c3598355d78492",
      "parents": [
        "8c83f80b2d335176f72d8729fe1dfe19c5812cb1"
      ],
      "author": {
        "name": "Doug Leith",
        "email": "doug.leith@nuim.ie",
        "time": "Tue Dec 09 00:13:04 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 09 00:13:04 2008 -0800"
      },
      "message": "tcp: tcp_vegas cong avoid fix \n\nThis patch addresses a book-keeping issue in tcp_vegas.c.  At present\ntcp_vegas does separate book-keeping of cwnd based on packet sequence\nnumbers.  A mismatch can develop between this book-keeping and\ntp-\u003esnd_cwnd due, for example, to delayed acks acking multiple\npackets.  When vegas transitions to reno operation (e.g. following\nloss), then this mismatch leads to incorrect behaviour (akin to a cwnd\nbackoff).  This seems mostly to affect operation at low cwnds where\ndelayed acking can lead to a significant fraction of cwnd being\ncovered by a single ack, leading to the book-keeping mismatch.  This\npatch modifies the congestion avoidance update to avoid the need for\nseparate book-keeping while leaving vegas congestion avoidance\nfunctionally unchanged.  A secondary advantage of this modification is\nthat the use of fixed-point (via V_PARAM_SHIFT) and 64 bit arithmetic\nis no longer necessary, simplifying the code.\n\nSome example test measurements with the patched code (confirming no functional\nchange in the congestion avoidance algorithm) can be seen at:\n\nhttp://www.hamilton.ie/doug/vegaspatch/\n\nSigned-off-by: Doug Leith \u003cdoug.leith@nuim.ie\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a2acde07711f7d8b19928245c555bce60f91482a",
      "tree": "8632a450cff2f211f7c5a9f1a494aed47081fae7",
      "parents": [
        "d5dd9175bc12015ea4d2c1a9b6b15dfa645a3db9"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Dec 05 22:49:37 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 05 22:56:07 2008 -0800"
      },
      "message": "tcp: fix tso_should_defer in 64bit\n\nSince jiffies is unsigned long, the types get expanded into\nthat and after long enough time the difference will therefore\nalways be \u003e 1 (and that probably happens near boot as well as\niirc the first jiffies wrap is scheduler close after boot to\nfind out problems related to that early).\n\nThis was originally noted by Bill Fink in Dec\u002707 but nobody\nnever ended fixing it.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d5dd9175bc12015ea4d2c1a9b6b15dfa645a3db9",
      "tree": "6cf6f64eb1c3e51b0ee0e2a31a2b962e676b1954",
      "parents": [
        "730c30ec646bd252a9448a66ecd51d794853513f"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Dec 05 22:48:55 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 05 22:56:06 2008 -0800"
      },
      "message": "tcp: use tcp_write_xmit also in tcp_push_one\n\ntcp_minshall_update is not significant difference since it only\nchecks for not full-sized skb which is BUG\u0027ed on the push_one\npath anyway.\n\ntcp_snd_test is tcp_nagle_test+tcp_cwnd_test+tcp_snd_wnd_test,\njust the order changed slightly.\n\nnet/ipv4/tcp_output.c:\n  tcp_snd_test              |  -89\n  tcp_mss_split_point       |  -91\n  tcp_may_send_now          |  +53\n  tcp_cwnd_validate         |  -98\n  tso_fragment              | -239\n  __tcp_push_pending_frames | -1340\n  tcp_push_one              | -146\n 7 functions changed, 53 bytes added, 2003 bytes removed, diff: -1950\n\nnet/ipv4/tcp_output.c:\n  tcp_write_xmit | +1772\n 1 function changed, 1772 bytes added, diff: +1772\n\ntcp_output.o.new:\n 8 functions changed, 1825 bytes added, 2003 bytes removed, diff: -178\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "730c30ec646bd252a9448a66ecd51d794853513f",
      "tree": "c0d413860f9d8bf37374f17cfabb4911143465d7",
      "parents": [
        "726e07a8a38168266ac95d87736f9501a2d9e7b2",
        "0a0755c9fe47dc9f8271935909c66096e43efbfe"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 05 22:54:40 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 05 22:54:40 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/iwlwifi/iwl-core.c\n\tdrivers/net/wireless/iwlwifi/iwl-sta.c\n"
    },
    {
      "commit": "726e07a8a38168266ac95d87736f9501a2d9e7b2",
      "tree": "40c351cce9c00c250386e43cce6e4ebfb5091ea2",
      "parents": [
        "41834b7332a1ad3f7b6e8bbd83e6ce63586f0b07"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Dec 05 22:43:56 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 05 22:43:56 2008 -0800"
      },
      "message": "tcp: move some parts from tcp_write_xmit\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "41834b7332a1ad3f7b6e8bbd83e6ce63586f0b07",
      "tree": "29932203c8bc1ef4a90a9dbabab205699c4c1263",
      "parents": [
        "ee6aac59505bcae5de1422c76956de62ac22170d"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Dec 05 22:43:26 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 05 22:43:26 2008 -0800"
      },
      "message": "tcp: share code through function, not through copy-paste. :-)\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee6aac59505bcae5de1422c76956de62ac22170d",
      "tree": "6126384cd8081aa1496ae07c54913e7bec1fbcc5",
      "parents": [
        "50133161a83c9e5974d430cabd77d6430ca7d579"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Dec 05 22:43:08 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 05 22:43:08 2008 -0800"
      },
      "message": "tcp: drop tcp_bound_rto, merge content of it tcp_set_rto\n\nBoth are called by the same sites.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "50133161a83c9e5974d430cabd77d6430ca7d579",
      "tree": "288ad9673bb907399f1d8f646c1a1a1f0af64de8",
      "parents": [
        "a1197f5a6faa23e5d0c1f8ed97b011deb2a75457"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Dec 05 22:42:41 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 05 22:42:41 2008 -0800"
      },
      "message": "tcp: no need to pass prev skb around, reduces arg pressure\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a1197f5a6faa23e5d0c1f8ed97b011deb2a75457",
      "tree": "37c828e0fee0c8adea50b69fb2d8659668ac17c3",
      "parents": [
        "775ffabf77a648d78fe1d20cb3a620e771abb921"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Dec 05 22:42:22 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 05 22:42:22 2008 -0800"
      },
      "message": "tcp: introduce struct tcp_sacktag_state to reduce arg pressure\n\nThere are just too many args to some sacktag functions. This\nidea was first proposed by David S. Miller around a year ago,\nand the current situation is much worse that what it was back\nthen.\n\ntcp_sacktag_one can be made a bit simpler by returning the\nnew sacked (it can be achieved with a single variable though\nthe previous code \"caching\" sacked into a local variable and\ntherefore it is not exactly equal but the results will be the\nsame).\n\ncodiff on x86_64\n  tcp_sacktag_one         |  -15\n  tcp_shifted_skb         |  -50\n  tcp_match_skb_to_sack   |   -1\n  tcp_sacktag_walk        |  -64\n  tcp_sacktag_write_queue |  -59\n  tcp_urg                 |   +1\n  tcp_event_data_recv     |   -1\n 7 functions changed, 1 bytes added, 190 bytes removed, diff: -189\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "775ffabf77a648d78fe1d20cb3a620e771abb921",
      "tree": "92d953047db446134ddae8facf209fa71d14c992",
      "parents": [
        "9969ca5f205988fb96461075cb4914c55cf166b5"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Dec 05 22:41:26 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 05 22:41:26 2008 -0800"
      },
      "message": "tcp: make mtu probe failure to not break gso\u0027ed skbs unnecessarily\n\nI noticed that since skb-\u003elen has nothing to do with actual segment\nlength with gso, we need to figure it out separately, reuse\na function from the recent shifting stuff (generalize it).\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9969ca5f205988fb96461075cb4914c55cf166b5",
      "tree": "8f7c0b3102044f09f9eb85d945ce818eec19e309",
      "parents": [
        "f0bc52f38b09308fca85f3aa9300a341364fe9c6"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Dec 05 22:41:06 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 05 22:41:06 2008 -0800"
      },
      "message": "tcp: Fix thinko making the not-shiftable to cover S|R as well\n\nS|R won\u0027t result in S if just SACK is received. DSACK is\nanother story (but it is covered correctly already).\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f0bc52f38b09308fca85f3aa9300a341364fe9c6",
      "tree": "be77bd3df702eee48849c4a29fdf9d870b30809f",
      "parents": [
        "61c1d052a3c7d5acba3bd535aaffa5bb5d085181"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Dec 05 22:40:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 05 22:40:47 2008 -0800"
      },
      "message": "tcp: force mss equality with the next skb too.\n\nAlso make if-goto forest nicer looking.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a6af2d6ba5797c556fba0cd3a19e5f3bc9a99b76",
      "tree": "dd2a3be62a935df9c8f8d0a0845ddd310d774f6c",
      "parents": [
        "f706644d55f90e8306d87060168fef33804d6dd9"
      ],
      "author": {
        "name": "Doug Leith",
        "email": "doug.leith@nuim.ie",
        "time": "Thu Dec 04 17:17:18 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 04 17:17:18 2008 -0800"
      },
      "message": "tcp: tcp_vegas ssthresh bug fix\n\nThis patch fixes a bug in tcp_vegas.c.  At the moment this code leaves\nssthresh untouched.  However, this means that the vegas congestion\ncontrol algorithm is effectively unable to reduce cwnd below the\nssthresh value (if the vegas update lowers the cwnd below ssthresh,\nthen slow start is activated to raise it back up).  One example where\nthis matters is when during slow start cwnd overshoots the link\ncapacity and a flow then exits slow start with ssthresh set to a value\nabove where congestion avoidance would like to adjust it.\n\nSigned-off-by: Doug Leith \u003cdoug.leith@nuim.ie\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "999890b21a8eff7559a140fcbd2cd4b34e685c76",
      "tree": "83f0c7fbb43e562c40cce760666d69de653abcf0",
      "parents": [
        "1ea472e2dedcf23d5f31c63fc790cccfab93c0de"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Wed Dec 03 22:22:16 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 03 22:22:16 2008 -0800"
      },
      "message": "net: /proc/net/ip_mr_cache, display Iif as a signed short\n\nToday, iproute2 fails to show multicast forwarding unresolved cache\nentries while scanning /proc/net/ip_mr_cache.\n\nIndeed, it expects to see -1 in \u0027Iif\u0027 column to identify unresolved\nentries but the kernel outputs 65535. It\u0027s a signed/unsigned issue:\n\n\u0027Iif\u0027, the source interface, is retrieved from member mfc_parent in\nstruct mfc_cache. mfc_parent is a vifi_t: unsigned short, but is\ndisplayed in ipmr_mfc_seq_show() as \"%-3d\", signed integer.\n\nIn unresolevd entries, the 65535 value (0xFFFF) comes from this define:\n#define ALL_VIFS    ((vifi_t)(-1))\n\nThat may explains why the guy who added support for this in iproute2\nthought a -1 should be expected.\n\nI don\u0027t know if this must be fixed in kernel or in iproute2. Who is\nright? What is the correct API? How was it designed originally?\n\nI let you decide if it should goes in the kernel or be fixed in iproute2.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ea472e2dedcf23d5f31c63fc790cccfab93c0de",
      "tree": "1886e87c59bc3efe9edee6f2473d5a2ad5b22e9e",
      "parents": [
        "9de6d99a7559d20f7ababd1cacdc61ee5315f3c1"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Wed Dec 03 22:21:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 03 22:21:47 2008 -0800"
      },
      "message": "net: fix /proc/net/ip_mr_cache display - V2\n\n/proc/net/ip_mr_cache and /proc/net/ip6_mr_cache displays garbage when\nshowing unresolved mfc_cache entries.\n\n[root@qemu tests]# cat /proc/net/ip_mr_cache\nGroup    Origin   Iif     Pkts    Bytes    Wrong Oifs\n014C00EF 010014AC 1         10    10050        0  2:1    3:1\n024C00EF 010014AC 65535      514        2 -559067475\n\nThe first line is correct. It is a resolved cache entry, 10 packets used it...\nThe second line represents an unresolved entry, and the columns Pkts(4th),\nBytes(5th) and Wrong(6th) just show garbage.\n\nIn struct mfc_cache, there\u0027s an union to store data for resolved and\nunresolved cases. And what ipmr_mfc_seq_show() is printing in these \ncolumns for the unresolved entries is some bytes from mfc_cache.mfc_un.res.\nBad.\n(eg. In our case -559067475 is in fact 0xdead4ead which is the spinlock\nmagic from mfc_cache.mfc_un.unres.unresolved.lock.magic).\n\nThis patch replaces the garbage data written in these columns for the\nunresolved entries by \u00270\u0027 (zeros) which is more correct.\nThis change doesn\u0027t break the ABI.\n\nAlso, mfc-\u003emfc_un.res.pkt, mfc-\u003emfc_un.res.bytes, mfc-\u003emfc_un.res.wrong_if\nare unsigned long.\n\nIt applies on top of net-next-2.6.\n\nThe patch for net-2.6 is slightly different because of the NIP6_FMT to\n%pI6 conversion that was made in the seq_printf.\n\nChangelog:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nV2:\n* Instead of breaking the ABI by suppressing the columns that have no\n  meaning for unresolved entries, fill them with 0 values.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ec98ce480ada787f2cfbd696980ff3564415505b",
      "tree": "1a4d644b38f9f1e4b4e086fde0b195df4a92cf84",
      "parents": [
        "3496f92beb9aa99ef21fccc154a36c7698e9c538",
        "feaf3848a813a106f163013af6fcf6c4bfec92d9"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 04 17:16:36 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 04 17:16:36 2008 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tfs/nfsd/nfs4recover.c\n\nManually fixed above to use new creds API functions, e.g.\nnfs4_save_creds().\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "f8269a495a1924f8b023532dd3e77423432db810",
      "tree": "73b5f7b9e059a79b890c53572e0e048a2078577d",
      "parents": [
        "5176da7e5318669220e4d2fa856223054a3efc9f"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Dec 03 21:24:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 03 21:24:48 2008 -0800"
      },
      "message": "tcp: make urg+gso work for real this time\n\nI should have noticed this earlier... :-) The previous solution\nto URG+GSO/TSO will cause SACK block tcp_fragment to do zig-zig\npatterns, or even worse, a steep downward slope into packet\ncounting because each skb pcount would be truncated to pcount\nof 2 and then the following fragments of the later portion would\nrestore the window again.\n\nBasically this reverts \"tcp: Do not use TSO/GSO when there is\nurgent data\" (33cf71cee1). It also removes some unnecessary code\nfrom tcp_current_mss that didn\u0027t work as intented either (could\nbe that something was changed down the road, or it might have\nbeen broken since the dawn of time) because it only works once\nurg is already written while this bug shows up starting from\n~64k before the urg point.\n\nThe retransmissions already are split to mss sized chunks, so\nonly new data sending paths need splitting in case they have\na segment otherwise suitable for gso/tso. The actually check\ncan be improved to be more narrow but since this is late -rc\nalready, I\u0027ll postpone thinking the more fine-grained things.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6976a1d6c222c50ac93d2273b9cf57e6fd047e59",
      "tree": "ba2973e7c724b16d5e176438ae635dac4d74bc75",
      "parents": [
        "422d9cdcb85b3622d08a590fed66021af7aea333"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Mon Dec 01 23:37:17 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 01 23:37:17 2008 -0800"
      },
      "message": "net: percpu_counter_inc() should not be called in BH-disabled section\n\nBased upon a lockdep report by Alexey Dobriyan.\n\nI checked all per_cpu_counter_xxx() usages in network tree, and I\nthink all call sites are BH enabled except one in\ninet_csk_listen_stop().\n\ncommit dd24c00191d5e4a1ae896aafe33c6b8095ab4bd1\n(net: Use a percpu_counter for orphan_count)\nreplaced atomic_t orphan_count to a percpu_counter.\n\natomic_inc()/atomic_dec() can be called from any context, while\npercpu_counter_xxx() should be called from a consistent state.\n\nFor orphan_count, this context can be the BH-enabled one.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed77a89c30fa03dcb234a84ddea710b3fb7b62da",
      "tree": "69f3e2c2bbf2fdd4f742e891441f01307d1d1f49",
      "parents": [
        "475ad8e2172d7f8b73af5532a8dad265b51339c2",
        "d6e8cc6cc7ac77b0f9118f78c453a2e834e62709"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 28 02:19:15 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 28 02:19:15 2008 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6\n\nConflicts:\n\n\tnet/netfilter/nf_conntrack_netlink.c\n"
    },
    {
      "commit": "5b9ab2ec04ec1e1e53939768805612ac191d7ba2",
      "tree": "22d29905c148d2d743b3eccb585fbe60fb91e25a",
      "parents": [
        "851fd7bd88524bb4e20f3def3127cd9167d6d0cf",
        "3ec192559033ed457f0d7856838654c100fc659f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 26 23:48:40 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 26 23:48:40 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/hp-plus.c\n\tdrivers/net/wireless/ath5k/base.c\n\tdrivers/net/wireless/ath9k/recv.c\n\tnet/wireless/reg.c\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": "4fb236bac9fc7d51e2267866de6d4c30e549d2f8",
      "tree": "e3d024fe85be93a81553a910f556b818c8a85496",
      "parents": [
        "7013ec30e0e2bc5b1e602e19a4e0668f9b7c0a72"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:59:27 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:59:27 2008 -0800"
      },
      "message": "netns xfrm: AH/ESP in netns!\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\n"
    },
    {
      "commit": "fbda33b2b85941c1ae3a0d89522dec5c1b1bd98c",
      "tree": "f35036a6faf4fa549e45ff2b0407344e17cf9455",
      "parents": [
        "c5b3cf46eabe6e7459125fc6e2033b4222665017"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:56:49 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:56:49 2008 -0800"
      },
      "message": "netns xfrm: -\u003eget_saddr in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c5b3cf46eabe6e7459125fc6e2033b4222665017",
      "tree": "a968ad567906d7b45270b9e91d534493f8a1a38d",
      "parents": [
        "db983c1144884cab10d6397532f4bf05eb0c01d2"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:51:25 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:51:25 2008 -0800"
      },
      "message": "netns xfrm: -\u003edst_lookup in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ddcfd79680c1dc74eb5f24aa70785c11bf7eec8f",
      "tree": "f1d762f6b1cf6bcec289fe558a26dcb4e37ffb29",
      "parents": [
        "3dd0b4997a1d4f3a3666e400cc75b0279ce96849"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:37:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:37:23 2008 -0800"
      },
      "message": "netns xfrm: dst garbage-collecting in netns\n\nPass netns pointer to struct xfrm_policy_afinfo::garbage_collect()\n\n\t[This needs more thoughts on what to do with dst_ops]\n\t[Currently stub to init_net]\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "52479b623d3d41df84c499325b6a8c7915413032",
      "tree": "196f303f296b53dc89a05954d9c03226a9b4158b",
      "parents": [
        "cdcbca7c1f1946758cfacb69bc1c7eeaccb11e2d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:35:18 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:35:18 2008 -0800"
      },
      "message": "netns xfrm: lookup in netns\n\nPass netns to xfrm_lookup()/__xfrm_lookup(). For that pass netns\nto flow_cache_lookup() and resolver callback.\n\nTake it from socket or netdevice. Stub DECnet to init_net.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "221df1ed33c9284fc7a6f6e47ca7f8d5f3665d43",
      "tree": "1961ab9f9061b595e10449a24e7275d91f422de2",
      "parents": [
        "0e6024519b4da2d9413b97be1de8122d5709ccc1"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:30:50 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:30:50 2008 -0800"
      },
      "message": "netns xfrm: state lookup in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "673c09be457bb23aa0eaaa79804cbb342210d195",
      "tree": "9948d1859bbcd07316f5cea239b86845d6061570",
      "parents": [
        "d62ddc21b674b5ac1466091ff3fbf7baa53bc92c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:15:16 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:15:16 2008 -0800"
      },
      "message": "netns xfrm: add struct xfrm_state::xs_net\n\nTo avoid unnecessary complications with passing netns around.\n\n* set once, very early after allocating\n* once set, never changes\n\nFor a while create every xfrm_state in init_net.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "723b46108f8ee75b61ce703d0c9225e4f537bc46",
      "tree": "f33c3d2b0e4f204a6b3f97ed198e1431a10ca448",
      "parents": [
        "5bc0b3bfa758e4ae49c94e31c1edb9a5f10a8060"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Nov 25 13:55:15 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 13:55:15 2008 -0800"
      },
      "message": "net: udp_unhash() can test if sk is hashed\n\nImpact: Optimization\n\nLike done in inet_unhash(), we can avoid taking a chain lock if\nsocket is not hashed in udp_unhash()\n\nTriggered by close(socket(AF_INET, SOCK_DGRAM, 0));\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8eecaba900e89643029fd2c253ad8ebb60761165",
      "tree": "0b26268a6e0e97e9e859c25d2367cec0bff837f1",
      "parents": [
        "2f9889a20cd2854bc6305198255c617b0b4eb719"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Tue Nov 25 13:45:29 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 13:45:29 2008 -0800"
      },
      "message": "tcp: tcp_limit_reno_sacked can become static\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5f145e44ae09f629d25536b2947a91e9c01bddcb",
      "tree": "2f78f50541b5e0203aea320960a7acad7fce0dc0",
      "parents": [
        "4813eadf6b17caa7fcce67ac2f929a3dd5178fa2"
      ],
      "author": {
        "name": "Eric Leblond",
        "email": "eric@inl.fr",
        "time": "Tue Nov 25 12:15:16 2008 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Nov 25 12:15:16 2008 +0100"
      },
      "message": "netfilter: nfmark routing in OUTPUT, mangle, NFQUEUE\n\nThis patch let nfmark to be evaluated for routing decision for OUTPUT\npacket, in mangle table, when process paquet in NFQUEUE\nUntil now, only change (in NFQUEUE process) on fields src_addr,\ndest_addr and tos could make netfilter to reevalute the routing.\n\nFrom: Laurent Licour \u003claurent@licour.com\u003e\nSigned-off-by: Eric Leblond \u003ceric@inl.fr\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "fb7e06748c29c08a9f5ca057a780b65acbb91c27",
      "tree": "9f55582d2e12561fc8930d50f4ab3a6f802b2156",
      "parents": [
        "6daad37230ab02bb593d179d704079d4b5912bd7"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 01:05:54 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 01:05:54 2008 -0800"
      },
      "message": "xfrm: remove useless forward declarations\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6daad37230ab02bb593d179d704079d4b5912bd7",
      "tree": "42b08ba70a788dea44af80c49584f23d08e12a44",
      "parents": [
        "69d728baf620839d1a3c874eecac316729f89de4"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 01:05:09 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 01:05:09 2008 -0800"
      },
      "message": "ah4/ah6: remove useless NULL assignments\n\nstruct will be kfreed in a moment, so...\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "111cc8b913b42ef07793648b1699288332f273e1",
      "tree": "f74fb48630319113247b5ee0c660b24f2af160d9",
      "parents": [
        "92ee76b6d99bfcdab6162816c9025541ef7248eb"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Nov 24 21:27:22 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 21:27:22 2008 -0800"
      },
      "message": "tcp: add some mibs to track collapsing\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "92ee76b6d99bfcdab6162816c9025541ef7248eb",
      "tree": "84ff34e13792073b32e8e767f47598e373d2689d",
      "parents": [
        "832d11c5cd076abc0aa1eaf7be96c81d1a59ce41"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Nov 24 21:26:56 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 21:26:56 2008 -0800"
      },
      "message": "tcp: Make shifting not clear the hints\n\nThe earlier version was just very basic one which is \"playing\nsafe\" by always clearing the hints. However, clearing of a hint\nis extremely costly operation with large windows, so it must be\navoided at all cost whenever possible, there is a way with\nshifting too achieve not-clearing.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "832d11c5cd076abc0aa1eaf7be96c81d1a59ce41",
      "tree": "95b22ad16d1ff414cab39578ed8c927c2ce08723",
      "parents": [
        "f58b22fd3c16444edc393a217a74208f1894b601"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Nov 24 21:20:15 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 21:20:15 2008 -0800"
      },
      "message": "tcp: Try to restore large SKBs while SACK processing\n\nDuring SACK processing, most of the benefits of TSO are eaten by\nthe SACK blocks that one-by-one fragment SKBs to MSS sized chunks.\nThen we\u0027re in problems when cleanup work for them has to be done\nwhen a large cumulative ACK comes. Try to return back to pre-split\nstate already while more and more SACK info gets discovered by\ncombining newly discovered SACK areas with the previous skb if\nthat\u0027s SACKed as well.\n\nThis approach has a number of benefits:\n\n1) The processing overhead is spread more equally over the RTT\n2) Write queue has less skbs to process (affect everything\n   which has to walk in the queue past the sacked areas)\n3) Write queue is consistent whole the time, so no other parts\n   of TCP has to be aware of this (this was not the case with\n   some other approach that was, well, quite intrusive all\n   around).\n4) Clean_rtx_queue can release most of the pages using single\n   put_page instead of previous PAGE_SIZE/mss+1 calls\n\nIn case a hole is fully filled by the new SACK block, we attempt\nto combine the next skb too which allows construction of skbs\nthat are even larger than what tso split them to and it handles\nhole per on every nth patterns that often occur during slow start\novershoot pretty nicely. Though this to be really useful also\na retransmission would have to get lost since cumulative ACKs\nadvance one hole at a time in the most typical case.\n\nTODO: handle upwards only merging. That should be rather easy\nwhen segment is fully sacked but I\u0027m leaving that as future\nwork item (it won\u0027t make very large difference anyway since\nthis current approach already covers quite a lot of normal\ncases).\n\nI was earlier thinking of some sophisticated way of tracking\ntimestamps of the first and the last segment but later on\nrealized that it won\u0027t be that necessary at all to store the\ntimestamp of the last segment. The cases that can occur are\nbasically either:\n  1) ambiguous \u003d\u003e no sensible measurement can be taken anyway\n  2) non-ambiguous is due to reordering \u003d\u003e having the timestamp\n     of the last segment there is just skewing things more off\n     than does some good since the ack got triggered by one of\n     the holes (besides some substle issues that would make\n     determining right hole/skb even harder problem). Anyway,\n     it has nothing to do with this change then.\n\nI choose to route some abnormal looking cases with goto noop,\nsome could be handled differently (eg., by stopping the\nwalking at that skb but again). In general, they either\nshouldn\u0027t happen at all or are rare enough to make no difference\nin practice.\n\nIn theory this change (as whole) could cause some macroscale\nregression (global) because of cache misses that are taken over\nthe round-trip time but it gets very likely better because of much\nless (local) cache misses per other write queue walkers and the\nbig recovery clearing cumulative ack.\n\nWorth to note that these benefits would be very easy to get also\nwithout TSO/GSO being on as long as the data is in pages so that\nwe can merge them. Currently I won\u0027t let that happen because\nDSACK splitting at fragment that would mess up pcounts due to\nsk_can_gso in tcp_set_skb_tso_segs. Once DSACKs fragments gets\navoided, we have some conditions that can be made less strict.\n\nTODO: I will probably have to convert the excessive pointer\npassing to struct sacktag_state... :-)\n\nMy testing revealed that considerable amount of skbs couldn\u0027t\nbe shifted because they were cloned (most likely still awaiting\ntx reclaim)...\n\n[The rest is considering future work instead since I got\nrepeatably EFAULT to tcpdump\u0027s recvfrom when I added\npskb_expand_head to deal with clones, so I separated that\ninto another, later patch]\n\n...To counter that, I gave up on the fifth advantage:\n\n5) When growing previous SACK block, less allocs for new skbs\n   are done, basically a new alloc is needed only when new hole\n   is detected and when the previous skb runs out of frags space\n\n...which now only happens of if reclaim is fast enough to dispose\nthe clone before the SACK block comes in (the window is RTT long),\notherwise we\u0027ll have to alloc some.\n\nWith clones being handled I got these numbers (will be somewhat\nworse without that), taken with fine-grained mibs:\n\n                  TCPSackShifted 398\n                   TCPSackMerged 877\n            TCPSackShiftFallback 320\n      TCPSACKCOLLAPSEFALLBACKGSO 0\n  TCPSACKCOLLAPSEFALLBACKSKBBITS 0\n  TCPSACKCOLLAPSEFALLBACKSKBDATA 0\n    TCPSACKCOLLAPSEFALLBACKBELOW 0\n    TCPSACKCOLLAPSEFALLBACKFIRST 1\n TCPSACKCOLLAPSEFALLBACKPREVBITS 318\n      TCPSACKCOLLAPSEFALLBACKMSS 1\n   TCPSACKCOLLAPSEFALLBACKNOHEAD 0\n    TCPSACKCOLLAPSEFALLBACKSHIFT 0\n          TCPSACKCOLLAPSENOOPSEQ 0\n  TCPSACKCOLLAPSENOOPSMALLPCOUNT 0\n     TCPSACKCOLLAPSENOOPSMALLLEN 0\n             TCPSACKCOLLAPSEHOLE 12\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f58b22fd3c16444edc393a217a74208f1894b601",
      "tree": "df0c59de99d337c001703295d6d02919940dafc3",
      "parents": [
        "adb92db857ee2a0a2b925ccfbd560203c3f88aae"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Nov 24 21:14:43 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 21:14:43 2008 -0800"
      },
      "message": "tcp: make tcp_sacktag_one able to handle partial skb too\n\nThis is preparatory work for SACK combiner patch which may\nhave to count TCP state changes for only a part of the skb\nbecause it will intentionally avoids splitting skb to SACKed\nand not sacked parts.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "adb92db857ee2a0a2b925ccfbd560203c3f88aae",
      "tree": "fac842e439d3a6bcd54aef5ab72a53fa831119a9",
      "parents": [
        "e8bae275d9354104f7ae24a48a90d1a6286e7bd9"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Nov 24 21:13:50 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 21:13:50 2008 -0800"
      },
      "message": "tcp: Make SACK code to split only at mss boundaries\n\nSadly enough, this adds possible divide though we try to avoid\nit by checking one mss as common case.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e8bae275d9354104f7ae24a48a90d1a6286e7bd9",
      "tree": "90f4bb2abd9eb31b3faa6393f1e164ac48b57238",
      "parents": [
        "e1aa680fa40e7492260a09cb57d94002245cc8fe"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Nov 24 21:12:28 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 21:12:28 2008 -0800"
      },
      "message": "tcp: more aggressive skipping\n\nI knew already when rewriting the sacktag that this condition\nwas too conservative, change it now since it prevent lot of\nuseless work (especially in the sack shifter decision code\nthat is being added by a later patch). This shouldn\u0027t change\nanything really, just save some processing regardless of the\nshifter.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e1aa680fa40e7492260a09cb57d94002245cc8fe",
      "tree": "67afc8d71c9de6f76036942cd442d628ae26a4f3",
      "parents": [
        "4a17fc3add594fcc1c778e93a95b6ecf47f630e5"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Nov 24 21:11:55 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 21:11:55 2008 -0800"
      },
      "message": "tcp: move tcp_simple_retransmit to tcp_input\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4a17fc3add594fcc1c778e93a95b6ecf47f630e5",
      "tree": "b82a594e347812c130765bcc85194a7ef96766df",
      "parents": [
        "a21bba945430f3f5e00c349665f88cdacdb32a8d"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Nov 24 21:03:43 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 21:03:43 2008 -0800"
      },
      "message": "tcp: collapse more than two on retransmission\n\nI always had thought that collapsing up to two at a time was\nintentional decision to avoid excessive processing if 1 byte\nsized skbs are to be combined for a full mtu, and consecutive\nretransmissions would make the size of the retransmittee\ndouble each round anyway, but some recent discussion made me\nto understand that was not the case. Thus make collapse work\nmore and wait less.\n\nIt would be possible to take advantage of the shifting\nmachinery (added in the later patch) in the case of paged\ndata but that can be implemented on top of this change.\n\ntcp_skb_is_last check is now provided by the loop.\n\nI tested a bit (ss-after-idle-off, fill 4096x4096B xfer,\n10s sleep + 4096 x 1byte writes while dropping them for\nsome a while with netem):\n\n. 16774097:16775545(1448) ack 1 win 46\n. 16775545:16776993(1448) ack 1 win 46\n. ack 16759617 win 2399\nP 16776993:16777217(224) ack 1 win 46\n. ack 16762513 win 2399\n. ack 16765409 win 2399\n. ack 16768305 win 2399\n. ack 16771201 win 2399\n. ack 16774097 win 2399\n. ack 16776993 win 2399\n. ack 16777217 win 2399\nP 16777217:16777257(40) ack 1 win 46\n. ack 16777257 win 2399\nP 16777257:16778705(1448) ack 1 win 46\nP 16778705:16780153(1448) ack 1 win 46\nFP 16780153:16781313(1160) ack 1 win 46\n. ack 16778705 win 2399\n. ack 16780153 win 2399\nF 1:1(0) ack 16781314 win 2399\n\nWhile without drop-all period I get this:\n\n. 16773585:16775033(1448) ack 1 win 46\n. ack 16764897 win 9367\n. ack 16767793 win 9367\n. ack 16770689 win 9367\n. ack 16773585 win 9367\n. 16775033:16776481(1448) ack 1 win 46\nP 16776481:16777217(736) ack 1 win 46\n. ack 16776481 win 9367\n. ack 16777217 win 9367\nP 16777217:16777218(1) ack 1 win 46\nP 16777218:16777219(1) ack 1 win 46\nP 16777219:16777220(1) ack 1 win 46\n  ...\nP 16777247:16777248(1) ack 1 win 46\n. ack 16777218 win 9367\n. ack 16777219 win 9367\n  ...\n. ack 16777233 win 9367\n. ack 16777248 win 9367\nP 16777248:16778696(1448) ack 1 win 46\nP 16778696:16780144(1448) ack 1 win 46\nFP 16780144:16781313(1169) ack 1 win 46\n. ack 16780144 win 9367\nF 1:1(0) ack 16781314 win 9367\n\nThe window seems to be 30-40 segments, which were successfully\ncombined into: P 16777217:16777257(40) ack 1 win 46\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a21bba945430f3f5e00c349665f88cdacdb32a8d",
      "tree": "9ff6a910b16925d2ee3c02b7221f3984ad5cd949",
      "parents": [
        "2e77d89b2fa8e3f8325b8ce7893ec3645f41aff5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Mon Nov 24 16:07:50 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 16:07:50 2008 -0800"
      },
      "message": "net: avoid a pair of dst_hold()/dst_release() in ip_push_pending_frames()\n\nWe can reduce pressure on dst entry refcount that slowdown UDP transmit\npath on SMP machines. This pressure is visible on RTP servers when\ndelivering content to mediagateways, especially big ones, handling\nthousand of streams. Several cpus send UDP frames to the same\ndestination, hence use the same dst entry.\n\nThis patch makes ip_push_pending_frames() steal the refcount its\ncallers had to take when filling inet-\u003ecork.dst.\n\nThis doesnt avoid all refcounting, but still gives speedups on SMP,\non UDP/RAW transmit path.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2e77d89b2fa8e3f8325b8ce7893ec3645f41aff5",
      "tree": "ae40aa75449f705bd166630f9bcb5f41373d8248",
      "parents": [
        "4db0acf3c0afbbbb2ae35a65f8896ca6655a47ec"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Mon Nov 24 15:52:46 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 15:52:46 2008 -0800"
      },
      "message": "net: avoid a pair of dst_hold()/dst_release() in ip_append_data()\n\nWe can reduce pressure on dst entry refcount that slowdown UDP transmit\npath on SMP machines. This pressure is visible on RTP servers when\ndelivering content to mediagateways, especially big ones, handling\nthousand of streams. Several cpus send UDP frames to the same\ndestination, hence use the same dst entry.\n\nThis patch makes ip_append_data() eventually steal the refcount its\ncallers had to take on the dst entry.\n\nThis doesnt avoid all refcounting, but still gives speedups on SMP,\non UDP/RAW transmit path\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "920de804bca61f88643bc9171bcd06f1a56c6258",
      "tree": "fb4c90b4b167a4b7518ea888e99bfd18a7d301fb",
      "parents": [
        "1f87e235e6fb92c2968b52b9191de04f1aff8e77"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Mon Nov 24 00:09:29 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 00:09:29 2008 -0800"
      },
      "message": "net: Make sure BHs are disabled in sock_prot_inuse_add()\n\nThe rule of calling sock_prot_inuse_add() is that BHs must\nbe disabled.  Some new calls were added where this was not\ntrue and this tiggers warnings as reported by Ilpo.\n\nFix this by adding explicit BH disabling around those call sites,\nor moving sock_prot_inuse_add() call inside an existing BH disabled\nsection.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "be77e5930725c3e77bcc0fb1def28e016080d0a1",
      "tree": "f0bfe670f5ef785567db3b65afc244b7664200c1",
      "parents": [
        "c25eb3bfb97294d0543a81230fbc237046b4b84c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Nov 23 17:26:26 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 23 17:26:26 2008 -0800"
      },
      "message": "net: fix tunnels in netns after ndo_ changes\n\ndev_net_set() should be the very first thing after alloc_netdev().\n\n\"ndo_\" changes turned simple assignment (which is OK to do before netns\nassignment) into quite non-trivial operation (which is not OK, init_net was\nused). This leads to incomplete initialisation of tunnel device in netns.\n\nBUG: unable to handle kernel NULL pointer dereference at 00000004\nIP: [\u003cc02efdb5\u003e] ip6_tnl_exit_net+0x37/0x4f\n*pde \u003d 00000000 \nOops: 0000 [#1] PREEMPT DEBUG_PAGEALLOC\nlast sysfs file: /sys/class/net/lo/operstate\n\nPid: 10, comm: netns Not tainted (2.6.28-rc6 #1) \nEIP: 0060:[\u003cc02efdb5\u003e] EFLAGS: 00010246 CPU: 0\nEIP is at ip6_tnl_exit_net+0x37/0x4f\nEAX: 00000000 EBX: 00000020 ECX: 00000000 EDX: 00000003\nESI: c5caef30 EDI: c782bbe8 EBP: c7909f50 ESP: c7909f48\n DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068\nProcess netns (pid: 10, ti\u003dc7908000 task\u003dc7905780 task.ti\u003dc7908000)\nStack:\n c03e75e0 c7390bc8 c7909f60 c0245448 c7390bd8 c7390bf0 c7909fa8 c012577a\n 00000000 00000002 00000000 c0125736 c782bbe8 c7909f90 c0308fe3 c782bc04\n c7390bd4 c0245406 c084b718 c04f0770 c03ad785 c782bbe8 c782bc04 c782bc0c\nCall Trace:\n [\u003cc0245448\u003e] ? cleanup_net+0x42/0x82\n [\u003cc012577a\u003e] ? run_workqueue+0xd6/0x1ae\n [\u003cc0125736\u003e] ? run_workqueue+0x92/0x1ae\n [\u003cc0308fe3\u003e] ? schedule+0x275/0x285\n [\u003cc0245406\u003e] ? cleanup_net+0x0/0x82\n [\u003cc0125ae1\u003e] ? worker_thread+0x81/0x8d\n [\u003cc0128344\u003e] ? autoremove_wake_function+0x0/0x33\n [\u003cc0125a60\u003e] ? worker_thread+0x0/0x8d\n [\u003cc012815c\u003e] ? kthread+0x39/0x5e\n [\u003cc0128123\u003e] ? kthread+0x0/0x5e\n [\u003cc0103b9f\u003e] ? kernel_thread_helper+0x7/0x10\nCode: db e8 05 ff ff ff 89 c6 e8 dc 04 f6 ff eb 08 8b 40 04 e8 38 89 f5 ff 8b 44 9e 04 85 c0 75 f0 43 83 fb 20 75 f2 8b 86 84 00 00 00 \u003c8b\u003e 40 04 e8 1c 89 f5 ff e8 98 04 f6 ff 89 f0 e8 f8 63 e6 ff 5b \nEIP: [\u003cc02efdb5\u003e] ip6_tnl_exit_net+0x37/0x4f SS:ESP 0068:c7909f48\n---[ end trace 6c2f2328fccd3e0c ]---\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c25eb3bfb97294d0543a81230fbc237046b4b84c",
      "tree": "6c9deabfb12f4d31f280cfcfe7e7580a2089931c",
      "parents": [
        "8c862c23e2563e6aedfc6c4aa6827cadb83f2414"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Nov 23 17:22:55 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 23 17:22:55 2008 -0800"
      },
      "message": "net: Convert TCP/DCCP listening hash tables to use RCU\n\nThis is the last step to be able to perform full RCU lookups\nin __inet_lookup() : After established/timewait tables, we\nadd RCU lookups to listening hash table.\n\nThe only trick here is that a socket of a given type (TCP ipv4,\nTCP ipv6, ...) can now flight between two different tables\n(established and listening) during a RCU grace period, so we\nmust use different \u0027nulls\u0027 end-of-chain values for two tables.\n\nWe define a large value :\n\n#define LISTENING_NULLS_BASE (1U \u003c\u003c 29)\n\nSo that slots in listening table are guaranteed to have different\nend-of-chain values than slots in established table. A reader can\nstill detect it finished its lookup in the right chain.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "04f258ce7f085dd69422fa01d41c8f0194a0e270",
      "tree": "948bf0a108717265df6228bcac2126ec423cb988",
      "parents": [
        "c46920dadba65856eb1a1f1ffa1b350875db1228"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Nov 23 15:42:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 23 15:42:23 2008 -0800"
      },
      "message": "net: some optimizations in af_inet\n\n1) Use eq_net() in inet_netns_ok() to speedup socket creation if\n   !CONFIG_NET_NS\n\n2) Reorder the tests about inet_ehash_secret generation (once only)\n   Use the unlikely() macro when testing if inet_ehash_secret already\n   generated.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "33cf71cee14743185305c61625c4544885055733",
      "tree": "d05c9fb2fd12d8eede22c261c2db57d30f96a73a",
      "parents": [
        "38ae07e44bb2dc86770555a1acafcb937ec74478"
      ],
      "author": {
        "name": "Petr Tesarik",
        "email": "ptesarik@suse.cz",
        "time": "Fri Nov 21 16:42:58 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 21 16:42:58 2008 -0800"
      },
      "message": "tcp: Do not use TSO/GSO when there is urgent data\n\nThis patch fixes http://bugzilla.kernel.org/show_bug.cgi?id\u003d12014\n\nSince most (if not all) implementations of TSO and even the in-kernel\nsoftware GSO do not update the urgent pointer when splitting a large\nsegment, it is necessary to turn off TSO/GSO for all outgoing traffic\nwith the URG pointer set.\n\nLooking at tcp_current_mss (and the preceding comment) I even think\nthis was the original intention. However, this approach is insufficient,\nbecause TSO/GSO is turned off only for newly created frames, not for\nframes which were already pending at the arrival of a message with\nMSG_OOB set. These frames were created when TSO/GSO was enabled,\nso they may be large, and they will have the urgent pointer set\nin tcp_transmit_skb().\n\nWith this patch, such large packets will be fragmented again before\ngoing to the transmit routine.\n\nAs a side note, at least the following NICs are known to screw up\nthe urgent pointer in the TCP header when doing TSO:\n\n\tIntel 82566MM (PCI ID 8086:1049)\n\tIntel 82566DC (PCI ID 8086:104b)\n\tIntel 82541GI (PCI ID 8086:1076)\n\tBroadcom NetXtreme II BCM5708 (PCI ID 14e4:164c)\n\nSigned-off-by: Petr Tesarik \u003cptesarik@suse.cz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7e3aab4a9cd7d37f80eee75bebb6a71347f82476",
      "tree": "78019d607b6e72ca83c65695ee017262e471ef81",
      "parents": [
        "176301e82190adb70f9bdf37cd5cb08fcfcb25fb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 21 16:39:19 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 21 16:39:19 2008 -0800"
      },
      "message": "inet_diag: Missed conversion after changing inet ehash lockl to spinlocks.\n\nThey are no longer a rwlocks.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9db66bdcc83749affe61c61eb8ff3cf08f42afec",
      "tree": "81bb20e4f569d3b44731498428277db9d77fa7a9",
      "parents": [
        "b8c26a33c8b6f0a150e9cb38ed80b890be55395c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Nov 20 20:39:09 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 20:39:09 2008 -0800"
      },
      "message": "net: convert TCP/DCCP ehash rwlocks to spinlocks\n\nNow TCP \u0026 DCCP use RCU lookups, we can convert ehash rwlocks to spinlocks.\n\n/proc/net/tcp and other seq_file \u0027readers\u0027 can safely be converted to \u0027writers\u0027.\n\nThis should speedup writers, since spin_lock()/spin_unlock()\nonly use one atomic operation instead of two for write_lock()/write_unlock()\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b8c26a33c8b6f0a150e9cb38ed80b890be55395c",
      "tree": "cc370525dab23ecbf131fa9a6a6b49fc8fa6af25",
      "parents": [
        "1326c3d5a4b792a2b15877feb7fb691f8945d203"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Nov 20 20:34:29 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 20:34:29 2008 -0800"
      },
      "message": "ipgre: convert to netdevice_ops\n\nConvert ipgre tunnel to netdevice ops.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "23a12b14715e2dcd34dc8002927263ad3437344c",
      "tree": "b35e56dc098e97153a8541ae43d90d50f0a155ea",
      "parents": [
        "748ff68fad9600593c6abe47856037602bd5d133"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Nov 20 20:33:21 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 20:33:21 2008 -0800"
      },
      "message": "ipip: convert to net_device_ops\n\nConvert to network device ops. Needed to change to directly call\nthe init routine since two sides share same ops.  In the process\nfound by inspection a device ref count leak if register_netdevice failed.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "007c3838d9fdcc8fdaea87e4879ec3759f016ed5",
      "tree": "67f09220e48797dc2799a7db6b0b4f5cc8a99ac3",
      "parents": [
        "aa18e9e88c863a58f6ea63eeee0e740be071fdcf"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Nov 20 20:28:35 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 20:28:35 2008 -0800"
      },
      "message": "ipmr: convert ipmr virtual interface to net_device_ops\n\nConvert to new network device ops interface.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ab33d51713d6d60c7677c0d020910a8cb37e513",
      "tree": "546c2ff099b2757e75cf34ddace874f1220f740e",
      "parents": [
        "7be6065b39c3f1cfa796667eac1a2170465acc91",
        "13d428afc007fcfcd6deeb215618f54cf9c0cae6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 16:44:00 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 16:44:00 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/ixgbe/ixgbe_main.c\n\tinclude/net/mac80211.h\n\tnet/phonet/af_phonet.c\n"
    },
    {
      "commit": "21d1a161f6b1fff154e3614a6b5a2111fa7a4191",
      "tree": "dac48eb0f355ec46e565577c43efa7cb9c8f8fb1",
      "parents": [
        "00b5e50549aa9da770f1161907b4ed68aa4ece3a"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu Nov 20 01:54:27 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 01:54:27 2008 -0800"
      },
      "message": "net: ip_sockglue.c add static, annotate ports\u0027 endianness\n\nFixes sparse warnings:\nnet/ipv4/ip_sockglue.c:146:15: warning: incorrect type in assignment (different base types)\nnet/ipv4/ip_sockglue.c:146:15:    expected restricted __be16 [assigned] [usertype] sin_port\nnet/ipv4/ip_sockglue.c:146:15:    got unsigned short [unsigned] [short] [usertype] \u003cnoident\u003e\nnet/ipv4/ip_sockglue.c:130:6: warning: symbol \u0027ip_cmsg_recv_dstaddr\u0027 was not declared. Should it be static?\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c82838458200ec4167ce7083b0a17474150c5bf7",
      "tree": "5498ee0aa72c28c8e712fe5a30cd5e48aac1b9bf",
      "parents": [
        "a134f85c131ffd56720e38af2967ec6265480757"
      ],
      "author": {
        "name": "Balazs Scheidler",
        "email": "bazsi@balabit.hu",
        "time": "Thu Nov 20 01:08:06 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 01:08:06 2008 -0800"
      },
      "message": "TPROXY: supply a struct flowi-\u003eflags argument in inet_sk_rebuild_header()\n\n    inet_sk_rebuild_header() does a new route lookup if the dst_entry\n    associated with a socket becomes stale. However inet_sk_rebuild_header()\n    didn\u0027t use struct flowi-\u003eflags, causing the route lookup to\n    fail for foreign-bound IP_TRANSPARENT sockets, causing an error\n    state to be set for the sockets in question.\n\nSigned-off-by: Balazs Scheidler \u003cbazsi@balabit.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a134f85c131ffd56720e38af2967ec6265480757",
      "tree": "855f671667da2643274af8d580e16843f4baa393",
      "parents": [
        "b88ed5cc884e4c28d787cf0912b8635376f16a87"
      ],
      "author": {
        "name": "Balazs Scheidler",
        "email": "bazsi@balabit.hu",
        "time": "Thu Nov 20 01:07:24 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 01:07:24 2008 -0800"
      },
      "message": "TPROXY: fill struct flowi-\u003eflags in udp_sendmsg()\n\n    udp_sendmsg() didn\u0027t fill struct flowi-\u003eflags, which means that\n    the route lookup would fail for non-local IPs even if the\n    IP_TRANSPARENT sockopt was set.\n\n    This prevents sendto() to work properly for UDP sockets, whereas\n    bind(foreign-ip) + connect() + send() worked fine.\n\nSigned-off-by: Balazs Scheidler \u003cbazsi@balabit.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5caea4ea7088e80ac5410d04660346094608b909",
      "tree": "fad95133683c002d24ff5de7fb756dad806b41ed",
      "parents": [
        "d8b83c57a7e497cba9b5cb156e63176323035785"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Nov 20 00:40:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 00:40:07 2008 -0800"
      },
      "message": "net: listening_hash get a spinlock per bucket\n\nThis patch prepares RCU migration of listening_hash table for\nTCP/DCCP protocols.\n\nlistening_hash table being small (32 slots per protocol), we add\na spinlock for each slot, instead of a single rwlock for whole table.\n\nThis should reduce hold time of readers, and writers concurrency.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5bc3eb7e2f0026f246d939851109df99e8e9f64a",
      "tree": "6da63169e066a07db21cc5268ac97ceb4c366c1c",
      "parents": [
        "54a30c975b6b27c0c9268461b647576b146d39bb"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Nov 19 21:52:05 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 19 22:42:41 2008 -0800"
      },
      "message": "ip: convert to net_device_ops for ioctl\n\nConvert to net_device_ops function table pointer for ioctl.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "07f0757a6808f2f36a0e58c3a54867ccffdb8dc9",
      "tree": "e04b573c3f1471ff21c6b2499682a620f4db7eae",
      "parents": [
        "a7a0d6a87b70f7b2bab5281fc0fd443772bd0795"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Nov 19 15:44:53 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 19 15:44:53 2008 -0800"
      },
      "message": "include/net net/ - csum_partial - remove unnecessary casts\n\nThe first argument to csum_partial is const void *\ncasts to char/u8 * are not necessary\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a7a0d6a87b70f7b2bab5281fc0fd443772bd0795",
      "tree": "adb4978c449d9ae570e848910ac777dd513277ac",
      "parents": [
        "14e943db133489c98d426a0dcfce4a99c6e8ad97"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Nov 19 15:43:27 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 19 15:43:27 2008 -0800"
      },
      "message": "net: inet_diag_handler structs can be const\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c3e388964baa00d8c3960f23e8c8a1fb3966759e",
      "tree": "29014a69e1702a641bd782838050db47b7de9c19",
      "parents": [
        "7f0f598a0069d1ab072375965a4b69137233169c"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Wed Nov 19 14:07:41 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 19 14:07:41 2008 -0800"
      },
      "message": "net: fix ip_mr_init() error path\n\nSimilarly to IPv6 ip6_mr_init() (fixed last week), the order of cleanup\noperations in the error/exit section of ip_mr_init() is completely \ninversed. It should be the other way around.\nAlso a del_timer() is missing in the error path.\n\nI should have guessed last week that this same error existed in ipmr.c\ntoo, as ip6mr.c is largely inspired by ipmr.c.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "198d6ba4d7f48c94f990f4604f0b3d73925e0ded",
      "tree": "56bbdf8ba2553c23c8099da9344a8f1d1aba97ab",
      "parents": [
        "9a57f7fabd383920585ed8b74eacd117c6551f2d",
        "7f0f598a0069d1ab072375965a4b69137233169c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 18 23:38:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 18 23:38:23 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/isdn/i4l/isdn_net.c\n\tfs/cifs/connect.c\n"
    },
    {
      "commit": "f3a5c547012a09f38f7c27b17a8e3150b69cd259",
      "tree": "4d1d47382a4a445fc7ef7431bcf5d06b7cca8539",
      "parents": [
        "e50a906e0200084f04f8f3b7c3a14b0442d1347f",
        "4e14e833ac3b97a4aa8803eea49f899adc5bb5f4"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Nov 18 18:52:37 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Nov 18 18:52:37 2008 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tfs/cifs/misc.c\n\nMerge to resolve above, per the patch below.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n\ndiff --cc fs/cifs/misc.c\nindex ec36410,addd1dc..0000000\n--- a/fs/cifs/misc.c\n+++ b/fs/cifs/misc.c\n@@@ -347,13 -338,13 +338,13 @@@ header_assemble(struct smb_hdr *buffer\n  \t\t/*  BB Add support for establishing new tCon and SMB Session  */\n  \t\t/*      with userid/password pairs found on the smb session   */\n  \t\t/*\tfor other target tcp/ip addresses \t\tBB    */\n -\t\t\t\tif (current-\u003efsuid !\u003d treeCon-\u003eses-\u003elinux_uid) {\n +\t\t\t\tif (current_fsuid() !\u003d treeCon-\u003eses-\u003elinux_uid) {\n  \t\t\t\t\tcFYI(1, (\"Multiuser mode and UID \"\n  \t\t\t\t\t\t \"did not match tcon uid\"));\n- \t\t\t\t\tread_lock(\u0026GlobalSMBSeslock);\n- \t\t\t\t\tlist_for_each(temp_item, \u0026GlobalSMBSessionList) {\n- \t\t\t\t\t\tses \u003d list_entry(temp_item, struct cifsSesInfo, cifsSessionList);\n+ \t\t\t\t\tread_lock(\u0026cifs_tcp_ses_lock);\n+ \t\t\t\t\tlist_for_each(temp_item, \u0026treeCon-\u003eses-\u003eserver-\u003esmb_ses_list) {\n+ \t\t\t\t\t\tses \u003d list_entry(temp_item, struct cifsSesInfo, smb_ses_list);\n -\t\t\t\t\t\tif (ses-\u003elinux_uid \u003d\u003d current-\u003efsuid) {\n +\t\t\t\t\t\tif (ses-\u003elinux_uid \u003d\u003d current_fsuid()) {\n  \t\t\t\t\t\t\tif (ses-\u003eserver \u003d\u003d treeCon-\u003eses-\u003eserver) {\n  \t\t\t\t\t\t\t\tcFYI(1, (\"found matching uid substitute right smb_uid\"));\n  \t\t\t\t\t\t\t\tbuffer-\u003eUid \u003d ses-\u003eSuid;\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": "88ab1932eac721c6e7336708558fa5ed02c85c80",
      "tree": "c8788a1e3de08100bca341fa4180adfe5d02880f",
      "parents": [
        "bbaffaca4810de1a25e32ecaf836eeaacc7a3d11"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Nov 16 19:39:21 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 16 19:39:21 2008 -0800"
      },
      "message": "udp: Use hlist_nulls in UDP RCU code\n\nThis is a straightforward patch, using hlist_nulls infrastructure.\n\nRCUification already done on UDP two weeks ago.\n\nUsing hlist_nulls permits us to avoid some memory barriers, both\nat lookup time and delete time.\n\nPatch is large because it adds new macros to include/net/sock.h.\nThese macros will be used by TCP \u0026 DCCP in next patch.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e8b2dfe9b4501ed0047459b2756ba26e5a940a69",
      "tree": "6f7d497284a8951b8681517f7866851b32a7b02e",
      "parents": [
        "8164f1b79731ad8ad9c713dc53d587a3b746f82f"
      ],
      "author": {
        "name": "Balazs Scheidler",
        "email": "bazsi@balabit.hu",
        "time": "Sun Nov 16 19:32:39 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 16 19:32:39 2008 -0800"
      },
      "message": "TPROXY: implemented IP_RECVORIGDSTADDR socket option\n\nIn case UDP traffic is redirected to a local UDP socket,\nthe originally addressed destination address/port\ncannot be recovered with the in-kernel tproxy.\n\nThis patch adds an IP_RECVORIGDSTADDR sockopt that enables\na IP_ORIGDSTADDR ancillary message in recvmsg(). This\nancillary message contains the original destination address/port\nof the packet being received.\n\nSigned-off-by: Balazs Scheidler \u003cbazsi@balabit.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8164f1b79731ad8ad9c713dc53d587a3b746f82f",
      "tree": "d9e9cf462fccbfbc217b064dcf41789033faf7e9",
      "parents": [
        "6ea7ae1d0fc02a6c4ccd27e43346f67c44226e7a"
      ],
      "author": {
        "name": "Ben Greear",
        "email": "greearb@candelatech.com",
        "time": "Sun Nov 16 19:19:38 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 16 19:19:38 2008 -0800"
      },
      "message": "ipv4: Fix ARP behavior with many mac-vlans\n\nBen Greear wrote:\n\u003e I have 500 mac-vlans on a system talking to 500 other\n\u003e mac-vlans.  My problem is that the arp-table gets extremely\n\u003e huge because every time an arp-request comes in on all mac-vlans,\n\u003e a stale arp entry is added for each mac-vlan.  I have filtering\n\u003e turned on, but that doesn\u0027t help because the neigh_event_ns call\n\u003e below will cause a stale neighbor entry to be created regardless\n\u003e of whether a replay will be sent or not.\n\u003e Maybe the neigh_event code should be below the checks for dont_send,\n\u003e and only create check neigh_event_ns if we are !dont_send?\n\nThe attached patch makes it work much better for me.  The patch\nwill cause the code to NOT create a stale neighbor entry if we\nare not going to respond to the ARP request.  The old code\n*would* create a stale entry even if we are not going to respond.\n\nSigned-off-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2b828925652340277a889cbc11b2d0637f7cdaf7",
      "tree": "32fcb3d3e466fc419fad2d3717956a5b5ad3d35a",
      "parents": [
        "3a3b7ce9336952ea7b9564d976d068a238976c9d",
        "58e20d8d344b0ee083febb18c2b021d2427e56ca"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 11:29:12 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 11:29:12 2008 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tsecurity/keys/internal.h\n\tsecurity/keys/process_keys.c\n\tsecurity/keys/request_key.c\n\nFixed conflicts above by using the non \u0027tsk\u0027 versions.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "d76b0d9b2d87cfc95686e148767cbf7d0e22bdc0",
      "tree": "1a2956614018d245facb256ffb8662568cdabcd4",
      "parents": [
        "1d045980e1eff4800472f0e81df9460640c8eee9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:25 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:25 2008 +1100"
      },
      "message": "CRED: Use creds in file structs\n\nAttach creds to file structs and discard f_uid/f_gid.\n\nfile_operations::open() methods (such as hppfs_open()) should use file-\u003ef_cred\nrather than current_cred().  At the moment file-\u003ef_cred will be current_cred()\nat this point.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    }
  ],
  "next": "9c0188acf6dd6990bac9cd906cd554a1476c6d12"
}
