)]}'
{
  "log": [
    {
      "commit": "b4ff3c90e6066bacc8a92111752fe9e4f4c45cca",
      "tree": "b64a78c4a7950e6b43c3e882dfc6dbe3a88aa2ea",
      "parents": [
        "5c7e57f7cddb83d81d83fefa5822dfe80891130e"
      ],
      "author": {
        "name": "Nagendra Tomar",
        "email": "tomer_iisc@yahoo.com",
        "time": "Fri Nov 26 14:26:27 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 18:18:44 2010 -0800"
      },
      "message": "inet: Fix __inet_inherit_port() to correctly increment bsockets and num_owners\n\ninet sockets corresponding to passive connections are added to the bind hash\nusing ___inet_inherit_port(). These sockets are later removed from the bind\nhash using __inet_put_port(). These two functions are not exactly symmetrical.\n__inet_put_port() decrements hashinfo-\u003ebsockets and tb-\u003enum_owners, whereas\n___inet_inherit_port() does not increment them. This results in both of these\ngoing to -ve values.\n\nThis patch fixes this by calling inet_bind_hash() from ___inet_inherit_port(),\nwhich does the right thing.\n\n\u0027bsockets\u0027 and \u0027num_owners\u0027 were introduced by commit a9d8f9110d7e953c\n(inet: Allowing more than 64k connections and heavily optimize bind(0))\n\nSigned-off-by: Nagendra Singh Tomar \u003ctomer_iisc@yahoo.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0147fc058d11bd4009b126d09974d2c8f48fef15",
      "tree": "f73f0e82f7774938dd7190c6a810e0ccb2466f2b",
      "parents": [
        "8475ef9fd16cadbfc692f78e608d1941a340beb2"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Nov 22 12:54:21 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 10:39:45 2010 -0800"
      },
      "message": "tcp: restrict net.ipv4.tcp_adv_win_scale (#20312)\n\ntcp_win_from_space() does the following:\n\n      if (sysctl_tcp_adv_win_scale \u003c\u003d 0)\n              return space \u003e\u003e (-sysctl_tcp_adv_win_scale);\n      else\n              return space - (space \u003e\u003e sysctl_tcp_adv_win_scale);\n\n\"space\" is int.\n\nAs per C99 6.5.7 (3) shifting int for 32 or more bits is\nundefined behaviour.\n\nIndeed, if sysctl_tcp_adv_win_scale is exactly 32,\nspace \u003e\u003e 32 equals space and function returns 0.\n\nWhich means we busyloop in tcp_fixup_rcvbuf().\n\nRestrict net.ipv4.tcp_adv_win_scale to [-31, 31].\n\nFix https://bugzilla.kernel.org/show_bug.cgi?id\u003d20312\n\nSteps to reproduce:\n\n      echo 32 \u003e/proc/sys/net/ipv4/tcp_adv_win_scale\n      wget www.kernel.org\n      [softlockup]\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8475ef9fd16cadbfc692f78e608d1941a340beb2",
      "tree": "6e582cc6eed642094c87fd1075bc0d7eade41602",
      "parents": [
        "4cb6a614ba0e58cae8abdadbf73bcb4d37a3f599"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Nov 22 03:26:12 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 27 22:57:48 2010 -0800"
      },
      "message": "netns: Don\u0027t leak others\u0027 openreq-s in proc\n\nThe /proc/net/tcp leaks openreq sockets from other namespaces.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c39508d6f118308355468314ff414644115a07f3",
      "tree": "c69cfd271855fa4b81398f9ddcb3dc286489d71a",
      "parents": [
        "4448008eb12f4b6bb9993584de8ec1d20b708d6f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 24 11:47:22 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 24 11:47:22 2010 -0800"
      },
      "message": "tcp: Make TCP_MAXSEG minimum more correct.\n\nUse TCP_MIN_MSS instead of constant 64.\n\nReported-by: Min Zhang \u003cmzhang@mvista.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7a1c8e5ab120a5f352e78bbc1fa5bb64e6f23639",
      "tree": "9c9b81e173c59d4be5590be5101c405457acab83",
      "parents": [
        "a6c36ee677607b02d8ecc88e8a12785418b88107"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sat Nov 20 07:46:35 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 21 10:04:04 2010 -0800"
      },
      "message": "net: allow GFP_HIGHMEM in __vmalloc()\n\nWe forgot to use __GFP_HIGHMEM in several __vmalloc() calls.\n\nIn ceph, add the missing flag.\n\nIn fib_trie.c, xfrm_hash.c and request_sock.c, using vzalloc() is\ncleaner and allows using HIGHMEM pages as well.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7d98ffd8c2d1da6cec5d84eba42c4aa836a93f85",
      "tree": "398437e234367d8184bbaed1b3af8dc8ed7d5d3a",
      "parents": [
        "4c62ab9c538bc09c38093fa079e6902ea4d42b98"
      ],
      "author": {
        "name": "Ulrich Weber",
        "email": "uweber@astaro.com",
        "time": "Fri Nov 05 01:39:12 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 16 11:43:39 2010 -0800"
      },
      "message": "xfrm: update flowi saddr in icmp_send if unset\n\notherwise xfrm_lookup will fail to find correct policy\n\nSigned-off-by: Ulrich Weber \u003cuweber@astaro.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8f49c2703b33519aaaccc63f571b465b9d2b3a2d",
      "tree": "3b2db10ae8642c87c7258522e06ee56910d5b420",
      "parents": [
        "5ef41308f94dcbb3b7afc56cdef1c2ba53fa5d2f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 12 13:35:00 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 12 13:35:00 2010 -0800"
      },
      "message": "tcp: Don\u0027t change unlocked socket state in tcp_v4_err().\n\nAlexey Kuznetsov noticed a regression introduced by\ncommit f1ecd5d9e7366609d640ff4040304ea197fbc618\n(\"Revert Backoff [v3]: Revert RTO on ICMP destination unreachable\")\n\nThe RTO and timer modification code added to tcp_v4_err()\ndoesn\u0027t check sock_owned_by_user(), which if true means we\ndon\u0027t have exclusive access to the socket and therefore cannot\nmodify it\u0027s critical state.\n\nJust skip this new code block if sock_owned_by_user() is true\nand eliminate the now superfluous sock_owned_by_user() code\nblock contained within.\n\nReported-by: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCC: Damian Lukowski \u003cdamian@tvk.rwth-aachen.de\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n"
    },
    {
      "commit": "7a1abd08d52fdeddb3e9a5a33f2f15cc6a5674d2",
      "tree": "f566af2a622e5416056c70633576a1a46b8bf6aa",
      "parents": [
        "8d987e5c75107ca7515fa19e857cfa24aab6ec8f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 10 21:35:37 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 10 21:35:37 2010 -0800"
      },
      "message": "tcp: Increase TCP_MAXSEG socket option minimum.\n\nAs noted by Steve Chen, since commit\nf5fff5dc8a7a3f395b0525c02ba92c95d42b7390 (\"tcp: advertise MSS\nrequested by user\") we can end up with a situation where\ntcp_select_initial_window() does a divide by a zero (or\neven negative) mss value.\n\nThe problem is that sometimes we effectively subtract\nTCPOLEN_TSTAMP_ALIGNED and/or TCPOLEN_MD5SIG_ALIGNED from the mss.\n\nFix this by increasing the minimum from 8 to 64.\n\nReported-by: Steve Chen \u003cschen@mvista.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d987e5c75107ca7515fa19e857cfa24aab6ec8f",
      "tree": "6392c5f08f0df39d42a079336f6be3960ac404dc",
      "parents": [
        "67286640f638f5ad41a946b9a3dc75327950248f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 09 23:24:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 10 12:12:00 2010 -0800"
      },
      "message": "net: avoid limits overflow\n\nRobin Holt tried to boot a 16TB machine and found some limits were\nreached : sysctl_tcp_mem[2], sysctl_udp_mem[2]\n\nWe can switch infrastructure to use long \"instead\" of \"int\", now\natomic_long_t primitives are available for free.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nReported-by: Robin Holt \u003cholt@sgi.com\u003e\nReviewed-by: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "18943d292facbc70e6a36fc62399ae833f64671b",
      "tree": "337c4818e0cb478a4436ee5ad8d16822998bf8eb",
      "parents": [
        "aa58163a76a3aef33c7220931543d45d0fe43753"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Nov 08 11:15:54 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 09 08:26:42 2010 -0800"
      },
      "message": "inet: fix ip_mc_drop_socket()\n\ncommit 8723e1b4ad9be4444 (inet: RCU changes in inetdev_by_index())\nforgot one call site in ip_mc_drop_socket()\n\nWe should not decrease idev refcount after inetdev_by_index() call,\nsince refcount is not increased anymore.\n\nReported-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nReported-by: Miles Lane \u003cmiles.lane@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "22e76c849d505d87c5ecf3d3e6742a65f0ff4860",
      "tree": "ba8ac3765ae60f1bc8ce20d280baa741eb7b046e",
      "parents": [
        "6b8c92ba07287578718335ce409de8e8d7217e40"
      ],
      "author": {
        "name": "Nelson Elhage",
        "email": "nelhage@ksplice.com",
        "time": "Wed Nov 03 16:35:41 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 04 12:26:34 2010 -0700"
      },
      "message": "inet_diag: Make sure we actually run the same bytecode we audited.\n\nWe were using nlmsg_find_attr() to look up the bytecode by attribute when\nauditing, but then just using the first attribute when actually running\nbytecode. So, if we received a message with two attribute elements, where only\nthe second had type INET_DIAG_REQ_BYTECODE, we would validate and run different\nbytecode strings.\n\nFix this by consistently using nlmsg_find_attr everywhere.\n\nSigned-off-by: Nelson Elhage \u003cnelhage@ksplice.com\u003e\nSigned-off-by: Thomas Graf \u003ctgraf@infradead.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1f1b9c9990205759aae31b7734b0ede41a867f32",
      "tree": "aba367dd7280ff38932c881a0fcf5356bea53df2",
      "parents": [
        "cccbe5ef85284621d19e5b2b1c61cc0506bc9dee"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Nov 04 01:21:39 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 04 12:05:32 2010 -0700"
      },
      "message": "fib: fib_result_assign() should not change fib refcounts\n\nAfter commit ebc0ffae5 (RCU conversion of fib_lookup()),\nfib_result_assign()  should not change fib refcounts anymore.\n\nThanks to Michael who did the bisection and bug report.\n\nReported-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nTested-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "758cb41106e87d7e26ef3ee78f04360168460b9d",
      "tree": "873bc9328c6c210904382536eb6fdf82ff78004b",
      "parents": [
        "c00b2c9e79466d61979cd21af526cc6d5d0ee04f",
        "b5f15ac4f89f84853544c934fc7a744289e95e34"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 03 18:52:32 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 03 18:52:32 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6\n"
    },
    {
      "commit": "b5f15ac4f89f84853544c934fc7a744289e95e34",
      "tree": "35f89a706003f9e9343bd63fc5d560cf33a579a7",
      "parents": [
        "1a8b7a67224eb0c9dbd883b9bfc4938278bad370"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segooon@gmail.com",
        "time": "Wed Nov 03 08:45:06 2010 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Nov 03 08:45:06 2010 +0100"
      },
      "message": "ipv4: netfilter: ip_tables: fix information leak to userland\n\nStructure ipt_getinfo is copied to userland with the field \"name\"\nthat has the last elements unitialized.  It leads to leaking of\ncontents of kernel stack memory.\n\nSigned-off-by: Vasiliy Kulikov \u003csegooon@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "1a8b7a67224eb0c9dbd883b9bfc4938278bad370",
      "tree": "31697d77831109c760001a8a78053dab0fb74ac5",
      "parents": [
        "d817d29d0b37290d90b3a9e2a61162f1dbf2be4f"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segooon@gmail.com",
        "time": "Wed Nov 03 08:44:12 2010 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Nov 03 08:44:12 2010 +0100"
      },
      "message": "ipv4: netfilter: arp_tables: fix information leak to userland\n\nStructure arpt_getinfo is copied to userland with the field \"name\"\nthat has the last elements unitialized.  It leads to leaking of\ncontents of kernel stack memory.\n\nSigned-off-by: Vasiliy Kulikov \u003csegooon@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "3285ee3bb2e158299ff19b947e41da735980d954",
      "tree": "8235c80ec137fd080e23bdeab8eefa0d9d5c395f",
      "parents": [
        "1b803fbfcd1c35857fe52844158213507a8a5bfa"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sat Oct 30 16:21:28 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Oct 30 16:21:28 2010 -0700"
      },
      "message": "ip_gre: fix fallback tunnel setup\n\nBefore making the fallback tunnel visible to lookups, we should make\nsure it is completely setup, once ipgre_tunnel_init() had been called\nand tstats per_cpu pointer allocated.\n\nmove rcu_assign_pointer(ign-\u003etunnels_wc[0], tunnel); from\nipgre_fb_tunnel_init() to ipgre_init_net()\n\nBased on a patch from Pavel Emelyanov\n\nReported-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "64e46749224aa658d8fc0d37ea83ab20b1d7955d",
      "tree": "ac3bbe77967718ba3022c58dbbe47142ee77c6f8",
      "parents": [
        "6b1686a71e3158d3c5f125260effce171cc7852b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Oct 29 16:28:07 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Oct 29 16:28:07 2010 +0200"
      },
      "message": "netfilter: nf_nat: fix compiler warning with CONFIG_NF_CT_NETLINK\u003dn\n\nnet/ipv4/netfilter/nf_nat_core.c:52: warning: \u0027nf_nat_proto_find_get\u0027 defined but not used\nnet/ipv4/netfilter/nf_nat_core.c:66: warning: \u0027nf_nat_proto_put\u0027 defined but not used\n\nReported-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "4aa2c466a7733af093a526e9d1cdd0b3b90d47e9",
      "tree": "093d99b6c728867a8eb9548463d94661e3d0799e",
      "parents": [
        "b1424ed91076db0b19ba4141856150df9b717dde"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu Oct 28 02:00:43 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 28 10:27:03 2010 -0700"
      },
      "message": "fib: Fix fib zone and its hash leak on namespace stop\n\nWhen we stop a namespace we flush the table and free one, but the\nadded fn_zone-s (and their hashes if grown) are leaked. Need to free.\nTries releases all its stuff in the flushing code.\n\nShame on us - this bug exists since the very first make-fib-per-net\npatches in 2.6.27 :(\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "74b0b85b88aaa952023762e0280799aaae849841",
      "tree": "a3049c0efd6332785e2323581506c89d49c67538",
      "parents": [
        "1933f0c09438ed8ccfee2281b814d9b26cef336c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Oct 27 05:43:53 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 27 14:20:08 2010 -0700"
      },
      "message": "tunnels: Fix tunnels change rcu protection\n\nAfter making rcu protection for tunnels (ipip, gre, sit and ip6) a bug\nwas introduced into the SIOCCHGTUNNEL code.\n\nThe tunnel is first unlinked, then addresses change, then it is linked\nback probably into another bucket. But while changing the parms, the\nhash table is unlocked to readers and they can lookup the improper tunnel.\n\nRespective commits are b7285b79 (ipip: get rid of ipip_lock), 1507850b\n(gre: get rid of ipgre_lock), 3a43be3c (sit: get rid of ipip6_lock) and\n94767632 (ip6tnl: get rid of ip6_tnl_lock).\n\nThe quick fix is to wait for quiescent state to pass after unlinking,\nbut if it is inappropriate I can invent something better, just let me\nknow.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b914c4ea929a4ba6fb97967800dc473c31552b98",
      "tree": "630f7c81d82e580e5aa5164c0e4cf1d0dadca3ba",
      "parents": [
        "7a2b03c5175e9ddcc2a2d48ca86dea8a88b68383"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 25 23:55:38 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 27 11:37:33 2010 -0700"
      },
      "message": "inetpeer: __rcu annotations\n\nAdds __rcu annotations to inetpeer\n\t(struct inet_peer)-\u003eavl_left\n\t(struct inet_peer)-\u003eavl_right\n\nThis is a tedious cleanup, but removes one smp_wmb() from link_to_pool()\nsince we now use more self documenting rcu_assign_pointer().\n\nNote the use of RCU_INIT_POINTER() instead of rcu_assign_pointer() in\nall cases we dont need a memory barrier.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b33eab08445d86c3d0dec3111ce10df561328705",
      "tree": "381a37141d4da9cf6cb3a8c8c37c6363d856f8e4",
      "parents": [
        "e0ad61ec867fdd262804afa7a68e11fc9930c2b9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 25 21:01:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 27 11:37:32 2010 -0700"
      },
      "message": "tunnels: add __rcu annotations\n\nAdd __rcu annotations to :\n        (struct ip_tunnel)-\u003eprl\n        (struct ip_tunnel_prl_entry)-\u003enext\n        (struct xfrm_tunnel)-\u003enext\n\tstruct xfrm_tunnel *tunnel4_handlers\n\tstruct xfrm_tunnel *tunnel64_handlers\n\nAnd use appropriate rcu primitives to reduce sparse warnings if\nCONFIG_SPARSE_RCU_POINTER\u003dy\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e0ad61ec867fdd262804afa7a68e11fc9930c2b9",
      "tree": "f59451cdfa2086757e55b18b87167b0fef3de2c1",
      "parents": [
        "1c31720a74e19bb57f301350a3b03210fa2ba9e3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 25 21:02:28 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 27 11:37:31 2010 -0700"
      },
      "message": "net: add __rcu annotations to protocol\n\nAdd __rcu annotations to :\n        struct net_protocol *inet_protos\n        struct net_protocol *inet6_protos\n\nAnd use appropriate casts to reduce sparse warnings if\nCONFIG_SPARSE_RCU_POINTER\u003dy\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1c31720a74e19bb57f301350a3b03210fa2ba9e3",
      "tree": "053f29ffa53383eb003ac632971f31e1643ef1d9",
      "parents": [
        "c1b60092cf307fef12f793abf7cf8167e26a6ccf"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 25 21:02:07 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 27 11:37:31 2010 -0700"
      },
      "message": "ipv4: add __rcu annotations to routes.c\n\nAdd __rcu annotations to :\n        (struct dst_entry)-\u003ert_next\n        (struct rt_hash_bucket)-\u003echain\n\nAnd use appropriate rcu primitives to reduce sparse warnings if\nCONFIG_SPARSE_RCU_POINTER\u003dy\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ded85aa86bff953190cb893fceeecaadcab53a80",
      "tree": "abbb2c614d4b1778c2afc34038ac06e0aac14381",
      "parents": [
        "ebb9fed2defa55f2ca91c8be582c59612e9940d1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Oct 26 03:24:16 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 26 11:42:39 2010 -0700"
      },
      "message": "fib_hash: fix rcu sparse and logical errors\n\nWhile fixing CONFIG_SPARSE_RCU_POINTER errors, I had to fix accesses to\nfz-\u003efz_hash for real.\n\n-\t\u0026fz-\u003efz_hash[fn_hash(f-\u003efn_key, fz)]\n+\trcu_dereference(fz-\u003efz_hash) + fn_hash(f-\u003efn_key, fz)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "43a951e9994fd218ab4e641f94a2fc53556c3675",
      "tree": "497fe39185131f1d729c980c264562ff5cab86e8",
      "parents": [
        "0d7da9ddd9a4eb7808698d04b98bf9d62d02649b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 25 03:32:44 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 25 14:18:28 2010 -0700"
      },
      "message": "ipv4: add __rcu annotations to ip_ra_chain\n\nAdd __rcu annotations to :\n        (struct ip_ra_chain)-\u003enext\n\tstruct ip_ra_chain *ip_ra_chain;\n\nAnd use appropriate rcu primitives.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0d7da9ddd9a4eb7808698d04b98bf9d62d02649b",
      "tree": "b170122c08d47be35a056782be54573ba19fe0b0",
      "parents": [
        "1c87733d0682547050ccccb400cdac425fa43b39"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 25 03:47:05 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 25 14:18:28 2010 -0700"
      },
      "message": "net: add __rcu annotation to sk_filter\n\nAdd __rcu annotation to :\n        (struct sock)-\u003esk_filter\n\nAnd use appropriate rcu primitives to reduce sparse warnings if\nCONFIG_SPARSE_RCU_POINTER\u003dy\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f0bcf152582e7403155627a38e07bf3ef7f3cf5",
      "tree": "0dafb9ea61fa01bb8850ee2bcce97b98c23a7c8f",
      "parents": [
        "3cc77ec74e1583b50b8405114cdbd6b8ebb8c474"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Oct 24 21:33:16 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 25 13:09:45 2010 -0700"
      },
      "message": "tunnels: add _rcu annotations\n\n(struct ip6_tnl)-\u003enext is rcu protected :\n(struct ip_tunnel)-\u003enext is rcu protected :\n(struct xfrm6_tunnel)-\u003enext is rcu protected :\n\nadd __rcu annotation and proper rcu primitives.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "229aebb873e29726b91e076161649cf45154b0bf",
      "tree": "acc02a3702215bce8d914f4c8cc3d7a1382b1c67",
      "parents": [
        "8de547e1824437f3c6af180d3ed2162fa4b3f389",
        "50a23e6eec6f20d55a3a920e47adb455bff6046e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  Update broken web addresses in arch directory.\n  Update broken web addresses in the kernel.\n  Revert \"drivers/usb: Remove unnecessary return\u0027s from void functions\" for musb gadget\n  Revert \"Fix typo: configuation \u003d\u003e configuration\" partially\n  ida: document IDA_BITMAP_LONGS calculation\n  ext2: fix a typo on comment in ext2/inode.c\n  drivers/scsi: Remove unnecessary casts of private_data\n  drivers/s390: Remove unnecessary casts of private_data\n  net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data\n  drivers/infiniband: Remove unnecessary casts of private_data\n  drivers/gpu/drm: Remove unnecessary casts of private_data\n  kernel/pm_qos_params.c: Remove unnecessary casts of private_data\n  fs/ecryptfs: Remove unnecessary casts of private_data\n  fs/seq_file.c: Remove unnecessary casts of private_data\n  arm: uengine.c: remove C99 comments\n  arm: scoop.c: remove C99 comments\n  Fix typo configue \u003d\u003e configure in comments\n  Fix typo: configuation \u003d\u003e configuration\n  Fix typo interrest[ing|ed] \u003d\u003e interest[ing|ed]\n  Fix various typos of valid in comments\n  ...\n\nFix up trivial conflicts in:\n\tdrivers/char/ipmi/ipmi_si_intf.c\n\tdrivers/usb/gadget/rndis.c\n\tnet/irda/irnet/irnet_ppp.c\n"
    },
    {
      "commit": "5f05647dd81c11a6a165ccc8f0c1370b16f3bcb0",
      "tree": "7851ef1c93aa1aba7ef327ca4b75fd35e6d10f29",
      "parents": [
        "02f36038c568111ad4fc433f6fa760ff5e38fab4",
        "ec37a48d1d16c30b655ac5280209edf52a6775d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 11:47:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 11:47:02 2010 -0700"
      },
      "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: (1699 commits)\n  bnx2/bnx2x: Unsupported Ethtool operations should return -EINVAL.\n  vlan: Calling vlan_hwaccel_do_receive() is always valid.\n  tproxy: use the interface primary IP address as a default value for --on-ip\n  tproxy: added IPv6 support to the socket match\n  cxgb3: function namespace cleanup\n  tproxy: added IPv6 support to the TPROXY target\n  tproxy: added IPv6 socket lookup function to nf_tproxy_core\n  be2net: Changes to use only priority codes allowed by f/w\n  tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabled\n  tproxy: added tproxy sockopt interface in the IPV6 layer\n  tproxy: added udp6_lib_lookup function\n  tproxy: added const specifiers to udp lookup functions\n  tproxy: split off ipv6 defragmentation to a separate module\n  l2tp: small cleanup\n  nf_nat: restrict ICMP translation for embedded header\n  can: mcp251x: fix generation of error frames\n  can: mcp251x: fix endless loop in interrupt handler if CANINTF_MERRF is set\n  can-raw: add msg_flags to distinguish local traffic\n  9p: client code cleanup\n  rds: make local functions/variables static\n  ...\n\nFix up conflicts in net/core/dev.c, drivers/net/pcmcia/smc91c92_cs.c and\ndrivers/net/wireless/ath/ath9k/debug.c as per David\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "888a6f77e0418b049f83d37547c209b904d30af4",
      "tree": "42cdb9f781d2177e6b380e69a66a27ec7705f51f",
      "parents": [
        "31b7eab27a314b153d8fa07ba9e9ec00a98141e1",
        "6506cf6ce68d78a5470a8360c965dafe8e4b78e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:12 2010 -0700"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (52 commits)\n  sched: fix RCU lockdep splat from task_group()\n  rcu: using ACCESS_ONCE() to observe the jiffies_stall/rnp-\u003eqsmask value\n  sched: suppress RCU lockdep splat in task_fork_fair\n  net: suppress RCU lockdep false positive in sock_update_classid\n  rcu: move check from rcu_dereference_bh to rcu_read_lock_bh_held\n  rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter\n  rcu: Add tracing data to support queueing models\n  rcu: fix sparse errors in rcutorture.c\n  rcu: only one evaluation of arg in rcu_dereference_check() unless sparse\n  kernel: Remove undead ifdef CONFIG_DEBUG_LOCK_ALLOC\n  rcu: fix _oddness handling of verbose stall warnings\n  rcu: performance fixes to TINY_PREEMPT_RCU callback checking\n  rcu: upgrade stallwarn.txt documentation for CPU-bound RT processes\n  vhost: add __rcu annotations\n  rcu: add comment stating that list_empty() applies to RCU-protected lists\n  rcu: apply TINY_PREEMPT_RCU read-side speedup to TREE_PREEMPT_RCU\n  rcu: combine duplicate code, courtesy of CONFIG_PREEMPT_RCU\n  rcu: Upgrade srcu_read_lock() docbook about SRCU grace periods\n  rcu: document ways of stalling updates in low-memory situations\n  rcu: repair code-duplication FIXMEs\n  ...\n"
    },
    {
      "commit": "9941fb62762253774cc6177d0b9172ece5133fe1",
      "tree": "641fc2b376e2f84c7023aa0cd8b9d76f954cc3a1",
      "parents": [
        "a5190b4eea1f1c53ee26b3d1176441cafa8e7f79",
        "3b1a1ce6f418cb7ab35eb55c8a6575987a524e30"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 21 08:21:34 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 21 08:21:34 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6\n"
    },
    {
      "commit": "3b1a1ce6f418cb7ab35eb55c8a6575987a524e30",
      "tree": "a3ebee69d6370631746a348f5852eeb955df5bd3",
      "parents": [
        "cc6eb433856983e91071469c4ce57accb6947ccb",
        "b0aeef30433ea6854e985c2e9842fa19f51b95cc"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Oct 21 16:25:51 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Oct 21 16:25:51 2010 +0200"
      },
      "message": "Merge branch \u0027for-patrick\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/horms/lvs-test-2.6\n"
    },
    {
      "commit": "b0aeef30433ea6854e985c2e9842fa19f51b95cc",
      "tree": "aedeebe5ef7cc56abece7bd103fb6229179a11bd",
      "parents": [
        "0d79641a96d612aaa6d57a4d4f521d7ed9c9ccdd"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Mon Oct 11 11:23:07 2010 +0300"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Oct 21 13:30:02 2010 +0200"
      },
      "message": "nf_nat: restrict ICMP translation for embedded header\n\n \tSkip ICMP translation of embedded protocol header\nif NAT bits are not set. Needed for IPVS to see the original\nembedded addresses because for IPVS traffic the IPS_SRC_NAT_BIT\nand IPS_DST_NAT_BIT bits are not set. It happens when IPVS performs\nDNAT for client packets after using nf_conntrack_alter_reply\nto expect replies from real server.\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "093d282321daeb19c107e5f1f16d7f68484f3ade",
      "tree": "36e9eed23573068819bf67a91caac6ebf60d0d7c",
      "parents": [
        "6006db84a91838813cdad8a6622a4e39efe9ea47"
      ],
      "author": {
        "name": "Balazs Scheidler",
        "email": "bazsi@balabit.hu",
        "time": "Thu Oct 21 13:06:43 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Oct 21 13:06:43 2010 +0200"
      },
      "message": "tproxy: fix hash locking issue when using port redirection in __inet_inherit_port()\n\nWhen __inet_inherit_port() is called on a tproxy connection the wrong locks are\nheld for the inet_bind_bucket it is added to. __inet_inherit_port() made an\nimplicit assumption that the listener\u0027s port number (and thus its bind bucket).\nUnfortunately, if you\u0027re using the TPROXY target to redirect skbs to a\ntransparent proxy that assumption is not true anymore and things break.\n\nThis patch adds code to __inet_inherit_port() so that it can handle this case\nby looking up or creating a new bind bucket for the child socket and updates\ncallers of __inet_inherit_port() to gracefully handle __inet_inherit_port()\nfailing.\n\nReported by and original patch from Stephen Buck \u003cstephen.buck@exinda.com\u003e.\nSee http://marc.info/?t\u003d128169268200001\u0026r\u003d1\u0026w\u003d2 for the original discussion.\n\nSigned-off-by: KOVACS Krisztian \u003chidden@balabit.hu\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "9b0c290e78d667e6a483bde8c7cef7dd15f49017",
      "tree": "ed68f6cbcc9a512106217694b16a846147cdf54a",
      "parents": [
        "7b5edbc4cfe2297b0915adea5aa1eafcafadbf06"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Oct 20 22:03:38 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 21 03:09:41 2010 -0700"
      },
      "message": "fib: introduce fib_alias_accessed() helper\n\nPerf tools session at NFWS 2010 pointed out a false sharing on struct\nfib_alias that can be avoided pretty easily, if we set FA_S_ACCESSED bit\nonly if needed (ie : not already set)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ae4de0cdf855305765592647025bde55e85e451",
      "tree": "b0e4392dea4fe14c562f7e61c2aecdddfdbb0cec",
      "parents": [
        "1cc63249adfa957b34ca51effdee90ff8261d63f"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Oct 13 16:25:00 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Oct 21 10:12:52 2010 +1100"
      },
      "message": "secmark: export secctx, drop secmark in procfs\n\nThe current secmark code exports a secmark\u003d field which just indicates if\nthere is special labeling on a packet or not.  We drop this field as it\nisn\u0027t particularly useful and instead export a new field secctx\u003d which is\nthe actual human readable text label.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "27b75c95f10d249574d9c4cb9dab878107faede8",
      "tree": "466656d86aaa395951e12b50903e730203c5f86f",
      "parents": [
        "e6484930d7c73d324bccda7d43d131088da697b9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 15 05:44:11 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 20 03:02:23 2010 -0700"
      },
      "message": "net: avoid RCU for NOCACHE dst\n\nThere is no point using RCU for dst we allocate for a very short time\n(used once).\n\nChange dst_release() to take DST_NOCACHE into account, but also change\nskb_dst_set_noref() to force a refcount increment for such dst.\n\nThis is a _huge_ gain, because we dont waste memory to store xx thousand\nof dsts. Instead of queueing them to RCU, we can free them instantly.\n\nCPU caches can stay hot, re-using same memory blocks to hold temporary\ndsts.\n\nNote : remove unneeded smp_mb__before_atomic_dec(); in dst_release(),\nsince atomic_dec_return() implies a full memory barrier.\n\nStress test, 160.000.000 udp frames sent, IP route cache disabled\n(DDOS).\n\nBefore:\n\nreal    0m38.091s\nuser    0m13.189s\nsys     7m53.018s\n\nAfter:\n\nreal\t0m29.946s\nuser\t0m12.157s\nsys\t7m40.605s\n\nFor reference, if IP route cache was enabled :\n\nreal\t0m32.030s\nuser\t0m10.521s\nsys\t8m15.243s\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8723e1b4ad9be4444423b4d41509ce859a629649",
      "tree": "00b0121c12e62736807e998b22b8964f1a5e1df9",
      "parents": [
        "9e917dca74138cccf398ce8bb924c7fd2980ec1d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Oct 19 00:39:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 19 03:50:48 2010 -0700"
      },
      "message": "inet: RCU changes in inetdev_by_index()\n\nConvert inetdev_by_index() to not increment in_dev refcount.\n\nCallers hold RCU or RTNL, and should not decrement in_dev refcount.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9e917dca74138cccf398ce8bb924c7fd2980ec1d",
      "tree": "9aeaa145a5a2b4a513a814eb41f05bd2446ddfe5",
      "parents": [
        "5d6076bb2e642bbcb1263c6cf239b9a1f3d0df08"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Oct 19 00:39:18 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 19 03:50:47 2010 -0700"
      },
      "message": "net: avoid a dev refcount in ip_mc_find_dev()\n\nWe hold RTNL in ip_mc_find_dev(), no need to touch device refcount.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27a954bd560f3e385bbed38fde3051fe718b8d75",
      "tree": "83d46eb7d984fd1cd5eaa55c20267a88b4ab9a3a",
      "parents": [
        "a47d60561e111f5009ad0964069cfff77f76dbaa"
      ],
      "author": {
        "name": "Andy Walls",
        "email": "awalls@md.metrocast.net",
        "time": "Sun Oct 17 15:11:22 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 18 07:22:50 2010 -0700"
      },
      "message": "IPv4: route.c: Change checks against 0xffffffff to ipv4_is_lbcast()\n\nChange a few checks against the hardcoded broadcast address,\n0xffffffff, to ipv4_is_lbcast().  Remove some existing checks\nusing ipv4_is_lbcast() that are now obviously superfluous.\n\nSigned-off-by: Andy Walls \u003cawalls@md.metrocast.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "76b6717bc6ccb715b04e36efc26566a6313ede5f",
      "tree": "eecbb09c5775cd3f092cc91e5f15c251c25d3b82",
      "parents": [
        "a91fd267e327ca7599654b4e9ed7b62c5adaccee"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Oct 18 11:13:30 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Oct 18 11:13:30 2010 +0200"
      },
      "message": "netfilter: fix kconfig unmet dependency warning\n\nFix netfilter kconfig unmet dependencies warning \u0026 spell out\n\"compatible\" while there.\n\nwarning: (IP_NF_TARGET_TTL \u0026\u0026 NET \u0026\u0026 INET \u0026\u0026 NETFILTER \u0026\u0026 IP_NF_IPTABLES \u0026\u0026 NETFILTER_ADVANCED || IP6_NF_TARGET_HL \u0026\u0026 NET \u0026\u0026 INET \u0026\u0026 IPV6 \u0026\u0026 NETFILTER \u0026\u0026 IP6_NF_IPTABLES \u0026\u0026 NETFILTER_ADVANCED) selects NETFILTER_XT_TARGET_HL which has unmet direct dependencies ((IP_NF_MANGLE || IP6_NF_MANGLE) \u0026\u0026 NETFILTER_ADVANCED)\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "631dd1a885b6d7e9f6f51b4e5b311c2bb04c323c",
      "tree": "c431fa3479c1d35842fb5635ed7ccd487d063a62",
      "parents": [
        "d7eccbbae84b2ee7dbb756e60287c4b47071444e"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Mon Oct 18 11:03:14 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Oct 18 11:03:14 2010 +0200"
      },
      "message": "Update broken web addresses in the kernel.\n\nThe patch below updates broken web addresses in the kernel\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nCc: Maciej W. Rozycki \u003cmacro@linux-mips.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Finn Thain \u003cfthain@telegraphics.com.au\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: Dimitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nCc: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nAcked-by: Ben Pfaff \u003cblp@cs.stanford.edu\u003e\nAcked-by: Hans J. Koch \u003chjk@linutronix.de\u003e\nReviewed-by: Finn Thain \u003cfthain@telegraphics.com.au\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "19f572565ef66a0439574fd2299a7c804147e133",
      "tree": "09f9655a4e0d61986cb5ff88c503651974f47c65",
      "parents": [
        "117a8cdea3647e8e11fac10d14eafefc20f9bda5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Oct 14 20:56:39 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 17 13:53:16 2010 -0700"
      },
      "message": "fib_hash: RCU conversion phase 2\n\nGet rid of fib_hash_lock rwlock.\n\nThe fn_zone hash table resize is the noticeable part of this patch.\n\nI added a seqlock per fn_zone, so that readers can restart their lookup\nin the (very rare) case a writer expanded the hash table.\n\nAdd rcu heads in fib_alias and fib_node, use call_rcu() to defer their\nfreeing, and use appropriate _rcu list manipulations.\n\nStress test (160.000.000 udp frames sent, IP route cache disabled to\nmimic DDOS attack, FIB_HASH)\n\nBefore:\nreal\t0m41.191s\nuser\t0m13.137s\nsys\t8m55.241s\n\nAfter:\nreal\t0m38.091s\nuser\t0m13.189s\nsys\t7m53.018s\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "117a8cdea3647e8e11fac10d14eafefc20f9bda5",
      "tree": "b030a78c033998bdc725935b4123695bfb8c24e9",
      "parents": [
        "9bef83edfba72ba58b42c14fb046da2199574bc0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Oct 14 20:53:34 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 17 13:53:15 2010 -0700"
      },
      "message": "fib_hash: RCU conversion phase 1\n\nFirst step for RCU conversion of fib_hash :\n\nstruct fn_zone are created and never deleted.\n\nVery classic conversion, using rcu_assign_pointer(), rcu_dereference()\nand rtnl_dereference() verbs.\n\n__rcu markers on fz_next and fn_zone_list\n\nThey are created under RTNL, we dont need fib_hash_lock anymore in\nfn_new_zone().\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9bef83edfba72ba58b42c14fb046da2199574bc0",
      "tree": "ce61ab76bce8de53b76a83ec3cca63a87b7286b7",
      "parents": [
        "7fc4463309faa087f5e41569a987d43b1d71b982"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Oct 14 20:53:04 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 17 13:53:15 2010 -0700"
      },
      "message": "fib_hash: embed initial hash table in fn_zone\n\nWhile looking for false sharing problems, I noticed\nsizeof(struct fn_zone) was small (28 bytes) and possibly sharing a cache\nline with an often written kernel structure.\n\nMost of the time, fn_zone uses its initial hash table of 16 slots.\n\nWe can avoid the false sharing problem by embedding this initial hash\ntable in fn_zone itself, so that sizeof(fn_zone) \u003e L1_CACHE_BYTES\n\nWe did a similar optimization in commit a6501e080c (Reduce memory needs\nand speedup lookups)\n\nAdd a fz_revorder field to speedup fn_hash() a bit.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c60ce4e265404ca42ba860401f4b0f1e97332a67",
      "tree": "7a71a183c1512e32257f9ec66d74e8544c772bec",
      "parents": [
        "1fdb936101637c91819efea47e921bb592e07e34"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Oct 14 01:52:09 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 17 13:46:33 2010 -0700"
      },
      "message": "tcp: use correct counters in CA_CWR state too\n\nAs CWR is stronger than CA_Disorder state, we can miscount\nSACK/Reno failure into other timeouts. Not a bad problem as\nit can happen only due to ECN, FRTO detecting spurious RTO\nor xmit error which are the only callers of tcp_enter_cwr.\nAnd even then losses and RTO must still follow thereafter\nto actually end up into the relevant code paths.\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"
    },
    {
      "commit": "1fdb936101637c91819efea47e921bb592e07e34",
      "tree": "c713564e117225a2af79479a0ed82d277a54e41d",
      "parents": [
        "f3e85df845a5da60fc461cf49537435b1d07cf6d"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Oct 14 01:42:30 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 17 13:46:33 2010 -0700"
      },
      "message": "tcp: sack lost marking fixes\n\nWhen only fast rexmit should be done, tcp_mark_head_lost marks\nL too far. Also, sacked_upto below 1 is perfectly valid number,\nthe packets \u003d\u003d 0 then needs to be trapped elsewhere.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "10da66f7552b3c7966c2f4f1f72009fb0b5539ec",
      "tree": "517c39912a0aea9d4da3c3915c78e832dfbba855",
      "parents": [
        "874ffa8f72444d6253d2669fed304875c128f86b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Oct 13 08:22:03 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Oct 16 11:13:23 2010 -0700"
      },
      "message": "fib: avoid false sharing on fib_table_hash\n\nWhile doing profile analysis, I found fib_hash_table was sometime in a\ncache line shared by a possibly often written kernel structure.\n\n(CONFIG_IP_ROUTE_MULTIPATH || !CONFIG_IPV6_MULTIPLE_TABLES)\n\nIt\u0027s hard to detect because not easily reproductible.\n\nMake sure we allocate a full cache line to keep this shared in all cpus\ncaches.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "874ffa8f72444d6253d2669fed304875c128f86b",
      "tree": "1b00dc1984fa2984020c06fbc1e48b8c00366f02",
      "parents": [
        "a0a4a85a15df6335e3d11f83b2ac06ebebea313f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Oct 13 06:56:11 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Oct 16 11:13:22 2010 -0700"
      },
      "message": "fib_trie: use fls() instead of open coded loop\n\nfib_table_lookup() might use fls() to speedup an open coded loop.\n\nNoticed while doing a profile analysis.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "243bf6e29eef642de0ff62f1ebf58bc2396d6d6e",
      "tree": "79f4eb37b594d320d4750e04ce6e16a7d62177f0",
      "parents": [
        "87a2e70db62fec7348c6e5545eb7b7650c33d81b"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Oct 13 16:28:00 2010 +0200"
      },
      "committer": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Oct 13 18:00:46 2010 +0200"
      },
      "message": "netfilter: xtables: resolve indirect macros 3/3\n"
    },
    {
      "commit": "87a2e70db62fec7348c6e5545eb7b7650c33d81b",
      "tree": "3aa5dcd79bf7d331c4a69a3a9b1c5b01f00233ad",
      "parents": [
        "12b00c2c025b8af697d9a022ea2e928cad889ef1"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Oct 13 16:11:22 2010 +0200"
      },
      "committer": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Oct 13 18:00:41 2010 +0200"
      },
      "message": "netfilter: xtables: resolve indirect macros 2/3\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\n"
    },
    {
      "commit": "12b00c2c025b8af697d9a022ea2e928cad889ef1",
      "tree": "9de3f3a1ed8d79052fdd9abe7d72bed594de6140",
      "parents": [
        "eecc545856c8a0f27783a440d25f4ceaa1f95ce8"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Oct 13 15:56:56 2010 +0200"
      },
      "committer": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Oct 13 18:00:36 2010 +0200"
      },
      "message": "netfilter: xtables: resolve indirect macros 1/3\n\nMany of the used macros are just there for userspace compatibility.\nSubstitute the in-kernel code to directly use the terminal macro\nand stuff the defines into #ifndef __KERNEL__ sections.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\n"
    },
    {
      "commit": "fc66f95c68b6d4535a0ea2ea15d5cf626e310956",
      "tree": "ac3a7f08ad741a67ff683bf93e5669ddcae95ed7",
      "parents": [
        "0ed8ddf4045fcfcac36bad753dc4046118c603ec"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 08 06:37:34 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 11 13:06:53 2010 -0700"
      },
      "message": "net dst: use a percpu_counter to track entries\n\nstruct dst_ops tracks number of allocated dst in an atomic_t field,\nsubject to high cache line contention in stress workload.\n\nSwitch to a percpu_counter, to reduce number of time we need to dirty a\ncentral location. Place it on a separate cache line to avoid dirtying\nread only fields.\n\nStress test :\n\n(Sending 160.000.000 UDP frames,\nIP route cache disabled, dual E5540 @2.53GHz,\n32bit kernel, FIB_TRIE, SLUB/NUMA)\n\nBefore:\n\nreal    0m51.179s\nuser    0m15.329s\nsys     10m15.942s\n\nAfter:\n\nreal\t0m45.570s\nuser\t0m15.525s\nsys\t9m56.669s\n\nWith a small reordering of struct neighbour fields, subject of a\nfollowing patch, (to separate refcnt from other read mostly fields)\n\nreal\t0m41.841s\nuser\t0m15.261s\nsys\t8m45.949s\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0ed8ddf4045fcfcac36bad753dc4046118c603ec",
      "tree": "cf1d9eb14668c4d2257b3519ed7deec8c5cb396d",
      "parents": [
        "d122179a3c0fdc71b88cb9e3605f372b1651a9ff"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Oct 07 10:44:07 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 11 12:54:04 2010 -0700"
      },
      "message": "neigh: Protect neigh-\u003eha[] with a seqlock\n\nAdd a seqlock in struct neighbour to protect neigh-\u003eha[], and avoid\ndirtying neighbour in stress situation (many different flows / dsts)\n\nDirtying takes place because of read_lock(\u0026n-\u003elock) and n-\u003eused writes.\n\nSwitching to a seqlock, and writing n-\u003eused only on jiffies changes\npermits less dirtying.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8391d07b80e8da957cd888870e23f8e218438622",
      "tree": "8baab40bff5649b1f777af590f77a79a549b0491",
      "parents": [
        "993284dfff3ba4643f08b592427d0ac758d30156"
      ],
      "author": {
        "name": "Dimitris Michailidis",
        "email": "dm@chelsio.com",
        "time": "Thu Oct 07 14:48:38 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 08 10:51:08 2010 -0700"
      },
      "message": "ipv4: Remove leftover rcu_read_unlock calls from __mkroute_output()\n\nCommit \"fib: RCU conversion of fib_lookup()\" removed rcu_read_lock() from\n__mkroute_output but left a couple of calls to rcu_read_unlock() in there.\nThis causes lockdep to complain that the rcu_read_unlock() call in\n__ip_route_output_key causes a lock inbalance and quickly crashes the\nkernel. The below fixes this for me.\n\nSigned-off-by: Dimitris Michailidis \u003cdm@chelsio.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "556ef63255f1a6f82910a637c4164dbf7d3d1af2",
      "tree": "ae209fe4959e0837bf4eb72abc6e02c8a82179a1",
      "parents": [
        "d4f8f217b8a5d5bd02af979650418dca4caec472",
        "cb655d0f3d57c23db51b981648e452988c0223f9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 07 09:43:38 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 07 09:43:45 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.36-rc7\u0027 into core/rcu\n\nMerge reason: Update from -rc3 to -rc7.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d4f8f217b8a5d5bd02af979650418dca4caec472",
      "tree": "af047bfa9729c975e24cb7624107574e884d3a57",
      "parents": [
        "2dfbf4dfbe47a484bae20456c12b40763b9b6af7",
        "773e3f93577ffb493fb7c39b1a6ecf39b5748e87"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 07 09:43:11 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 07 09:43:11 2010 +0200"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/rcu\n"
    },
    {
      "commit": "9c6d5e5537e3997c47b65925a235392c1968fb51",
      "tree": "130ed7bf5c658612bb9b34dfb05d518212c61473",
      "parents": [
        "69259abb64d4da77273bf59accfc9fa79e7165f4"
      ],
      "author": {
        "name": "John Heffner",
        "email": "johnwheffner@gmail.com",
        "time": "Wed Oct 06 21:18:02 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 06 21:18:02 2010 -0700"
      },
      "message": "TCP: Fix setting of snd_ssthresh in tcp_mtu_probe_success\n\nThis looks like a simple typo that has gone unnoticed for some time.  The\nimpact is relatively low but it\u0027s clearly wrong.\n\nSigned-off-by: John Heffner \u003cjohnwheffner@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ebc0ffae5dfb4447e0a431ffe7fe1d467c48bbb9",
      "tree": "395e50547ffccc6b73e04a44190eb4b4f2d2316b",
      "parents": [
        "c2952c314b4fe61820ba8fd6c949eed636140d52"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Oct 05 10:41:36 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 05 20:39:38 2010 -0700"
      },
      "message": "fib: RCU conversion of fib_lookup()\n\nfib_lookup() converted to be called in RCU protected context, no\nreference taken and released on a contended cache line (fib_clntref)\n\nfib_table_lookup() and fib_semantic_match() get an additional parameter.\n\nstruct fib_info gets an rcu_head field, and is freed after an rcu grace\nperiod.\n\nStress test :\n(Sending 160.000.000 UDP frames on same neighbour,\nIP route cache disabled, dual E5540 @2.53GHz,\n32bit kernel, FIB_HASH) (about same results for FIB_TRIE)\n\nBefore patch :\n\nreal\t1m31.199s\nuser\t0m13.761s\nsys\t23m24.780s\n\nAfter patch:\n\nreal\t1m5.375s\nuser\t0m14.997s\nsys\t15m50.115s\n\nBefore patch Profile :\n\n13044.00 15.4% __ip_route_output_key vmlinux\n 8438.00 10.0% dst_destroy           vmlinux\n 5983.00  7.1% fib_semantic_match    vmlinux\n 5410.00  6.4% fib_rules_lookup      vmlinux\n 4803.00  5.7% neigh_lookup          vmlinux\n 4420.00  5.2% _raw_spin_lock        vmlinux\n 3883.00  4.6% rt_set_nexthop        vmlinux\n 3261.00  3.9% _raw_read_lock        vmlinux\n 2794.00  3.3% fib_table_lookup      vmlinux\n 2374.00  2.8% neigh_resolve_output  vmlinux\n 2153.00  2.5% dst_alloc             vmlinux\n 1502.00  1.8% _raw_read_lock_bh     vmlinux\n 1484.00  1.8% kmem_cache_alloc      vmlinux\n 1407.00  1.7% eth_header            vmlinux\n 1406.00  1.7% ipv4_dst_destroy      vmlinux\n 1298.00  1.5% __copy_from_user_ll   vmlinux\n 1174.00  1.4% dev_queue_xmit        vmlinux\n 1000.00  1.2% ip_output             vmlinux\n\nAfter patch Profile :\n\n13712.00 15.8% dst_destroy             vmlinux\n 8548.00  9.9% __ip_route_output_key   vmlinux\n 7017.00  8.1% neigh_lookup            vmlinux\n 4554.00  5.3% fib_semantic_match      vmlinux\n 4067.00  4.7% _raw_read_lock          vmlinux\n 3491.00  4.0% dst_alloc               vmlinux\n 3186.00  3.7% neigh_resolve_output    vmlinux\n 3103.00  3.6% fib_table_lookup        vmlinux\n 2098.00  2.4% _raw_read_lock_bh       vmlinux\n 2081.00  2.4% kmem_cache_alloc        vmlinux\n 2013.00  2.3% _raw_spin_lock          vmlinux\n 1763.00  2.0% __copy_from_user_ll     vmlinux\n 1763.00  2.0% ip_output               vmlinux\n 1761.00  2.0% ipv4_dst_destroy        vmlinux\n 1631.00  1.9% eth_header              vmlinux\n 1440.00  1.7% _raw_read_unlock_bh     vmlinux\n\nReference results, if IP route cache is enabled :\n\nreal\t0m29.718s\nuser\t0m10.845s\nsys\t7m37.341s\n\n25213.00 29.5% __ip_route_output_key   vmlinux\n 9011.00 10.5% dst_release             vmlinux\n 4817.00  5.6% ip_push_pending_frames  vmlinux\n 4232.00  5.0% ip_finish_output        vmlinux\n 3940.00  4.6% udp_sendmsg             vmlinux\n 3730.00  4.4% __copy_from_user_ll     vmlinux\n 3716.00  4.4% ip_route_output_flow    vmlinux\n 2451.00  2.9% __xfrm_lookup           vmlinux\n 2221.00  2.6% ip_append_data          vmlinux\n 1718.00  2.0% _raw_spin_lock_bh       vmlinux\n 1655.00  1.9% __alloc_skb             vmlinux\n 1572.00  1.8% sock_wfree              vmlinux\n 1345.00  1.6% kfree                   vmlinux\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e12b453904c54bbdc515778ff664d87a7f9473af",
      "tree": "aa0033607405521e079345d1c3f7471a67bd79ba",
      "parents": [
        "5a37e8ca8536c47871d46c82211f399adf06fd44"
      ],
      "author": {
        "name": "Flavio Leitner",
        "email": "fleitner@redhat.com",
        "time": "Tue Oct 05 14:23:58 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 05 20:26:57 2010 -0700"
      },
      "message": "bonding: fix to rejoin multicast groups immediately\n\nThe IGMP specs states that if the system receives a\nmembership report, it shouldn\u0027t send another for the\nnext minute. However, if a link failure happens right\nafter that, the backup slave and the switch connected\nto this slave will not know about the multicast and\nthe traffic will hang for about a minute.\n\nThis patch fixes it to rejoin multicast groups immediately\nafter a failover restoring the multicast traffic.\n\nSigned-off-by: Flavio Leitner \u003cfleitner@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d6bf781712a1d25cc8987036b3a48535b331eb91",
      "tree": "cf83ab68ef2519576578d8336a43cc13cd375cde",
      "parents": [
        "110b2499370c401cdcc7c63e481084467291d556"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 04 06:15:44 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 05 14:54:36 2010 -0700"
      },
      "message": "net neigh: RCU conversion of neigh hash table\n\nDavid\n\nThis is the first step for RCU conversion of neigh code.\n\nNext patches will convert hash_buckets[] and \"struct neighbour\" to RCU\nprotected objects.\n\nThanks\n\n[PATCH net-next] net neigh: RCU conversion of neigh hash table\n\nInstead of storing hash_buckets, hash_mask and hash_rnd in \"struct\nneigh_table\", a new structure is defined :\n\nstruct neigh_hash_table {\n       struct neighbour        **hash_buckets;\n       unsigned int            hash_mask;\n       __u32                   hash_rnd;\n       struct rcu_head         rcu;\n};\n\nAnd \"struct neigh_table\" has an RCU protected pointer to such a\nneigh_hash_table.\n\nThis means the signature of (*hash)() function changed: We need to add a\nthird parameter with the actual hash_rnd value, since this is not\nanymore a neigh_table field.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "caf586e5f23cebb2a68cbaf288d59dbbf2d74052",
      "tree": "5c0dfcf5a14c55501f9225835c83abddb8d1876e",
      "parents": [
        "a00eac0c459abecb539fb2a2abd3122dd7ca5d4a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Sep 30 21:06:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 05 14:47:55 2010 -0700"
      },
      "message": "net: add a core netdev-\u003erx_dropped counter\n\nIn various situations, a device provides a packet to our stack and we\ndrop it before it enters protocol stack :\n- softnet backlog full (accounted in /proc/net/softnet_stat)\n- bad vlan tag (not accounted)\n- unknown/unregistered protocol (not accounted)\n\nWe can handle a per-device counter of such dropped frames at core level,\nand automatically adds it to the device provided stats (rx_dropped), so\nthat standard tools can be used (ifconfig, ip link, cat /proc/net/dev)\n\nThis is a generalization of commit 8990f468a (net: rx_dropped\naccounting), thus reverting it.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6a31d2a97c04ffe9b161ec0177a2296366ff9249",
      "tree": "e564d7b06a69927f572e629b9281682f3c5c6cee",
      "parents": [
        "e3d32687a624845e97f9717d9d2027b44b8c49a2"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 04 20:00:18 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 05 00:47:38 2010 -0700"
      },
      "message": "fib: cleanups\n\nCode style cleanups before upcoming functional changes.\nC99 initializer for fib_props array.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "21a180cda012e1f93e362dd4a9b0bfd3d8c92940",
      "tree": "0e0d10baa3fdcd8ffbc6881076ff1695808dad9d",
      "parents": [
        "c7d4426a98a5f6654cd0b4b33d9dab2e77192c18",
        "51e97a12bef19b7e43199fc153cf9bd5f2140362"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 04 11:56:38 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 04 11:56:38 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/ipv4/Kconfig\n\tnet/ipv4/tcp_timer.c\n"
    },
    {
      "commit": "a8defca048fd11eb2d1a17ab61a60a856292dd4e",
      "tree": "b486460fd1f2310cd4572bd36c126a3fa8b3a5c5",
      "parents": [
        "0c200d935346fe0ebde9b6dffbb683dddd166fb9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 04 20:56:05 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Oct 04 20:56:05 2010 +0200"
      },
      "message": "netfilter: ipt_LOG: add bufferisation to call printk() once\n\nipt_LOG \u0026 ip6t_LOG use lot of calls to printk() and use a lock in a hope\nseveral cpus wont mix their output in syslog.\n\nprintk() being very expensive [1], its better to call it once, on a\nprebuilt and complete line. Also, with mixed IPv4 and IPv6 trafic,\nseparate IPv4/IPv6 locks dont avoid garbage.\n\nI used an allocation of a 1024 bytes structure, sort of seq_printf() but\nwith a fixed size limit.\nUse a static buffer if dynamic allocation failed.\n\nEmit a once time alert if buffer size happens to be too short.\n\n[1]: printk() has various features like printk_delay()...\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "0c200d935346fe0ebde9b6dffbb683dddd166fb9",
      "tree": "a880c12f3f68fd3abefd86bea8d445cab3c3c876",
      "parents": [
        "758ff03387228824617cef9507e5682488bf9e0c"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Oct 04 20:53:18 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Oct 04 20:53:18 2010 +0200"
      },
      "message": "netfilter: nf_nat: make find/put static\n\nThe functions nf_nat_proto_find_get and nf_nat_proto_put are\nonly used internally in nf_nat_core. This might break some out\nof tree NAT module.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "c7d4426a98a5f6654cd0b4b33d9dab2e77192c18",
      "tree": "0db2524e6f3f742861765dd6aa696a9271767056",
      "parents": [
        "9a7241c21b06c3a3f8ebcf3e347bd68556369da7"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Oct 03 22:17:54 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 03 22:17:54 2010 -0700"
      },
      "message": "net: introduce DST_NOCACHE flag\n\nWhile doing stress tests with IP route cache disabled, and multi queue\ndevices, I noticed a very high contention on one rwlock used in\nneighbour code.\n\nWhen many cpus are trying to send frames (possibly using a high\nperformance multiqueue device) to the same neighbour, they fight for the\nneigh-\u003elock rwlock in order to call neigh_hh_init(), and fight on\nhh-\u003ehh_refcnt (a pair of atomic_inc/atomic_dec_and_test())\n\nBut we dont need to call neigh_hh_init() for dst that are used only\nonce. It costs four atomic operations at least, on two contended cache\nlines, plus the high contention on neigh-\u003elock rwlock.\n\nIntroduce a new dst flag, DST_NOCACHE, that is set when dst was not\ninserted in route cache.\n\nWith the stress test bench, sending 160000000 frames on one neighbour,\nresults are :\n\nBefore patch:\n\nreal\t2m28.406s\nuser\t0m11.781s\nsys\t36m17.964s\n\n\nAfter patch:\n\nreal\t1m26.532s\nuser\t0m12.185s\nsys\t20m3.903s\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5b7c84066733c5dfb0e4016d939757b38de189e4",
      "tree": "fe7edf2d6327abfc1c4abdab5121e73cce52b693",
      "parents": [
        "10ccff62bd3de7a64cf98f4c37ec0414b8affd4f"
      ],
      "author": {
        "name": "David Stevens",
        "email": "dlstevens@us.ibm.com",
        "time": "Thu Sep 30 14:29:40 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 03 21:58:47 2010 -0700"
      },
      "message": "ipv4: correct IGMP behavior on v3 query during v2-compatibility mode\n\nA recent patch to allow IGMPv2 responses to IGMPv3 queries\nbypasses length checks for valid query lengths, incorrectly\nresets the v2_seen timer, and does not support IGMPv1.\n\nThe following patch responds with a v2 report as required\nby IGMPv2 while correcting the other problems introduced\nby the patch.\n\nSigned-Off-By: David L Stevens \u003cdlstevens@us.ibm.com\u003e\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a8cb16dd9cb571c45bb479a1e4721ce11220a216",
      "tree": "103313a0d315877c734834140652f6bdb5a2602e",
      "parents": [
        "a8c9486b816f74d4645144db9e8fa2f711c1fc4b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 01 16:15:29 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 03 21:50:53 2010 -0700"
      },
      "message": "ipmr: cleanups\n\nVarious code style cleanups\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a8c9486b816f74d4645144db9e8fa2f711c1fc4b",
      "tree": "950214451e4bb2172cd9beb8f27a415664f77909",
      "parents": [
        "4c9687098f245601e9d94178715ee03afbcc6f80"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 01 16:15:08 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 03 21:50:53 2010 -0700"
      },
      "message": "ipmr: RCU protection for mfc_cache_array\n\nUse RCU \u0026 RTNL protection for mfc_cache_array[]\n\nipmr_cache_find() is called under rcu_read_lock();\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4c9687098f245601e9d94178715ee03afbcc6f80",
      "tree": "00e08d50538ffbf8a85a481cef351034c5a2174a",
      "parents": [
        "55747a0a73ea74a25fcebb0731e8d3f13fe8c09d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 01 16:15:01 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 03 21:50:52 2010 -0700"
      },
      "message": "ipmr: RCU conversion of mroute_sk\n\nUse RCU and RTNL to protect (struct mr_table)-\u003emroute_sk\n\nReaders use RCU, writers use RTNL.\n\nip_ra_control() already use an RCU grace period before\nip_ra_destroy_rcu(), so we dont need synchronize_rcu() in\nmrtsock_destruct()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "55747a0a73ea74a25fcebb0731e8d3f13fe8c09d",
      "tree": "ad041d4c50fab573499e49b48f73e9a198bd7164",
      "parents": [
        "ddcb4541e917780ef7ccc68dd8df18ca0bc055d0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 01 16:14:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 03 21:50:52 2010 -0700"
      },
      "message": "ipmr: __pim_rcv() is called under rcu_read_lock\n\nNo need to get a reference on reg_dev and release it, we are in a\nrcu_read_lock() protected section.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ddcb4541e917780ef7ccc68dd8df18ca0bc055d0",
      "tree": "82aac826df08481cb661ad753eaad0bf96c83a3d",
      "parents": [
        "94d57c4cfaa43e29ca5fa5ff874048cfc67276f5"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Fri Oct 01 13:58:00 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 03 21:50:51 2010 -0700"
      },
      "message": "gre: protocol table can be static\n\nThis table is only used in gre.c\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c5d3557103f8bef81d7a150ab9cc970099cd58a2",
      "tree": "2806f87647db3cf9e37598f4bbe8386abd7300ec",
      "parents": [
        "482964e56e1320cb7952faa1932d8ecf59c4bf75"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Sun Oct 03 15:37:42 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 03 21:46:23 2010 -0700"
      },
      "message": "Revert \"ipv4: Make INET_LRO a bool instead of tristate.\"\n\nThis reverts commit e81963b180ac502fda0326edf059b1e29cdef1a2.\n\nLRO is now deprecated in favour of GRO, and only a few drivers use it,\nso it is desirable to build it as a module in distribution kernels.\n\nThe original change to prevent building it as a module was made in an\nattempt to avoid the case where some dependents are set to y and some\nto m, and INET_LRO can be set to m rather than y.  However, the\nKconfig system will reliably set INET_LRO\u003dy in this case.\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0197aa38df2ce550c0bfc96194b07ce6b68af814",
      "tree": "bf7f41be7e701f6e282ed92e8063e69d339554f8",
      "parents": [
        "82efee1499a27c06f5afb11b07db384fdb3f7004"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Sep 30 03:33:58 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 30 21:16:06 2010 -0700"
      },
      "message": "ipv4: rcu conversion in ip_route_output_slow\n\nip_route_output_slow() is enclosed in an rcu_read_lock() protected\nsection, so that no references are taken/released on device, thanks to\n__ip_dev_find() \u0026 dev_get_by_index_rcu()\n\nTested with ip route cache disabled, and a stress test :\n\nBefore patch:\n\nelapsed time :\n\nreal\t1m38.347s\nuser\t0m11.909s\nsys\t23m51.501s\n\nProfile:\n\n13788.00 22.7% ip_route_output_slow [kernel]\n 7875.00 13.0% dst_destroy          [kernel]\n 3925.00  6.5% fib_semantic_match   [kernel]\n 3144.00  5.2% fib_rules_lookup     [kernel]\n 3061.00  5.0% dst_alloc            [kernel]\n 2276.00  3.7% rt_set_nexthop       [kernel]\n 1762.00  2.9% fib_table_lookup     [kernel]\n 1538.00  2.5% _raw_read_lock       [kernel]\n 1358.00  2.2% ip_output            [kernel]\n\nAfter patch:\n\nreal\t1m28.808s\nuser\t0m13.245s\nsys\t20m37.293s\n\n10950.00 17.2% ip_route_output_slow [kernel]\n10726.00 16.9% dst_destroy          [kernel]\n 5170.00  8.1% fib_semantic_match   [kernel]\n 3937.00  6.2% dst_alloc            [kernel]\n 3635.00  5.7% rt_set_nexthop       [kernel]\n 2900.00  4.6% fib_rules_lookup     [kernel]\n 2240.00  3.5% fib_table_lookup     [kernel]\n 1427.00  2.2% _raw_read_lock       [kernel]\n 1157.00  1.8% kmem_cache_alloc     [kernel]\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "82efee1499a27c06f5afb11b07db384fdb3f7004",
      "tree": "c329e037ddf4e13cd824c131eab3bd3a2e67a0fc",
      "parents": [
        "828bac87bb074f3366621724fdfbe314f98ccc7e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Sep 30 03:31:56 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 30 21:16:05 2010 -0700"
      },
      "message": "ipv4: introduce __ip_dev_find()\n\nip_dev_find(net, addr) finds a device given an IPv4 source address and\ntakes a reference on it.\n\nIntroduce __ip_dev_find(), taking a third argument, to optionally take\nthe device reference. Callers not asking the reference to be taken\nshould be in an rcu_read_lock() protected section.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dd28d1a0b5ecc0f5512f658b1a8fd38bc4f4c98c",
      "tree": "5cee646dfe354803f0b6f7b9ddd11c189c4ee8e3",
      "parents": [
        "e1a5964f0c32a75b17360cfc565d25aaedbff747"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 29 11:53:50 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 30 17:59:30 2010 -0700"
      },
      "message": "ipv4: __mkroute_output() speedup\n\nWhile doing stress tests with a disabled IP route cache, I found\n__mkroute_output() was touching three times in_device atomic refcount.\n\nUse RCU to touch it once to reduce cache line ping pongs.\n\nBefore patch\n\ntime to perform the test\nreal\t1m42.009s\nuser\t0m12.545s\nsys\t25m0.726s\n\nProfile :\n\n16109.00 26.4% ip_route_output_slow   vmlinux\n 7434.00 12.2% dst_destroy            vmlinux\n 3280.00  5.4% fib_rules_lookup       vmlinux\n 3252.00  5.3% fib_semantic_match     vmlinux\n 2622.00  4.3% fib_table_lookup       vmlinux\n 2535.00  4.1% dst_alloc              vmlinux\n 1750.00  2.9% _raw_read_lock         vmlinux\n 1532.00  2.5% rt_set_nexthop         vmlinux\n\nAfter patch\n\nreal\t1m36.503s\nuser\t0m12.977s\nsys\t23m25.608s\n\n14234.00 22.4% ip_route_output_slow   vmlinux\n 8717.00 13.7% dst_destroy            vmlinux\n 4052.00  6.4% fib_rules_lookup       vmlinux\n 3951.00  6.2% fib_semantic_match     vmlinux\n 3191.00  5.0% dst_alloc              vmlinux\n 1764.00  2.8% fib_table_lookup       vmlinux\n 1692.00  2.7% _raw_read_lock         vmlinux\n 1605.00  2.5% rt_set_nexthop         vmlinux\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6d0722a2cec2c23db3b0855ff8bb433175a16b44",
      "tree": "228a4d1c34a85e68ab9ca14c153c05b6db374c6e",
      "parents": [
        "9812cb12c9d58c5d9aead84eb2e7864c68c80302"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 29 23:35:10 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 29 23:35:10 2010 -0700"
      },
      "message": "ip_gre: comments change\n\nHARD_TX_LOCK no longer protects tunnels from dead loops,\nbut xmit_recursion percpu counter.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1b9f409293529da4630bfc5d6d8e7d7451a6ccb5",
      "tree": "4ad4baa2cedaae93a3a3668e154b4f1cbd950791",
      "parents": [
        "a64de47c091e4a337fa9763315cb6f2fbf0c583b"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Sep 28 19:30:14 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 29 19:45:36 2010 -0700"
      },
      "message": "tcp: tcp_enter_quickack_mode can be static\n\nFunction only used in tcp_input.c\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a64de47c091e4a337fa9763315cb6f2fbf0c583b",
      "tree": "e545dbaede640218956daf1bdd5d503986318861",
      "parents": [
        "bfa5ae63b823f4ffd3483a05f60a93a4a7b7d680"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Sep 28 17:08:02 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 29 19:45:35 2010 -0700"
      },
      "message": "arp: remove unnecessary export of arp_broken_ops\n\narp_broken_ops is only used in arp.c\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "153f0943382e9ae0bff7caa110a1a4656088d0d4",
      "tree": "13e8757f7347d70ad6752622309df20b00fa6f05",
      "parents": [
        "b790e01aee74c23a5d92576177934f13aa51f718"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Sep 28 00:17:17 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 29 13:25:44 2010 -0700"
      },
      "message": "ipip: enable lockless xmits\n\nIPIP tunnels can benefit from lockless xmits, using NETIF_F_LLTX\n\nBench on a 16 cpus machine (dual E5540 cpus), 16 threads sending\n10000000 UDP frames via one ipip tunnel (size:200 bytes per frame)\n\nBefore patch :\nreal\t2m53.321s\nuser\t0m10.277s\nsys\t46m0.597s\n\nAfter patch:\nreal\t0m32.063s\nuser\t0m9.237s\nsys\t8m16.255s\n\nLast problem to solve is the contention on dst :\n\n16118.00 28.3% __ip_route_output_key         vmlinux\n 6135.00 10.8% dst_release                   vmlinux\n 3220.00  5.6% ip_finish_output              vmlinux\n 2149.00  3.8% ip_route_output_flow          vmlinux\n 1575.00  2.8% ip_append_data                vmlinux\n 1481.00  2.6% ip_push_pending_frames        vmlinux\n 1349.00  2.4% __xfrm_lookup                 vmlinux\n 1216.00  2.1% csum_partial_copy_generic     vmlinux\n 1208.00  2.1% udp_sendmsg                   vmlinux\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b790e01aee74c23a5d92576177934f13aa51f718",
      "tree": "c0868448408c40d2a6f70ae2326556798620d272",
      "parents": [
        "8df40d1033d64597dcf1efd4f7547e817f7a953b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Sep 27 23:05:47 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 29 13:25:38 2010 -0700"
      },
      "message": "ip_gre: lockless xmit\n\nGRE tunnels can benefit from lockless xmits, using NETIF_F_LLTX\n\nNote: If tunnels are created with the \"oseq\" option, LLTX is not\nenabled :\n\nEven using an atomic_t o_seq, we would increase chance for packets being\nout of order at receiver.\n\nBench on a 16 cpus machine (dual E5540 cpus), 16 threads sending\n10000000 UDP frames via one gre tunnel (size:200 bytes per frame)\n\nBefore patch :\nreal\t3m0.094s\nuser\t0m9.365s\nsys\t47m50.103s\n\nAfter patch:\nreal\t0m29.756s\nuser\t0m11.097s\nsys\t7m33.012s\n\nLast problem to solve is the contention on dst :\n\n38660.00 21.4% __ip_route_output_key          vmlinux\n20786.00 11.5% dst_release                    vmlinux\n14191.00  7.8% __xfrm_lookup                  vmlinux\n12410.00  6.9% ip_finish_output               vmlinux\n 4540.00  2.5% ip_push_pending_frames         vmlinux\n 4427.00  2.4% ip_append_data                 vmlinux\n 4265.00  2.4% __alloc_skb                    vmlinux\n 4140.00  2.3% __ip_local_out                 vmlinux\n 3991.00  2.2% dev_queue_xmit                 vmlinux\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fada5636fe41fd1423fe4e6af7b9f609378acde6",
      "tree": "b9cf69a96229907f903d322b2a60f349c1d15903",
      "parents": [
        "6d81f41c58c69ddde497e9e640ba5805aa26e78c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Sep 27 23:56:46 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 29 13:23:50 2010 -0700"
      },
      "message": "ipip: fix percpu stats accounting\n\ncommit 3c97af99a5aa1 (ipip: percpu stats accounting) forgot the fallback\ntunnel case (tunl0), and can crash pretty fast.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4465b469008bc03b98a1b8df4e9ae501b6c69d4b",
      "tree": "89cd40165e62694e8ed84d4d60486350ebd8b992",
      "parents": [
        "fc34ecd07f15358e2b29620fafeb8a6a9528ce79"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Sun May 23 19:54:12 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 28 23:38:15 2010 -0700"
      },
      "message": "ipv4: Allow configuring subnets as local addresses\n\nThis patch allows a host to be configured to respond to any address in\na specified range as if it were local, without actually needing to\nconfigure the address on an interface.  This is done through routing\ntable configuration.  For instance, to configure a host to respond\nto any address in 10.1/16 received on eth0 as a local address we can do:\n\nip rule add from all iif eth0 lookup 200\nip route add local 10.1/16 dev lo proto kernel scope host src 127.0.0.1 table 200\n\nThis host is now reachable by any 10.1/16 address (route lookup on\ninput for packets received on eth0 can find the route).  On output, the\nrule will not be matched so that this host can still send packets to\n10.1/16 (not sent on loopback).  Presumably, external routing can be\nconfigured to make sense out of this.\n\nTo make this work, we needed to modify the logic in finding the\ninterface which is assigned a given source address for output\n(dev_ip_find).  We perform a normal fib_lookup instead of just a\nlookup on the local table, and in the lookup we ignore the input\ninterface for matching.\n\nThis patch is useful to implement IP-anycast for subnets of virtual\naddresses.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "68c1f3a96c32a4fe15ebadae45c8145a5e5a66d2",
      "tree": "eaad407fb9f2c6381f3457585d394d587eeeb301",
      "parents": [
        "4d22f7d372f5769c6c0149e427ed6353e2dcfe61"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 28 22:37:56 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 28 22:37:56 2010 -0700"
      },
      "message": "ip_gre: Fix dependencies wrt. ipv6.\n\nThe GRE tunnel driver needs to invoke icmpv6 helpers in the\nipv6 stack when ipv6 support is enabled.\n\nTherefore if IPV6 is enabled, we have to enforce that GRE\u0027s\nenabling (modular or static) matches that of ipv6.\n\nReported-by: Patrick McHardy \u003ckaber@trash.net\u003e\nReported-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4d22f7d372f5769c6c0149e427ed6353e2dcfe61",
      "tree": "7f4ff499d171f4d9b78975300aedd6c9d527073f",
      "parents": [
        "01db403cf99f739f86903314a489fb420e0e254f"
      ],
      "author": {
        "name": "Damian Lukowski",
        "email": "damian@tvk.rwth-aachen.de",
        "time": "Tue Sep 28 13:08:32 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 28 13:08:32 2010 -0700"
      },
      "message": "net-2.6: SYN retransmits: Add new parameter to retransmits_timed_out()\n\nFixes kernel Bugzilla Bug 18952\n\nThis patch adds a syn_set parameter to the retransmits_timed_out()\nroutine and updates its callers. If not set, TCP_RTO_MIN is taken\nas the calculation basis as before. If set, TCP_TIMEOUT_INIT is\nused instead, so that sysctl_syn_retries represents the actual\namount of SYN retransmissions in case no SYNACKs are received when\nestablishing a new connection.\n\nSigned-off-by: Damian Lukowski \u003cdamian@tvk.rwth-aachen.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3c97af99a5aa17feaebb4eb0f85f51ab6c055797",
      "tree": "6d14e38cc4479acf15352062974ee8e4c3cccaac",
      "parents": [
        "e985aad723d7709e6bee566bacb100d33d9b791b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Sep 27 00:35:50 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 21:30:43 2010 -0700"
      },
      "message": "ipip: percpu stats accounting\n\nMaintain per_cpu tx_bytes, tx_packets, rx_bytes, rx_packets.\n\nOther seldom used fields are kept in netdev-\u003estats structure, possibly\nunsafe.\n\nThis is a preliminary work to support lockless transmit path, and\ncorrect RX stats, that are already unsafe.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e985aad723d7709e6bee566bacb100d33d9b791b",
      "tree": "9b90751911cd8923dd2469d4f52a5628c0f4cc0c",
      "parents": [
        "290b895e0ba4552dfcfc4bd35759c192345b934a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Sep 27 03:57:11 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 21:30:43 2010 -0700"
      },
      "message": "ip_gre: percpu stats accounting\n\nLe lundi 27 septembre 2010 à 14:29 +0100, Ben Hutchings a écrit :\n\n\u003e \u003e diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c\n\u003e \u003e index 5d6ddcb..de39b22 100644\n\u003e \u003e --- a/net/ipv4/ip_gre.c\n\u003e \u003e +++ b/net/ipv4/ip_gre.c\n\u003e [...]\n\u003e \u003e @@ -377,7 +405,7 @@ static struct ip_tunnel *ipgre_tunnel_locate(struct net *net,\n\u003e \u003e  \tif (parms-\u003ename[0])\n\u003e \u003e  \t\tstrlcpy(name, parms-\u003ename, IFNAMSIZ);\n\u003e \u003e  \telse\n\u003e \u003e -\t\tsprintf(name, \"gre%%d\");\n\u003e \u003e +\t\tstrcpy(name, \"gre%d\");\n\u003e \u003e\n\u003e \u003e  \tdev \u003d alloc_netdev(sizeof(*t), name, ipgre_tunnel_setup);\n\u003e \u003e  \tif (!dev)\n\u003e [...]\n\u003e\n\u003e This is a valid fix, but doesn\u0027t belong in this patch!\n\u003e\n\nSorry ? It was not a fix, but at most a cleanup ;)\n\nAnyway I forgot the gretap case...\n\n[PATCH 2/4 v2] ip_gre: percpu stats accounting\n\nMaintain per_cpu tx_bytes, tx_packets, rx_bytes, rx_packets.\n\nOther seldom used fields are kept in netdev-\u003estats structure, possibly\nunsafe.\n\nThis is a preliminary work to support lockless transmit path, and\ncorrect RX stats, that are already unsafe.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "01db403cf99f739f86903314a489fb420e0e254f",
      "tree": "bf04fbfb3ed88d6cf7abeea1ab5209be36907882",
      "parents": [
        "0b20406cda621c2495d10baab1e87127ceb43337"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 20:24:54 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 20:24:54 2010 -0700"
      },
      "message": "tcp: Fix \u003e4GB writes on 64-bit.\n\nFixes kernel bugzilla #16603\n\ntcp_sendmsg() truncates iov_len to an \u0027int\u0027 which a 4GB write to write\nzero bytes, for example.\n\nThere is also the problem higher up of how verify_iovec() works.  It\nwants to prevent the total length from looking like an error return\nvalue.\n\nHowever it does this using \u0027int\u0027, but syscalls return \u0027long\u0027 (and\nthus signed 64-bit on 64-bit machines).  So it could trigger\nfalse-positives on 64-bit as written.  So fix it to use \u0027long\u0027.\n\nReported-by: Olaf Bonorden \u003cbono@onlinehome.de\u003e\nReported-by: Daniel Büse \u003cdbuese@gmx.de\u003e\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7e1b33e5ea392dfc984fc63b76ca75acbf249dcd",
      "tree": "00fbab440aabca3123b999da42901a7261203c11",
      "parents": [
        "b3de7559afbb7a8a35b4be975a6adf6c5e3cdca0"
      ],
      "author": {
        "name": "Ulrich Weber",
        "email": "uweber@astaro.com",
        "time": "Mon Sep 27 15:02:18 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 15:02:18 2010 -0700"
      },
      "message": "ipv6: add IPv6 to neighbour table overflow warning\n\nIPv4 and IPv6 have separate neighbour tables, so\nthe warning messages should be distinguishable.\n\n[ Add a suitable message prefix on the ipv4 side as well -DaveM ]\n\nSigned-off-by: Ulrich Weber \u003cuweber@astaro.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b3de7559afbb7a8a35b4be975a6adf6c5e3cdca0",
      "tree": "b387ee28cbb0c577943e87ddc7d87c3d7c65b99c",
      "parents": [
        "3fd6c88ef875a14740801ebfc6b6e4e064a1cdd4"
      ],
      "author": {
        "name": "Yuchung Cheng",
        "email": "ycheng@google.com",
        "time": "Fri Sep 24 13:22:06 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 14:55:57 2010 -0700"
      },
      "message": "tcp: fix TSO FACK loss marking in tcp_mark_head_lost\n\nWhen TCP uses FACK algorithm to mark lost packets in\ntcp_mark_head_lost(), if the number of packets in the (TSO) skb is\ngreater than the number of packets that should be marked lost, TCP\nincorrectly exits the loop and marks no packets lost in the skb. This\nunderestimates tp-\u003elost_out and affects the recovery/retransmission.\nThis patch fargments the skb and marks the correct amount of packets\nlost.\n\nSigned-off-by: Yuchung Cheng \u003cycheng@google.com\u003e\nAcked-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e40051d134f7ee95c8c1f7a3471e84eafc9ab326",
      "tree": "88eb44e49a75721ae926665a2c42f08badac9d07",
      "parents": [
        "42099d7a3941d4aaf853caac92b3ae76149fc6e7",
        "2cc6d2bf3d6195fabcf0febc192c01f99519a8f3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 01:03:03 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 01:03:03 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/qlcnic/qlcnic_init.c\n\tnet/ipv4/ip_output.c\n"
    },
    {
      "commit": "83180af0b0ea166adf8249f4513beb7355f9b4c9",
      "tree": "4e2606d19e0e5be3e1fc1851a0294f163bfa8780",
      "parents": [
        "1b4bf461f05d56ced6d6b8f3b4831adc7076f565"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Sep 23 21:46:03 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 26 19:04:07 2010 -0700"
      },
      "message": "net: fix rcu use in ip_route_output_slow\n\n__in_dev_get_rtnl(dev_out) is called while RTNL is not held, thus\ntriggers a lockdep fault.\n\nAt this point, we only perform a raw test of dev_out-\u003eip_ptr being NULL,\nwe dont need to make sure ip_ptr cant changed right after.\n\nWe can use rcu_dereference_raw() for this.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "59104f062435c7816e39ee5ed504a69cb8037f10",
      "tree": "cc77c6202d01b9c152634b836fa06e77b27d14fc",
      "parents": [
        "a02cec2155fbea457eca8881870fd2de1a4c4c76"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Sep 20 20:16:27 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 24 14:41:04 2010 -0700"
      },
      "message": "ip: take care of last fragment in ip_append_data\n\nWhile investigating a bit, I found ip_fragment() slow path was taken\nbecause ip_append_data() provides following layout for a send(MTU +\nN*(MTU - 20)) syscall :\n\n- one skb with 1500 (mtu) bytes\n- N fragments of 1480 (mtu-20) bytes (before adding IP header)\nlast fragment gets 17 bytes of trail data because of following bit:\n\n\tif (datalen \u003d\u003d length + fraggap)\n\t\talloclen +\u003d rt-\u003edst.trailer_len;\n\nThen esp4 adds 16 bytes of data (while trailer_len is 17... hmm...\nanother bug ?)\n\nIn ip_fragment(), we notice last fragment is too big (1496 + 20) \u003e mtu,\nso we take slow path, building another skb chain.\n\nIn order to avoid taking slow path, we should correct ip_append_data()\nto make sure last fragment has real trail space, under mtu...\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a02cec2155fbea457eca8881870fd2de1a4c4c76",
      "tree": "cfbfc4b32bfe10f9cd803d46c31607d13f1858f5",
      "parents": [
        "6a08d194ee40806e0ccd5f36ed768e64cbfc979f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 22 20:43:57 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 23 14:33:39 2010 -0700"
      },
      "message": "net: return operator cleanup\n\nChange \"return (EXPR);\" to \"return EXPR;\"\n\nreturn is not a function, parentheses are not required.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "94e2238969e89f5112297ad2a00103089dde7e8f",
      "tree": "95a65a101132a512b70918cdecfd74d209a47862",
      "parents": [
        "3f5a2a713aad28480d86b0add00c68484b54febc"
      ],
      "author": {
        "name": "Ulrich Weber",
        "email": "uweber@astaro.com",
        "time": "Wed Sep 22 06:45:11 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 22 20:25:48 2010 -0700"
      },
      "message": "xfrm4: strip ECN bits from tos field\n\notherwise ECT(1) bit will get interpreted as RTO_ONLINK\nand routing will fail with XfrmOutBundleGenError.\n\nSigned-off-by: Ulrich Weber \u003cuweber@astaro.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cbdd769ab9de26764bde0520a91536caa1587e13",
      "tree": "7a15d114613de0e8e374151628102a76562ebbbd",
      "parents": [
        "d6120b8afacec587f5feb37781bc751bc5d68a10"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Tue Sep 21 21:17:34 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 22 13:13:34 2010 -0700"
      },
      "message": "netfilter: nf_conntrack_defrag: check socket type before touching nodefrag flag\n\nwe need to check proper socket type within ipv4_conntrack_defrag\nfunction before referencing the nodefrag flag.\n\nFor example the tun driver receive path produces skbs with\nAF_UNSPEC socket type, and so current code is causing unwanted\nfragmented packets going out.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d6120b8afacec587f5feb37781bc751bc5d68a10",
      "tree": "c4477c43bfb8cb87f65d3119fa59d8335deeb825",
      "parents": [
        "15cdeadaa5d76009e20c7792aed69f5a73808f97"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Sep 21 21:17:33 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 22 13:13:33 2010 -0700"
      },
      "message": "netfilter: nf_nat_snmp: fix checksum calculation (v4)\n\nFix checksum calculation in nf_nat_snmp_basic.\n\nBased on patches by Clark Wang \u003cwtweeker@163.com\u003e and\nStephen Hemminger \u003cshemminger@vyatta.com\u003e.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d17622\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "b46ffb854554ff939701bdd492b81558da5706fc"
}
