)]}'
{
  "log": [
    {
      "commit": "e688a604807647c9450f9c12a7cb6d027150a895",
      "tree": "6b3df826b4a42affdfc9d58d74f5e17c063cc7d6",
      "parents": [
        "7838f2ce36b6ab5c13ef20b1857e3bbd567f1759"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Dec 22 04:15:53 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 22 22:34:56 2011 -0500"
      },
      "message": "net: introduce DST_NOPEER dst flag\n\nChris Boot reported crashes occurring in ipv6_select_ident().\n\n[  461.457562] RIP: 0010:[\u003cffffffff812dde61\u003e]  [\u003cffffffff812dde61\u003e]\nipv6_select_ident+0x31/0xa7\n\n[  461.578229] Call Trace:\n[  461.580742] \u003cIRQ\u003e\n[  461.582870]  [\u003cffffffff812efa7f\u003e] ? udp6_ufo_fragment+0x124/0x1a2\n[  461.589054]  [\u003cffffffff812dbfe0\u003e] ? ipv6_gso_segment+0xc0/0x155\n[  461.595140]  [\u003cffffffff812700c6\u003e] ? skb_gso_segment+0x208/0x28b\n[  461.601198]  [\u003cffffffffa03f236b\u003e] ? ipv6_confirm+0x146/0x15e\n[nf_conntrack_ipv6]\n[  461.608786]  [\u003cffffffff81291c4d\u003e] ? nf_iterate+0x41/0x77\n[  461.614227]  [\u003cffffffff81271d64\u003e] ? dev_hard_start_xmit+0x357/0x543\n[  461.620659]  [\u003cffffffff81291cf6\u003e] ? nf_hook_slow+0x73/0x111\n[  461.626440]  [\u003cffffffffa0379745\u003e] ? br_parse_ip_options+0x19a/0x19a\n[bridge]\n[  461.633581]  [\u003cffffffff812722ff\u003e] ? dev_queue_xmit+0x3af/0x459\n[  461.639577]  [\u003cffffffffa03747d2\u003e] ? br_dev_queue_push_xmit+0x72/0x76\n[bridge]\n[  461.646887]  [\u003cffffffffa03791e3\u003e] ? br_nf_post_routing+0x17d/0x18f\n[bridge]\n[  461.653997]  [\u003cffffffff81291c4d\u003e] ? nf_iterate+0x41/0x77\n[  461.659473]  [\u003cffffffffa0374760\u003e] ? br_flood+0xfa/0xfa [bridge]\n[  461.665485]  [\u003cffffffff81291cf6\u003e] ? nf_hook_slow+0x73/0x111\n[  461.671234]  [\u003cffffffffa0374760\u003e] ? br_flood+0xfa/0xfa [bridge]\n[  461.677299]  [\u003cffffffffa0379215\u003e] ?\nnf_bridge_update_protocol+0x20/0x20 [bridge]\n[  461.684891]  [\u003cffffffffa03bb0e5\u003e] ? nf_ct_zone+0xa/0x17 [nf_conntrack]\n[  461.691520]  [\u003cffffffffa0374760\u003e] ? br_flood+0xfa/0xfa [bridge]\n[  461.697572]  [\u003cffffffffa0374812\u003e] ? NF_HOOK.constprop.8+0x3c/0x56\n[bridge]\n[  461.704616]  [\u003cffffffffa0379031\u003e] ?\nnf_bridge_push_encap_header+0x1c/0x26 [bridge]\n[  461.712329]  [\u003cffffffffa037929f\u003e] ? br_nf_forward_finish+0x8a/0x95\n[bridge]\n[  461.719490]  [\u003cffffffffa037900a\u003e] ?\nnf_bridge_pull_encap_header+0x1c/0x27 [bridge]\n[  461.727223]  [\u003cffffffffa0379974\u003e] ? br_nf_forward_ip+0x1c0/0x1d4 [bridge]\n[  461.734292]  [\u003cffffffff81291c4d\u003e] ? nf_iterate+0x41/0x77\n[  461.739758]  [\u003cffffffffa03748cc\u003e] ? __br_deliver+0xa0/0xa0 [bridge]\n[  461.746203]  [\u003cffffffff81291cf6\u003e] ? nf_hook_slow+0x73/0x111\n[  461.751950]  [\u003cffffffffa03748cc\u003e] ? __br_deliver+0xa0/0xa0 [bridge]\n[  461.758378]  [\u003cffffffffa037533a\u003e] ? NF_HOOK.constprop.4+0x56/0x56\n[bridge]\n\nThis is caused by bridge netfilter special dst_entry (fake_rtable), a\nspecial shared entry, where attaching an inetpeer makes no sense.\n\nProblem is present since commit 87c48fa3b46 (ipv6: make fragment\nidentifications less predictable)\n\nIntroduce DST_NOPEER dst flag and make sure ipv6_select_ident() and\n__ip_select_ident() fallback to the \u0027no peer attached\u0027 handling.\n\nReported-by: Chris Boot \u003cbootc@bootc.net\u003e\nTested-by: Chris Boot \u003cbootc@bootc.net\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b9eda06f80b0db61a73bd87c6b0eb67d8aca55ad",
      "tree": "9b5efa31d7a551dd86f4a338b9fba618ac83826c",
      "parents": [
        "ecefc36b41ac0fe92d76273a23faf27b2da13411"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Thu Dec 22 17:03:29 2011 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 22 09:16:09 2011 -0800"
      },
      "message": "ipv4: using prefetch requires including prefetch.h\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9f28a2fc0bd77511f649c0a788c7bf9a5fd04edb",
      "tree": "ea154ab2f82d422b1d6ed835c89acdb16b47d4f7",
      "parents": [
        "b4949b84567f3ae1227d076fc95bbd8efea06506"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Dec 21 15:47:16 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 21 15:47:16 2011 -0500"
      },
      "message": "ipv4: reintroduce route cache garbage collector\n\nCommit 2c8cec5c10b (ipv4: Cache learned PMTU information in inetpeer)\nremoved IP route cache garbage collector a bit too soon, as this gc was\nresponsible for expired routes cleanup, releasing their neighbour\nreference.\n\nAs pointed out by Robert Gladewitz, recent kernels can fill and exhaust\ntheir neighbour cache.\n\nReintroduce the garbage collection, since we\u0027ll have to wait our\nneighbour lookups become refcount-less to not depend on this stuff.\n\nReported-by: Robert Gladewitz \u003cgladewitz@gmx.de\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "de398fb8b92eba3447298053a483727bdd5fe37e",
      "tree": "2b13b1a58a9cdbdbea44bc4095bf8a2893a38ee5",
      "parents": [
        "f61759e6b831a55b89e584b198c3da325e2bc379"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 05 13:21:42 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 05 13:21:42 2011 -0500"
      },
      "message": "ipv4: Fix peer validation on cached lookup.\n\nIf ipv4_valdiate_peer() fails during a cached entry lookup,\nwe\u0027ll NULL derer since the loop iterator assumes rth is not\nNULL.\n\nLetting this be handled as a failure is just bogus, so just make it\nnot fail.  If we have trouble getting a non-NULL neighbour for the\nredirected gateway, just restore the original gateway and continue.\n\nThe very next use of this cached route will try again.\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f61759e6b831a55b89e584b198c3da325e2bc379",
      "tree": "5fe945faa11f90ea10ec54bf4cbf76044945de13",
      "parents": [
        "5983fe2b29df5885880d7fa3b91aca306c7564ef"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Fri Dec 02 11:39:42 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Dec 03 01:32:23 2011 -0500"
      },
      "message": "ipv4: make sure RTO_ONLINK is saved in routing cache\n\n__mkroute_output fails to work with the original tos\nand uses value with stripped RTO_ONLINK bit. Make sure we put\nthe original TOS bits into rt_key_tos because it used to match\ncached route.\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "efbc368dcc6426d5430b9b8eeda944cf2cb74b8c",
      "tree": "b5b27a1d0df7fd5808b2c58c605bf9c563cc9056",
      "parents": [
        "8f891489866ec62a87494eff3ed17c88152c32d4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 01 13:38:59 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 01 13:38:59 2011 -0500"
      },
      "message": "ipv4: Perform peer validation on cached route lookup.\n\nOtherwise we won\u0027t notice the peer GENID change.\n\nReported-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "218fa90f072e4aeff9003d57e390857f4f35513e",
      "tree": "09563123179d16ab4ba74812c741b72636268ca1",
      "parents": [
        "f7e57044eeb1841847c24aa06766c8290c202583"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 29 20:05:55 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 30 17:24:14 2011 -0500"
      },
      "message": "ipv4: fix lockdep splat in rt_cache_seq_show\n\nAfter commit f2c31e32b378 (fix NULL dereferences in check_peer_redir()),\ndst_get_neighbour() should be guarded by rcu_read_lock() /\nrcu_read_unlock() section.\n\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": "de68dca1816660b0d3ac89fa59ffb410007a143f",
      "tree": "9a31e87c6e0504627df25d3a1d39ca7825dcd779",
      "parents": [
        "0884d7aa24e15e72b3c07f7da910a13bb7df3592"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sat Nov 26 12:13:44 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 26 19:16:37 2011 -0500"
      },
      "message": "inet: add a redirect generation id in inetpeer\n\nNow inetpeer is the place where we cache redirect information for ipv4\ndestinations, we must be able to invalidate informations when a route is\nadded/removed on host.\n\nAs inetpeer is not yet namespace aware, this patch adds a shared\nredirect_genid, and a per inetpeer redirect_genid. This might be changed\nlater if inetpeer becomes ns aware.\n\nCache information for one inerpeer is valid as long as its\nredirect_genid has the same value than global redirect_genid.\n\nReported-by: Arkadiusz Miśkiewicz \u003ca.miskiewicz@gmail.com\u003e\nTested-by: Arkadiusz Miśkiewicz \u003ca.miskiewicz@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": "261663b0ee2ee8e3947f4c11c1a08be18cd2cea1",
      "tree": "12cf5a46c7c5ec2f615826b975fa85473e054bd7",
      "parents": [
        "b8400f3718a11c9b0ca400705cddf94f3132c1c3"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed Nov 23 02:14:50 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 26 14:29:52 2011 -0500"
      },
      "message": "ipv4: Don\u0027t use the cached pmtu informations for input routes\n\nThe pmtu informations on the inetpeer are visible for output and\ninput routes. On packet forwarding, we might propagate a learned\npmtu to the sender. As we update the pmtu informations of the\ninetpeer on demand, the original sender of the forwarded packets\nmight never notice when the pmtu to that inetpeer increases.\nSo use the mtu of the outgoing device on packet forwarding instead\nof the pmtu to the final destination.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "618f9bc74a039da76fa027ac2600c5b785b964c5",
      "tree": "ff69bc14b711c9c9d4c691d2a8c262401d62c8c9",
      "parents": [
        "ebb762f27fed083cb993a0816393aba4615f6544"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed Nov 23 02:13:31 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 26 14:29:51 2011 -0500"
      },
      "message": "net: Move mtu handling down to the protocol depended handlers\n\nWe move all mtu handling from dst_mtu() down to the protocol\nlayer. So each protocol can implement the mtu handling in\na different manner.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ebb762f27fed083cb993a0816393aba4615f6544",
      "tree": "c065070f78d4a272d99183606d103519426bb344",
      "parents": [
        "6b600b26c0215bf9ed04062ecfacf0bc20e2588c"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed Nov 23 02:12:51 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 26 14:29:50 2011 -0500"
      },
      "message": "net: Rename the dst_opt default_mtu method to mtu\n\nWe plan to invoke the dst_opt-\u003edefault_mtu() method unconditioally\nfrom dst_mtu(). So rename the method to dst_opt-\u003emtu() to match\nthe name with the new meaning.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6b600b26c0215bf9ed04062ecfacf0bc20e2588c",
      "tree": "a3dbd36f83c8c3d813b1422e472af6a31ace40d2",
      "parents": [
        "df07a94cf50eb73d09bf2350c3fe2598e4cbeee1"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed Nov 23 02:12:13 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 26 14:29:50 2011 -0500"
      },
      "message": "route: Use the device mtu as the default for blackhole routes\n\nAs it is, we return null as the default mtu of blackhole routes.\nThis may lead to a propagation of a bogus pmtu if the default_mtu\nmethod of a blackhole route is invoked. So return dst-\u003edev-\u003emtu\nas the default mtu instead.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9cc20b268a5a14f5e57b8ad405a83513ab0d78dc",
      "tree": "f0dc4bce125d845703ef6377d645a5ca9864e612",
      "parents": [
        "fb120c0a2775b0d2d095a99ea8432bfb5d444ab2"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Nov 18 15:24:32 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 18 15:24:32 2011 -0500"
      },
      "message": "ipv4: fix redirect handling\n\ncommit f39925dbde77 (ipv4: Cache learned redirect information in\ninetpeer.) introduced a regression in ICMP redirect handling.\n\nIt assumed ipv4_dst_check() would be called because all possible routes\nwere attached to the inetpeer we modify in ip_rt_redirect(), but thats\nnot true.\n\ncommit 7cc9150ebe (route: fix ICMP redirect validation) tried to fix\nthis but solution was not complete. (It fixed only one route)\n\nSo we must lookup existing routes (including different TOS values) and\ncall check_peer_redir() on them.\n\nReported-by: Ivan Zahariev \u003cfamzah@icdsoft.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Flavio Leitner \u003cfbl@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2bc8ca40f951163b3bb75949479e2755c12c1b96",
      "tree": "1ca54c227a481d4cab0ca60a0f0533d5ae47042a",
      "parents": [
        "20db93c34095553a01a9c31136658917bf1fa5d5"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Oct 11 01:12:02 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 08 14:40:40 2011 -0500"
      },
      "message": "ipv4: Fix inetpeer expire time information\n\nAs we update the learned pmtu informations on demand, we might\nreport a nagative expiration time value to userspace if the\npmtu informations are already expired and we have not send a\npacket to that inetpeer after expiration. With this patch we\nsend a expire time of null to userspace after expiration\nuntil the next packet is send to that inetpeer.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "59445b6b1f90b97c4e28062b96306bacfa4fb170",
      "tree": "61408e20f1e56c98a5b377ae02079dc5c229af00",
      "parents": [
        "1805b2f04855f07afe3a71d620a68f483b0ed74f"
      ],
      "author": {
        "name": "Gao feng",
        "email": "gaofeng@cn.fujitsu.com",
        "time": "Wed Oct 19 15:34:09 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 24 18:30:07 2011 -0400"
      },
      "message": "ipv4: avoid useless call of the function check_peer_pmtu\n\nIn func ipv4_dst_check,check_peer_pmtu should be called only when peer is updated.\nSo,if the peer is not updated in ip_rt_frag_needed,we can not inc __rt_peer_genid.\n\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1805b2f04855f07afe3a71d620a68f483b0ed74f",
      "tree": "b823b90f37f5404fcaef70f785c70112ca74a329",
      "parents": [
        "78d81d15b74246c7cedf84894434890b33da3907",
        "f42af6c486aa5ca6ee62800cb45c5b252020509d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 24 18:18:09 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 24 18:18:09 2011 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of ra.kernel.org:/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "7cc9150ebe8ec06cafea9f1c10d92ddacf88d8ae",
      "tree": "0820f1a9de3a2b1a81913550056518c21950e7f8",
      "parents": [
        "da92b194cc36b5dc1fbd85206aeeffd80bee0c39"
      ],
      "author": {
        "name": "Flavio Leitner",
        "email": "fbl@redhat.com",
        "time": "Mon Oct 24 02:56:38 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 24 02:56:38 2011 -0400"
      },
      "message": "route: fix ICMP redirect validation\n\nThe commit f39925dbde7788cfb96419c0f092b086aa325c0f\n(ipv4: Cache learned redirect information in inetpeer.)\nremoved some ICMP packet validations which are required by\nRFC 1122, section 3.2.2.2:\n...\n  A Redirect message SHOULD be silently discarded if the new\n  gateway address it specifies is not on the same connected\n  (sub-) net through which the Redirect arrived [INTRO:2,\n  Appendix A], or if the source of the Redirect is not the\n  current first-hop gateway for the specified destination (see\n  Section 3.3.1).\n\nSigned-off-by: Flavio Leitner \u003cfbl@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "349d2895cc8b7db1f5be677cd685209a3805d2ed",
      "tree": "516d4bb328bad8920f178c639b1880d5ec582eb8",
      "parents": [
        "a355d865f99d0dbbaba5595416e292592bd347dd"
      ],
      "author": {
        "name": "Vasily Averin",
        "email": "vvs@sw.ru",
        "time": "Fri Sep 30 01:11:10 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 03 14:13:01 2011 -0400"
      },
      "message": "ipv4: NET_IPV4_ROUTE_GC_INTERVAL removal\n\nremoving obsoleted sysctl,\nip_rt_gc_interval variable no longer used since 2.6.38\n\nSigned-off-by: Vasily Averin \u003cvvs@sw.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "823dcd2506fa369aeb8cbd26da5663efe2fda9a9",
      "tree": "853b3e3c05f0b9ee1b5df8464db19b7acc57150c",
      "parents": [
        "eaa36660de7e174498618d69d7277d44a2f24c3d",
        "98e77438aed3cd3343cbb86825127b1d9d2bea33"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Aug 20 10:39:12 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Aug 20 10:39:12 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "33d480ce6d43326e2541fd79b3548858a174ec3c",
      "tree": "c938ee8c07a2e0f33178069b55439a54188f38fa",
      "parents": [
        "cd28ca0a3dd17c68d24b839602a0e6268ad28b5d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Aug 11 19:30:52 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 12 02:55:28 2011 -0700"
      },
      "message": "net: cleanup some rcu_dereference_raw\n\nRCU api had been completed and rcu_access_pointer() or\nrcu_dereference_protected() are better than generic\nrcu_dereference_raw()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "97a804102021431fa6fa33c21c85df762b0f5cb9",
      "tree": "d5ac89119d3ba2c7d28deda9a8b7f46c4f0d86c1",
      "parents": [
        "5189054dd7ff18576446edc270b6b69fa8285336"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Tue Aug 09 04:01:16 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 11 05:58:59 2011 -0700"
      },
      "message": "ipv4: some rt_iif -\u003e rt_route_iif conversions\n\nAs rt_iif represents input device even for packets\ncoming from loopback with output route, it is not an unique\nkey specific to input routes. Now rt_route_iif has such role,\nit was fl.iif in 2.6.38, so better to change the checks at\nsome places to save CPU cycles and to restore 2.6.38 semantics.\n\ncompare_keys:\n\t- input routes: only rt_route_iif matters, rt_iif is same\n\t- output routes: only rt_oif matters, rt_iif is not\n\t\tused for matching in __ip_route_output_key\n\t- now we are back to 2.6.38 state\n\nip_route_input_common:\n\t- matching rt_route_iif implies input route\n\t- compared to 2.6.38 we eliminated one rth-\u003efl.oif check\n\tbecause it was not needed even for 2.6.38\n\ncompare_hash_inputs:\n\tOnly the change here is not an optimization, it has\n\teffect only for output routes. I assume I\u0027m restoring\n\tthe original intention to ignore oif, it was using fl.iif\n\t- now we are back to 2.6.38 state\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d547f727df86059104af2234804fdd538e112015",
      "tree": "be54058b51ae121709242553e4aefde5662f734c",
      "parents": [
        "025890b4ed433b9c9e0f221bb806d42d049c87fe"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Sun Aug 07 22:20:20 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 07 22:20:20 2011 -0700"
      },
      "message": "ipv4: fix the reusing of routing cache entries\n\n\tcompare_keys and ip_route_input_common rely on\nrt_oif for distinguishing of input and output routes\nwith same keys values. But sometimes the input route has\nalso same hash chain (keyed by iif !\u003d 0) with the output\nroutes (keyed by orig_oif\u003d0). Problem visible if running\nwith small number of rhash_entries.\n\n\tFix them to use rt_route_iif instead. By this way\ninput route can not be returned to users that request\noutput route.\n\n\tThe patch fixes the ip_rt_bug errors that were\nreported in ip_local_out context, mostly for 255.255.255.255\ndestinations.\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6e5714eaf77d79ae1c8b47e3e040ff5411b717ec",
      "tree": "30bd0d7a6a0a6ff0ace6da1835ae7b7167cce5e4",
      "parents": [
        "bc0b96b54a21246e377122d54569eef71cec535f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 03 20:50:44 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Aug 06 18:33:19 2011 -0700"
      },
      "message": "net: Compute protocol sequence numbers and fragment IDs using MD5.\n\nComputers have become a lot faster since we compromised on the\npartial MD4 hash which we use currently for performance reasons.\n\nMD5 is a much safer choice, and is inline with both RFC1948 and\nother ISS generators (OpenBSD, Solaris, etc.)\n\nFurthermore, only having 24-bits of the sequence number be truly\nunpredictable is a very serious limitation.  So the periodic\nregeneration and 8-bit counter have been removed.  We compute and\nuse a full 32-bit sequence number.\n\nFor ipv6, DCCP was found to use a 32-bit truncated initial sequence\nnumber (it needs 43-bits) and that is fixed here as well.\n\nReported-by: Dan Kaminsky \u003cdan@doxpara.com\u003e\nTested-by: Willy Tarreau \u003cw@1wt.eu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f2c31e32b378a6653f8de606149d963baf11d7d3",
      "tree": "4eeb8075a93520935381a75514f309228e6824c0",
      "parents": [
        "28f4881cbf9ce285edfc245a8990af36d21c062f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Jul 29 19:00:53 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 03 03:34:12 2011 -0700"
      },
      "message": "net: fix NULL dereferences in check_peer_redir()\n\nGergely Kalman reported crashes in check_peer_redir().\n\nIt appears commit f39925dbde778 (ipv4: Cache learned redirect\ninformation in inetpeer.) added a race, leading to possible NULL ptr\ndereference.\n\nSince we can now change dst neighbour, we should make sure a reader can\nsafely use a neighbour.\n\nAdd RCU protection to dst neighbour, and make sure check_peer_redir()\ncan be called safely by different cpus in parallel.\n\nAs neighbours are already freed after one RCU grace period, this patch\nshould not add typical RCU penalty (cache cold effects)\n\nMany thanks to Gergely for providing a pretty report pointing to the\nbug.\n\nReported-by: Gergely Kalman \u003csynapse@hippy.csoma.elte.hu\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b0fe4a31849063fcac0bdc93716ca92615e93f57",
      "tree": "440cba41924eb7f32a3f1506715c6fc50663d98a",
      "parents": [
        "f6226dec5081f55bf7820b74a9acb7b20a8930a5"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Sat Jul 23 02:00:41 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 23 20:05:31 2011 -0700"
      },
      "message": "ipv4: use RT_TOS after some rt_tos conversions\n\nrt_tos was changed to iph-\u003etos but it must be filtered by RT_TOS\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d3aaeb38c40e5a6c08dd31a1b64da65c4352be36",
      "tree": "1c17b41d11edc7a7b3477a294cba440f2a14796c",
      "parents": [
        "69cce1d1404968f78b177a0314f5822d5afdbbfb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 18 00:40:17 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 18 00:40:17 2011 -0700"
      },
      "message": "net: Add -\u003eneigh_lookup() operation to dst_ops\n\nIn the future dst entries will be neigh-less.  In that environment we\nneed to have an easy transition point for current users of\ndst-\u003eneighbour outside of the packet output fast path.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "69cce1d1404968f78b177a0314f5822d5afdbbfb",
      "tree": "26223264fd69ea8078d0013fd5a76eb7aeb04c12",
      "parents": [
        "9cbb7ecbcff85077bb12301aaf4c9b5a56c5993d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 17 23:09:49 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 17 23:11:35 2011 -0700"
      },
      "message": "net: Abstract dst-\u003eneighbour accesses behind helpers.\n\ndst_{get,set}_neighbour()\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b23b5455b6458920179a1f27513ce42e70d11f37",
      "tree": "d7bd2c13199485c2504d6b315d451cebba6978ae",
      "parents": [
        "47ec132a40d788d45e2f088545dea68798034dab"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 16 17:45:02 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 16 17:45:02 2011 -0700"
      },
      "message": "neigh: Kill hh_cache-\u003ehh_output\n\nIt\u0027s just taking on one of two possible values, either\nneigh_ops-\u003eoutput or dev_queue_xmit().  And this is purely depending\nupon whether nud_state has NUD_CONNECTED set or not.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6b72b6217f8c24f2a54988e58af858b4e66024d",
      "tree": "c59d5adcf9bb226db6f602c5078106052524cfea",
      "parents": [
        "390fd0b388e4f85549e5d60bdeb21364b344d9b9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 14 07:53:20 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 14 07:53:20 2011 -0700"
      },
      "message": "net: Embed hh_cache inside of struct neighbour.\n\nNow that there is a one-to-one correspondance between neighbour\nand hh_cache entries, we no longer need:\n\n1) dynamic allocation\n2) attachment to dst-\u003ehh\n3) refcounting\n\nInitialization of the hh_cache entry is indicated by hh_len\nbeing non-zero, and such initialization is always done with\nthe neighbour\u0027s lock held as a writer.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3769cffb1c48f64640ffab7ce3bffe867342c0f0",
      "tree": "8f6fcf2d822bf3a170a534e8540faa34fe9258ef",
      "parents": [
        "e5b1de1f5ebe0200e988e195fefb6c7396de6e20"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 11 22:44:24 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 13 01:12:28 2011 -0700"
      },
      "message": "ipv4: Inline neigh binding.\n\nGet rid of all of the useless and costly indirection\nby doing the neigh hash table lookup directly inside\nof the neighbour binding.\n\nRename from arp_bind_neighbour to rt_bind_neighbour.\n\nUse new helpers {__,}ipv4_neigh_lookup()\n\nIn rt_bind_neighbour() get rid of useless tests which\nare never true in the context this function is called,\nnamely dev is never NULL and the dst-\u003eneighbour is\nalways NULL.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4500ebf8d1cc749e1b438136745127e437c54002",
      "tree": "9a94dccd7da67ee77cddb43dc0998b50b339f0ac",
      "parents": [
        "181b1e9ce1b9e705d4cd27b542ce05bc43abdab0"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Jul 01 09:43:07 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 01 16:11:16 2011 -0700"
      },
      "message": "ipv4: Reduce switch/case indent\n\nMake the case labels the same indent as the switch.\n\ngit diff -w shows no difference.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9f6ec8d697c08963d83880ccd35c13c5ace716ea",
      "tree": "ad8d93cf6fcdd09b86ade09f5fcbbc66cdb1cca2",
      "parents": [
        "4aa3a715551c93eda32d79bd52042ce500bd5383",
        "56299378726d5f2ba8d3c8cbbd13cb280ba45e4f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 20 22:29:08 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 20 22:29:08 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/wireless/iwlwifi/iwl-agn-rxon.c\n\tdrivers/net/wireless/rtlwifi/pci.c\n\tnet/netfilter/ipvs/ip_vs_core.c\n"
    },
    {
      "commit": "9aa3c94ce59066f545521033007abb6441706068",
      "tree": "12b23e85bf4ef55ca856168dcbdb54f39045312a",
      "parents": [
        "eeb1497277d6b1a0a34ed36b97e18f2bd7d6de0d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sat Jun 18 11:59:18 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 18 11:59:18 2011 -0700"
      },
      "message": "ipv4: fix multicast losses\n\nKnut Tidemann found that first packet of a multicast flow was not\ncorrectly received, and bisected the regression to commit b23dd4fe42b4\n(Make output route lookup return rtable directly.)\n\nSpecial thanks to Knut, who provided a very nice bug report, including\nsample programs to demonstrate the bug.\n\nReported-and-bisectedby: Knut Tidemann \u003cknut.andre.tidemann@jotron.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c7ac8679bec9397afe8918f788cbcef88c38da54",
      "tree": "c152712de4c997ea79252ef9ac72aaedb8f88c18",
      "parents": [
        "929dd047720785f099e12113780b3d7914ce6d9f"
      ],
      "author": {
        "name": "Greg Rose",
        "email": "gregory.v.rose@intel.com",
        "time": "Fri Jun 10 01:27:09 2011 +0000"
      },
      "committer": {
        "name": "Jeff Kirsher",
        "email": "jeffrey.t.kirsher@intel.com",
        "time": "Thu Jun 09 20:38:07 2011 -0700"
      },
      "message": "rtnetlink: Compute and store minimum ifinfo dump size\n\nThe message size allocated for rtnl ifinfo dumps was limited to\na single page.  This is not enough for additional interface info\navailable with devices that support SR-IOV and caused a bug in\nwhich VF info would not be displayed if more than approximately\n40 VFs were created per interface.\n\nImplement a new function pointer for the rtnl_register service that will\ncalculate the amount of data required for the ifinfo dump and allocate\nenough data to satisfy the request.\n\nSigned-off-by: Greg Rose \u003cgregory.v.rose@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\n"
    },
    {
      "commit": "fe6fe792faec3fc2d2db39b69651682b8c4e7fcb",
      "tree": "bf2ea12d05616187177ae7b699c1349f4cf79871",
      "parents": [
        "6c43e0465f56248d9da56f2c4665ce1696766814"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jun 08 06:07:07 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 09 00:24:53 2011 -0700"
      },
      "message": "net: pmtu_expires fixes\n\ncommit 2c8cec5c10bc (ipv4: Cache learned PMTU information in inetpeer)\nadded some racy peer-\u003epmtu_expires accesses.\n\nAs its value can be changed by another cpu/thread, we should be more\ncareful, reading its value once.\n\nAdd peer_pmtu_expired() and peer_pmtu_cleaned() helpers\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c378a9c019cf5e017d1ed24954b54fae7bebd2bc",
      "tree": "4ac192542d8c5de29fc014f56b659a554f59017c",
      "parents": [
        "3137663dfb43bb3e3174e9da81db0c05f395fc1b"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sat May 21 07:16:42 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 22 21:01:20 2011 -0400"
      },
      "message": "ipv4: Give backtrace in ip_rt_bug().\n\nAdd a stack backtrace to the ip_rt_bug path for debugging\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a48eff128865aa20520fa6e0e0c5fbd2ac50d712",
      "tree": "c60e376c3fca23bb215c977e42661187076dccbf",
      "parents": [
        "ed2361e66eec60645f8e4715fe39a42235ef43ae"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 18 18:42:43 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 18 18:42:43 2011 -0400"
      },
      "message": "ipv4: Pass explicit destination address to rt_bind_peer().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6882f933ccee5c3a86443ffc7621ce888b93ab6b",
      "tree": "07998f54bd459c5345491fbaeae03bd60540c6e8",
      "parents": [
        "12f4d0a8770ab26639091d0b2509b19681daad69"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 18 18:23:21 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 18 18:23:21 2011 -0400"
      },
      "message": "ipv4: Kill RT_CACHE_DEBUG\n\nIt\u0027s way past it\u0027s usefulness.  And this gets rid of a bunch\nof stray -\u003ert_{dst,src} references.\n\nEven the comment documenting the macro was inaccurate (stated\ndefault was 1 when it\u0027s 0).\n\nIf reintroduced, it should be done properly, with dynamic debug\nfacilities.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c5be24ff62d238a3fdd5d15461b420cd72e78a14",
      "tree": "fcdeb6a8ee58e96547b41df593fd193894620709",
      "parents": [
        "1a8218e96271790a07dd7065a2ef173e0f67e328"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 13 18:01:21 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 16 13:49:05 2011 -0400"
      },
      "message": "ipv4: Trivial rt-\u003ert_src conversions in net/ipv4/route.c\n\nAt these points we have a fully filled in value via the IP\nheader the form of ip_hdr(skb)-\u003esaddr\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8e36360ae876995e92d3a7538dda70548e64e685",
      "tree": "d477e086bb35d2de8a6f54b461abeb24be8a4f5b",
      "parents": [
        "22f728f8f311659b068e73ed92833c205651a47f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 13 17:29:41 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 13 17:29:41 2011 -0400"
      },
      "message": "ipv4: Remove route key identity dependencies in ip_rt_get_source().\n\nPass in the sk_buff so that we can fetch the necessary keys from\nthe packet header when working with input routes.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9a1b9496cd2b013f74885218947fa7120d53e74c",
      "tree": "a48d2fdf14a7445a15a7553ef8b7a8732b5bcac1",
      "parents": [
        "dd927a2694ee412b440284dd72dd8e32caada3fc"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 04 12:18:54 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 04 12:18:54 2011 -0700"
      },
      "message": "ipv4: Pass explicit saddr/daddr args to ipmr_get_route().\n\nThis eliminates the need to use rt-\u003ert_{src,dst}.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "475949d8e86bbde5ea3ffa4d95e022ca69233b14",
      "tree": "5e29156df321b617366921f64532fc353019b238",
      "parents": [
        "417da66fa9d2f14b1a90b04095413b87907d8183"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 03 19:45:15 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 03 19:45:15 2011 -0700"
      },
      "message": "ipv4: Renamt struct rtable\u0027s rt_tos to rt_key_tos.\n\nTo more accurately reflect that it is purely a routing\ncache lookup key and is used in no other context.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5615787257742aab42ecf17c11e3244d9536a48d",
      "tree": "f9c8a74398964690e3b9583cec99dfc7e7b45511",
      "parents": [
        "14ad2513ed5b709e566a853f4b515d91c5d83311"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 02 14:37:45 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 02 14:37:45 2011 -0700"
      },
      "message": "ipv4: Make sure flowi4-\u003e{saddr,daddr} are always set.\n\nSlow path output route resolution always makes sure that\n-\u003e{saddr,daddr} are set, and also if we trigger into IPSEC resolution\nwe initialize them as well, because xfrm_lookup() expects them to be\nfully resolved.\n\nBut if we hit the fast path and flowi4-\u003eflowi4_proto is zero, we won\u0027t\ndo this initialization.\n\nTherefore, move the IPSEC path initialization to the route cache\nlookup fast path to make sure these are always set.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "813b3b5db831ddbd92b5ce0fdeb74e3368f1323c",
      "tree": "636c404ea6f255c0b8793af4e83f9df19d61c94f",
      "parents": [
        "cf91166223772ef4a2ed98b9874958bf6a2470df"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 28 14:48:42 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 28 22:26:00 2011 -0700"
      },
      "message": "ipv4: Use caller\u0027s on-stack flowi as-is in output route lookups.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf91166223772ef4a2ed98b9874958bf6a2470df",
      "tree": "f8c86cc60798db9e4469031a8dceb5fcb512fb81",
      "parents": [
        "5c1e6aa300a7a669dc469d2dcb20172c6bd8fed9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 28 14:31:47 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 28 22:26:00 2011 -0700"
      },
      "message": "net: Use non-zero allocations in dst_alloc().\n\nMake dst_alloc() and it\u0027s users explicitly initialize the entire\nentry.\n\nThe zero\u0027ing done by kmem_cache_zalloc() was almost entirely\nredundant.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5c1e6aa300a7a669dc469d2dcb20172c6bd8fed9",
      "tree": "61796a49f8b9236eee4730ff8142e79bd43f0f51",
      "parents": [
        "778865a550e7958c1211242cc481f48d46de0f04"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 28 14:13:38 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 28 22:25:59 2011 -0700"
      },
      "message": "net: Make dst_alloc() take more explicit initializations.\n\nNow the dst-\u003edev, dev-\u003eobsolete, and dst-\u003eflags values can\nbe specified as well.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2bd93d7af1581d40e3c4b25242472661cb7c637a",
      "tree": "43c638422d20857339d8d908d6b65ebb8045edc0",
      "parents": [
        "64cad2ade1e6f890531a58318ca9ee013f92ef2f",
        "0972ddb2373d5e127aabdcabd8305eff0242cd0b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 26 12:16:46 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 26 12:16:46 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nResolved logic conflicts causing a build failure due to\ndrivers/net/r8169.c changes using a patch from Stephen Rothwell.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0972ddb2373d5e127aabdcabd8305eff0242cd0b",
      "tree": "6040853adf2a2aac1df2551e3e7695e902a03905",
      "parents": [
        "8c61d9d611cb5b290f1b4ac57c4631acfd6e3b5a"
      ],
      "author": {
        "name": "Held Bernhard",
        "email": "berny156@gmx.de",
        "time": "Sun Apr 24 22:07:32 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 25 11:53:08 2011 -0700"
      },
      "message": "net: provide cow_metrics() methods to blackhole dst_ops\n\nSince commit 62fa8a846d7d (net: Implement read-only protection and COW\u0027ing\nof metrics.) the kernel throws an oops.\n\n[  101.620985] BUG: unable to handle kernel NULL pointer dereference at\n           (null)\n[  101.621050] IP: [\u003c          (null)\u003e]           (null)\n[  101.621084] PGD 6e53c067 PUD 3dd6a067 PMD 0\n[  101.621122] Oops: 0010 [#1] SMP\n[  101.621153] last sysfs file: /sys/devices/virtual/ppp/ppp/uevent\n[  101.621192] CPU 2\n[  101.621206] Modules linked in: l2tp_ppp pppox ppp_generic slhc\nl2tp_netlink l2tp_core deflate zlib_deflate twofish_x86_64\ntwofish_common des_generic cbc ecb sha1_generic hmac af_key\niptable_filter snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device loop\nsnd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_intel snd_hda_codec\nsnd_pcm snd_timer snd i2c_i801 iTCO_wdt psmouse soundcore snd_page_alloc\nevdev uhci_hcd ehci_hcd thermal\n[  101.621552]\n[  101.621567] Pid: 5129, comm: openl2tpd Not tainted 2.6.39-rc4-Quad #3\nGigabyte Technology Co., Ltd. G33-DS3R/G33-DS3R\n[  101.621637] RIP: 0010:[\u003c0000000000000000\u003e]  [\u003c          (null)\u003e]   (null)\n[  101.621684] RSP: 0018:ffff88003ddeba60  EFLAGS: 00010202\n[  101.621716] RAX: ffff88003ddb5600 RBX: ffff88003ddb5600 RCX:\n0000000000000020\n[  101.621758] RDX: ffffffff81a69a00 RSI: ffffffff81b7ee61 RDI:\nffff88003ddb5600\n[  101.621800] RBP: ffff8800537cd900 R08: 0000000000000000 R09:\nffff88003ddb5600\n[  101.621840] R10: 0000000000000005 R11: 0000000000014b38 R12:\nffff88003ddb5600\n[  101.621881] R13: ffffffff81b7e480 R14: ffffffff81b7e8b8 R15:\nffff88003ddebad8\n[  101.621924] FS:  00007f06e4182700(0000) GS:ffff88007fd00000(0000)\nknlGS:0000000000000000\n[  101.621971] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[  101.622005] CR2: 0000000000000000 CR3: 0000000045274000 CR4:\n00000000000006e0\n[  101.622046] DR0: 0000000000000000 DR1: 0000000000000000 DR2:\n0000000000000000\n[  101.622087] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7:\n0000000000000400\n[  101.622129] Process openl2tpd (pid: 5129, threadinfo\nffff88003ddea000, task ffff88003de9a280)\n[  101.622177] Stack:\n[  101.622191]  ffffffff81447efa ffff88007d3ded80 ffff88003de9a280\nffff88007d3ded80\n[  101.622245]  0000000000000001 ffff88003ddebbb8 ffffffff8148d5a7\n0000000000000212\n[  101.622299]  ffff88003dcea000 ffff88003dcea188 ffffffff00000001\nffffffff81b7e480\n[  101.622353] Call Trace:\n[  101.622374]  [\u003cffffffff81447efa\u003e] ? ipv4_blackhole_route+0x1ba/0x210\n[  101.622415]  [\u003cffffffff8148d5a7\u003e] ? xfrm_lookup+0x417/0x510\n[  101.622450]  [\u003cffffffff8127672a\u003e] ? extract_buf+0x9a/0x140\n[  101.622485]  [\u003cffffffff8144c6a0\u003e] ? __ip_flush_pending_frames+0x70/0x70\n[  101.622526]  [\u003cffffffff8146fbbf\u003e] ? udp_sendmsg+0x62f/0x810\n[  101.622562]  [\u003cffffffff813f98a6\u003e] ? sock_sendmsg+0x116/0x130\n[  101.622599]  [\u003cffffffff8109df58\u003e] ? find_get_page+0x18/0x90\n[  101.622633]  [\u003cffffffff8109fd6a\u003e] ? filemap_fault+0x12a/0x4b0\n[  101.622668]  [\u003cffffffff813fb5c4\u003e] ? move_addr_to_kernel+0x64/0x90\n[  101.622706]  [\u003cffffffff81405d5a\u003e] ? verify_iovec+0x7a/0xf0\n[  101.622739]  [\u003cffffffff813fc772\u003e] ? sys_sendmsg+0x292/0x420\n[  101.622774]  [\u003cffffffff810b994a\u003e] ? handle_pte_fault+0x8a/0x7c0\n[  101.622810]  [\u003cffffffff810b76fe\u003e] ? __pte_alloc+0xae/0x130\n[  101.622844]  [\u003cffffffff810ba2f8\u003e] ? handle_mm_fault+0x138/0x380\n[  101.622880]  [\u003cffffffff81024af9\u003e] ? do_page_fault+0x189/0x410\n[  101.622915]  [\u003cffffffff813fbe03\u003e] ? sys_getsockname+0xf3/0x110\n[  101.622952]  [\u003cffffffff81450c4d\u003e] ? ip_setsockopt+0x4d/0xa0\n[  101.622986]  [\u003cffffffff813f9932\u003e] ? sockfd_lookup_light+0x22/0x90\n[  101.623024]  [\u003cffffffff814b61fb\u003e] ? system_call_fastpath+0x16/0x1b\n[  101.623060] Code:  Bad RIP value.\n[  101.623090] RIP  [\u003c          (null)\u003e]           (null)\n[  101.623125]  RSP \u003cffff88003ddeba60\u003e\n[  101.623146] CR2: 0000000000000000\n[  101.650871] ---[ end trace ca3856a7d8e8dad4 ]---\n[  101.651011] __sk_free: optmem leakage (160 bytes) detected.\n\nThe oops happens in dst_metrics_write_ptr()\ninclude/net/dst.h:124: return dst-\u003eops-\u003ecow_metrics(dst, p);\n\ndst-\u003eops-\u003ecow_metrics is NULL and causes the oops.\n\nProvide cow_metrics() methods, like we did in commit 214f45c91bb\n(net: provide default_advmss() methods to blackhole dst_ops)\n\nSigned-off-by: Held Bernhard \u003cberny156@gmx.de\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b71d1d426d263b0b6cb5760322efebbfc89d4463",
      "tree": "226ca7390bd6187ec9139d2ccedd26fd94d8e57a",
      "parents": [
        "5f8629c526b4f7e529a6d27bbd802c0dc7fcc357"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Apr 22 04:53:02 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 22 11:04:14 2011 -0700"
      },
      "message": "inet: constify ip headers and in6_addr\n\nAdd const qualifiers to structs iphdr, ipv6hdr and in6_addr pointers\nwhere possible, to make code intention more obvious.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "21d8c49e01a0c1c6eb6c750cd04110db4a539284",
      "tree": "03e19c4f6f24fd67da407463508c0ee27f6f9785",
      "parents": [
        "8849b720e9632acef139a349f9ec62e63ce7e497"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 14 14:49:37 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 14 15:05:22 2011 -0700"
      },
      "message": "ipv4: Call fib_select_default() only when actually necessary.\n\nfib_select_default() is a complete NOP, and completely pointless\nto invoke, when we have no more than 1 default route installed.\n\nAnd this is far and away the common case.\n\nSo remember how many prefixlen\u003d\u003d0 routes we have in the routing\ntable, and elide the call when we have no more than one of those.\n\nThis cuts output route creation time by 157 cycles on Niagara2+.\n\nIn order to add the new int to fib_table, we have to correct the type\nof -\u003etb_data[] to unsigned long, otherwise the private area will be\nunaligned on 64-bit systems.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n"
    },
    {
      "commit": "1c01a80cfec6f806246f31ff2680cd3639b30e67",
      "tree": "0b554aad2ec1da71ecf6339d4ba51617bfe1dc3c",
      "parents": [
        "c44d79950b2daa1025e62eede73e4e4a274d1ef3",
        "4a9f65f6304a00f6473e83b19c1e83caa1e42530"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 11 13:44:25 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 11 13:44:25 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/smsc911x.c\n"
    },
    {
      "commit": "c44eaf41a5a423993932c9a9ad279ee132779b48",
      "tree": "3554fc0bfdcd97936417d6d001d00710d11e67e5",
      "parents": [
        "4263a2f1dad8c8e7ce2352a0cbc882c2b0c044a9",
        "88edaa415966af965bb7eb7056d8b58145462c8e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 07:27:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 07:27:24 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (34 commits)\n  net: Add support for SMSC LAN9530, LAN9730 and LAN89530\n  mlx4_en: Restoring RX buffer pointer in case of failure\n  mlx4: Sensing link type at device initialization\n  ipv4: Fix \"Set rt-\u003ert_iif more sanely on output routes.\"\n  MAINTAINERS: add entry for Xen network backend\n  be2net: Fix suspend/resume operation\n  be2net: Rename some struct members for clarity\n  pppoe: drop PPPOX_ZOMBIEs in pppoe_flush_dev\n  dsa/mv88e6131: add support for mv88e6085 switch\n  ipv6: Enable RFS sk_rxhash tracking for ipv6 sockets (v2)\n  be2net: Fix a potential crash during shutdown.\n  bna: Fix for handling firmware heartbeat failure\n  can: mcp251x: Allow pass IRQ flags through platform data.\n  smsc911x: fix mac_lock acquision before calling smsc911x_mac_read\n  iwlwifi: accept EEPROM version 0x423 for iwl6000\n  rt2x00: fix cancelling uninitialized work\n  rtlwifi: Fix some warnings/bugs\n  p54usb: IDs for two new devices\n  wl12xx: fix potential buffer overflow in testmode nvs push\n  zd1211rw: reset rx idle timer from tasklet\n  ...\n"
    },
    {
      "commit": "5c04c819a20af40adb7d282199f4e34e14fa05c5",
      "tree": "c92925ffcf83d593f8cd52faed144cc43289d7f9",
      "parents": [
        "5325e92f33eef5fb54e2e63185d965b4be59a4b3"
      ],
      "author": {
        "name": "Michael Smith",
        "email": "msmith@cbnco.com",
        "time": "Thu Apr 07 04:51:50 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 10 18:50:59 2011 -0700"
      },
      "message": "fib_validate_source(): pass sk_buff instead of mark\n\nThis makes sk_buff available for other use in fib_validate_source().\n\nSigned-off-by: Michael Smith \u003cmsmith@cbnco.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1b86a58f9d7ce4fe2377687f378fbfb53bdc9b6c",
      "tree": "e931b86166c2a644470e3754e2d3139f97834951",
      "parents": [
        "9b57e1a79e2142df8412ab223c90ba6f47c6b3a3"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Apr 07 14:04:08 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 07 14:04:08 2011 -0700"
      },
      "message": "ipv4: Fix \"Set rt-\u003ert_iif more sanely on output routes.\"\n\nCommit 1018b5c01636c7c6bda31a719bda34fc631db29a (\"Set rt-\u003ert_iif more\nsanely on output routes.\")  breaks rt_is_{output,input}_route.\n\nThis became the cause to return \"IP_PKTINFO\u0027s -\u003eipi_ifindex \u003d\u003d 0\".\n\nTo fix it, this does:\n\n1) Add \"int rt_route_iif;\" to struct rtable\n\n2) For input routes, always set rt_route_iif to same value as rt_iif\n\n3) For output routes, always set rt_route_iif to zero.  Set rt_iif\n   as it is done currently.\n\n4) Change rt_is_{output,input}_route() to test rt_route_iif\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "436c3b66ec9824a633724ae42de1c416af4f2063",
      "tree": "8da6452386b6e900c4226c9b67694d1ea21e847e",
      "parents": [
        "f7594d42944c0dfca90318f50978a4bdf8504086"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 24 17:42:21 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 24 17:42:21 2011 -0700"
      },
      "message": "ipv4: Invalidate nexthop cache nh_saddr more correctly.\n\nAny operation that:\n\n1) Brings up an interface\n2) Adds an IP address to an interface\n3) Deletes an IP address from an interface\n\ncan potentially invalidate the nh_saddr value, requiring\nit to be recomputed.\n\nPerform the recomputation lazily using a generation ID.\n\nReported-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eb49a97363f020c1d7eef8bcd93865726b1fa11d",
      "tree": "c6012d720a51e20fd2b27c45cbe68788652078d1",
      "parents": [
        "406b6f974dae76a5b795d5c251d11c979a4e509b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Mar 23 12:18:15 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 23 12:18:15 2011 -0700"
      },
      "message": "ipv4: fix ip_rt_update_pmtu()\n\ncommit 2c8cec5c10bc (Cache learned PMTU information in inetpeer) added\nan extra inet_putpeer() call in ip_rt_update_pmtu().\n\nThis results in various problems, since we can free one inetpeer, while\nit is still in use.\n\nRef: http://www.spinics.net/lists/netdev/msg159121.html\n\nReported-by: Alexander Beregalov \u003ca.beregalov@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": "4a2b9c3756077c05dd8666e458a751d2248b61b6",
      "tree": "9d074adc7c94a7fdb3be69e1e0572184f76056a3",
      "parents": [
        "7313714775a6411402f63261c05fbb4ee3d5b64a"
      ],
      "author": {
        "name": "Dan Siemon",
        "email": "dan@coverfire.com",
        "time": "Tue Mar 15 13:56:07 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 15 18:53:54 2011 -0700"
      },
      "message": "net_sched: fix ip_tos2prio\n\nECN support incorrectly maps ECN BESTEFFORT packets to TC_PRIO_FILLER\n(1) instead of TC_PRIO_BESTEFFORT (0)\n\nThis means ECN enabled flows are placed in pfifo_fast/prio low priority\nband, giving ECN enabled flows [ECT(0) and CE codepoints] higher drop\nprobabilities.\n\nThis is rather unfortunate, given we would like ECN being more widely\nused.\n\nRef : http://www.coverfire.com/archives/2011/03/13/pfifo_fast-and-ecn/\n\nSigned-off-by: Dan Siemon \u003cdan@coverfire.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Dave Täht \u003cd@taht.net\u003e\nCc: Jonathan Morton \u003cchromatix99@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "46af31800b6916c92fffa529dc3c357008da957d",
      "tree": "2c66ee7b78527da504a294f1bd8a2a899623fead",
      "parents": [
        "bef55aebd560c5a6f8883c421abccee39978c58c"
      ],
      "author": {
        "name": "Hiroaki SHIMODA",
        "email": "shimoda.hiroaki@gmail.com",
        "time": "Wed Mar 09 20:09:58 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 13 18:37:49 2011 -0700"
      },
      "message": "ipv4: Fix PMTU update.\n\nOn current net-next-2.6, when Linux receives ICMP Type: 3, Code: 4\n(Destination unreachable (Fragmentation needed)),\n\n  icmp_unreach\n    -\u003e ip_rt_frag_needed\n         (peer-\u003epmtu_expires is set here)\n    -\u003e tcp_v4_err\n         -\u003e do_pmtu_discovery\n              -\u003e ip_rt_update_pmtu\n                   (peer-\u003epmtu_expires is already set,\n                    so check_peer_pmtu is skipped.)\n                   -\u003e check_peer_pmtu\n\ncheck_peer_pmtu is skipped and MTU is not updated.\n\nTo fix this, let check_peer_pmtu execute unconditionally.\nAnd some minor fixes\n1) Avoid potential peer-\u003epmtu_expires set to be zero.\n2) In check_peer_pmtu, argument of time_before is reversed.\n3) check_peer_pmtu expects peer-\u003epmtu_orig is initialized as zero,\n   but not initialized.\n\nSigned-off-by: Hiroaki SHIMODA \u003cshimoda.hiroaki@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d6ec938019c6b16cb9ec96598ebe8f20de435fe",
      "tree": "9b850eb7fd48a6e5ffc15f47afd2e3edc93f5290",
      "parents": [
        "68a5e3dd0a0056d8b349f9eea3756adda53ec17a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 01:12:47 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:48 2011 -0800"
      },
      "message": "ipv4: Use flowi4 in public route lookup interfaces.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "68a5e3dd0a0056d8b349f9eea3756adda53ec17a",
      "tree": "cca890c41eb5b914d026bbfcc38645a1a402e10b",
      "parents": [
        "22bd5b9b13f2931ac80949f8bfbc40e8cab05be7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 11 20:07:33 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:48 2011 -0800"
      },
      "message": "ipv4: Use struct flowi4 internally in routing lookups.\n\nWe will change the externally visible APIs next.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "22bd5b9b13f2931ac80949f8bfbc40e8cab05be7",
      "tree": "d30639ce43efe3186461b0fff962f80eb2417c61",
      "parents": [
        "59b1a94c9a034e63a5e030a5154be1d4d84677d9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 11 19:54:08 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:47 2011 -0800"
      },
      "message": "ipv4: Pass ipv4 flow objects into fib_lookup() paths.\n\nTo start doing these conversions, we need to add some temporary\nflow4_* macros which will eventually go away when all the protocol\ncode paths are changed to work on AF specific flowi objects.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1d28f42c1bd4bb2363d88df74d0128b4da135b4a",
      "tree": "cb2e652fe79a2bc307e871bc2d3fa51cc8051e45",
      "parents": [
        "ca116922afa8cc5ad46b00c0a637b1cde5ca478a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 00:29:39 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:44 2011 -0800"
      },
      "message": "net: Put flowi_* prefix on AF independent members of struct flowi\n\nI intend to turn struct flowi into a union of AF specific flowi\nstructs.  There will be a common structure that each variant includes\nfirst, much like struct sock_common.\n\nThis is the first step to move in that direction.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1b7fe59322bef9e7a2c05b64a07a66b875299736",
      "tree": "1e3a1ca9931e41a7bf6bdec0ddbabe1f6c466b02",
      "parents": [
        "ff3fccb3d05756ec9fb44350b059d31a5e8e0fdc"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 17:01:16 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 17:03:45 2011 -0800"
      },
      "message": "ipv4: Kill flowi arg to fib_select_multipath()\n\nCompletely unused.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ff3fccb3d05756ec9fb44350b059d31a5e8e0fdc",
      "tree": "a1b7f7d24e90ebc0f057843df9bd65bbd435a880",
      "parents": [
        "dbdd9a52e38a4a93adfa4d0278801cce4fad98eb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 16:23:24 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 17:01:01 2011 -0800"
      },
      "message": "ipv4: Remove unnecessary test from ip_mkroute_input()\n\nfl-\u003eoif will always be zero on the input path, so there is no reason\nto test for that.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dbdd9a52e38a4a93adfa4d0278801cce4fad98eb",
      "tree": "a223ba84f33976b0d2c17d3177cbe976a3c948fc",
      "parents": [
        "33175d84ee3fa29991adb80513683e010769e807"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 16:34:38 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 16:37:26 2011 -0800"
      },
      "message": "ipv4: Remove redundant RCU locking in ip_check_mc().\n\nAll callers are under rcu_read_lock() protection already.\n\nRename to ip_check_mc_rcu() to make it even more clear.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "67e28ffd864eebbaf48b404d0a8cb4edd2bdc924",
      "tree": "acd2328f3d45db16b45841e796c23815570748f6",
      "parents": [
        "2f4e1b3970973bbb57cc3a3b9d67e67c1c648c37"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 20:42:07 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 20:42:07 2011 -0800"
      },
      "message": "ipv4: Optimize flow initialization in input route lookup.\n\nLike in commit 44713b67db10c774f14280c129b0d5fd13c70cf2\n(\"ipv4: Optimize flow initialization in output route lookup.\"\nwe can optimize the on-stack flow setup to only initialize\nthe members which are actually used.\n\nOtherwise we bzero the entire structure, then initialize\nexplicitly the first half of it.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5e2b61f78411be25f0b84f97d5b5d312f184dfd1",
      "tree": "6a5faa5fb7a2242bebacba4cdb5722b988d3e909",
      "parents": [
        "1018b5c01636c7c6bda31a719bda34fc631db29a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:47:09 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:55:31 2011 -0800"
      },
      "message": "ipv4: Remove flowi from struct rtable.\n\nThe only necessary parts are the src/dst addresses, the\ninterface indexes, the TOS, and the mark.\n\nThe rest is unnecessary bloat, which amounts to nearly\n50 bytes on 64-bit.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1018b5c01636c7c6bda31a719bda34fc631db29a",
      "tree": "7e00298c11f53cd386221b566483bffd31414714",
      "parents": [
        "4157434c23f8f5126a2ffd3cc7b2c3bd928be075"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:35:25 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:35:25 2011 -0800"
      },
      "message": "ipv4: Set rt-\u003ert_iif more sanely on output routes.\n\nrt-\u003ert_iif is only ever inspected on input routes, for example DCCP\nuses this to populate a route lookup flow key when generating replies\nto another packet.\n\nTherefore, setting it to anything other than zero on output routes\nmakes no sense.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3c0afdca44af795dd315c20cc525927a459abe30",
      "tree": "264a6e889d080da61a754b54e2771282c9fe9248",
      "parents": [
        "44713b67db10c774f14280c129b0d5fd13c70cf2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:26:07 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:26:07 2011 -0800"
      },
      "message": "ipv4: Get peer more cheaply in rt_init_metrics().\n\nWe know this is a new route object, so doing atomics and\nstuff makes no sense at all.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "44713b67db10c774f14280c129b0d5fd13c70cf2",
      "tree": "2a5fac5524dbac7b30be6409751983b597a71766",
      "parents": [
        "65e8354ec13a45414045084166cb340c0d7ffe8a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:24:47 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:24:47 2011 -0800"
      },
      "message": "ipv4: Optimize flow initialization in output route lookup.\n\nWe burn a lot of useless cycles, cpu store buffer traffic, and\nmemory operations memset()\u0027ing the on-stack flow used to perform\noutput route lookups in __ip_route_output_key().\n\nOnly the first half of the flow object members even matter for\noutput route lookups in this context, specifically:\n\nFIB rules matching cares about:\n\n\tdst, src, tos, iif, oif, mark\n\nFIB trie lookup cares about:\n\n\tdst\n\nFIB semantic match cares about:\n\n\ttos, scope, oif\n\nTherefore only initialize these specific members and elide the\nmemset entirely.\n\nOn Niagara2 this kills about ~300 cycles from the output route\nlookup path.\n\nLikely, we can take things further, since all callers of output\nroute lookups essentially throw away the on-stack flow they use.\nSo they don\u0027t care if we use it as a scratch-pad to compute the\nfinal flow key.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n"
    },
    {
      "commit": "5bfa787fb2c29cce0722500f90df29e049ff07fc",
      "tree": "21e90db4a0d480e9f9e9b931ee71657f2843a629",
      "parents": [
        "b23dd4fe42b455af5c6e20966b7d6959fa8352ea"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:56:30 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:56:30 2011 -0800"
      },
      "message": "ipv4: ip_route_output_key() is better as an inline.\n\nThis avoid a stack frame at zero cost.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b23dd4fe42b455af5c6e20966b7d6959fa8352ea",
      "tree": "bf97323eae9a8d084170e573ff2c0c40bc72c3cd",
      "parents": [
        "452edd598f60522c11f7f88fdbab27eb36509d1a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:31:35 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:31:35 2011 -0800"
      },
      "message": "ipv4: Make output route lookup return rtable directly.\n\nInstead of on the stack.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "452edd598f60522c11f7f88fdbab27eb36509d1a",
      "tree": "df1510e9848e591a412c8bfa724253470c48c4c2",
      "parents": [
        "3872b284087081ee5cb0e4630954c2f7a2153cf5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 13:27:41 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 13:27:41 2011 -0800"
      },
      "message": "xfrm: Return dst directly from xfrm_lookup()\n\nInstead of on the stack.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2774c131b1d19920b4587db1cfbd6f0750ad1f15",
      "tree": "3a0482c727cf4dcc046a211214f12459dcba8271",
      "parents": [
        "69ead7afdf6028184f713a77376ee26f8aaafdcd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:59:04 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:59:04 2011 -0800"
      },
      "message": "xfrm: Handle blackhole route creation via afinfo.\n\nThat way we don\u0027t have to potentially do this in every xfrm_lookup()\ncaller.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "80c0bc9e37adfc892af82cb6aa8cace79f8a96cb",
      "tree": "0f4abc233d9661e85c7c7ecb064a75a8f0984f1f",
      "parents": [
        "a1414715f0ac905fb4b3a158ff6548d37bbe6165"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:36:37 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:36:37 2011 -0800"
      },
      "message": "xfrm: Kill XFRM_LOOKUP_WAIT flag.\n\nThis can be determined from the flow flags instead.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "273447b352e69c327efdecfd6e1d6fe3edbdcd14",
      "tree": "dae1e0778ca973c25b74fd3dc9728616d6e65b73",
      "parents": [
        "5df65e5567a497a28067019b8ff08f98fb026629"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:27:04 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:27:04 2011 -0800"
      },
      "message": "ipv4: Kill can_sleep arg to ip_route_output_flow()\n\nThis boolean state is now available in the flow flags.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "420d44daa7aa1cc847e9e527f0a27a9ce61768ca",
      "tree": "a5aab8c6b925ba3da1079b7262f7d6c504406eb8",
      "parents": [
        "abdf7e7239da270e68262728f125ea94b9b7d42d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:19:23 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:19:23 2011 -0800"
      },
      "message": "ipv4: Make final arg to ip_route_output_flow to be boolean \"can_sleep\"\n\nSince that is what the current vague \"flags\" argument means.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "da935c66bacb3ed9ada984b053297f87c2dff63a",
      "tree": "46278da2b312c73f1375b830d7e5912bf23abd78",
      "parents": [
        "9435eb1cf0b76b323019cebf8d16762a50a12a19",
        "2205a6ea93fea76f88b43727fea53f3ce3790d6f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 19 19:17:35 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 19 19:17:35 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tDocumentation/feature-removal-schedule.txt\n\tdrivers/net/e1000e/netdev.c\n\tnet/xfrm/xfrm_policy.c\n"
    },
    {
      "commit": "214f45c91bbda8321d9676f1197238e4663edcbb",
      "tree": "2b78e1d21298c1622755b09826ed2b8e5152d6e3",
      "parents": [
        "ed199facd070f8e551dc16a2ae1baa01d8d28ed4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Feb 18 11:39:01 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 18 11:39:01 2011 -0800"
      },
      "message": "net: provide default_advmss() methods to blackhole dst_ops\n\nCommit 0dbaee3b37e118a (net: Abstract default ADVMSS behind an\naccessor.) introduced a possible crash in tcp_connect_init(), when\ndst-\u003edefault_advmss() is called from dst_metric_advmss()\n\nReported-by: George Spelvin \u003clinux@horizon.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "982721f3911b2619482e05910644e5699fbeb065",
      "tree": "217a326d3e362c84b92e4687fcd38f7766fc8655",
      "parents": [
        "b6bf3ca032c9cd517526178f579e7a4e395c6e45"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 16 21:44:24 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:54:42 2011 -0800"
      },
      "message": "ipv4: Use const\u0027ify fib_result deep in the route call chains.\n\nThe only troublesome bit here is __mkroute_output which wants\nto override res-\u003efi and res-\u003etype, compute those in local\nvariables instead.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3c7bd1a14071b99d6535b710bc998ae5d3abbb66",
      "tree": "05f31758aa4d6b49b70a4af4a8df4a83588610c2",
      "parents": [
        "0c4dcd58fd69aded93b0dc6917cd88b262c8aa3f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 16 14:08:44 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:44:00 2011 -0800"
      },
      "message": "net: Add initial_ref arg to dst_alloc().\n\nThis allows avoiding multiple writes to the initial __refcnt.\n\nThe most simplest cases of wanting an initial reference of \"1\"\nin ipv4 and ipv6 have been converted, the rest have been left\nalong and kept at the existing \"0\".\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c4dcd58fd69aded93b0dc6917cd88b262c8aa3f",
      "tree": "d410498acb93dee35b8da0092d9db5e8b226fc08",
      "parents": [
        "010c2708e536938a2f84d51d625f603b9a8f80ac"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:42:37 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:42:37 2011 -0800"
      },
      "message": "ipv4: Consolidate ipv4 dst allocation logic.\n\nThis also allows us to combine all the dst-\u003eflags settings and avoid\nread/modify/write sequences to this struct member.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "010c2708e536938a2f84d51d625f603b9a8f80ac",
      "tree": "bf886bc996e41d8996c24e60ec08a19e551c116e",
      "parents": [
        "5ada552746685d558d0a8e9e979921c75a41e469"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:37:09 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:37:09 2011 -0800"
      },
      "message": "ipv4: Move rcu_read_{lock,unlock}() into ip_route_output_slow().\n\nSimplifies tail of __ip_route_output_key().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5ada552746685d558d0a8e9e979921c75a41e469",
      "tree": "e81111d9cdb826f34d31f1276a51321c6ce14df0",
      "parents": [
        "cf0bdefd4676ad4ad59507a058821491a40ec7e6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:29:00 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:29:00 2011 -0800"
      },
      "message": "ipv4: Simplify output route creation call sequence.\n\nThere\u0027s a lot of redundancy and unnecessary stack frames\nin the output route creation path.\n\n1) Make __mkroute_output() return error pointers.\n\n2) Eliminate ip_mkroute_output() entirely, made possible by #1.\n\n3) Call __mkroute_output() directly and handling the returning error\n   pointers in ip_route_output_slow().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f39925dbde7788cfb96419c0f092b086aa325c0f",
      "tree": "4e236c5287558f9803bea163e00d919c05ba5cc7",
      "parents": [
        "2c8cec5c10bced2408082a6656170e74ac17231c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 09 22:00:16 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 14 21:33:27 2011 -0800"
      },
      "message": "ipv4: Cache learned redirect information in inetpeer.\n\nNote that we do not generate the redirect netevent any longer,\nbecause we don\u0027t create a new cached route.\n\nInstead, once the new neighbour is bound to the cached route,\nwe emit a neigh update event instead.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2c8cec5c10bced2408082a6656170e74ac17231c",
      "tree": "56f7d290b0c9f305267eeac915ad28f90c10aba2",
      "parents": [
        "d606ef3fe0c57504b8e534c58498f73a6abc049a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 09 20:42:07 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 14 21:33:07 2011 -0800"
      },
      "message": "ipv4: Cache learned PMTU information in inetpeer.\n\nThe general idea is that if we learn new PMTU information, we\nbump the peer genid.\n\nThis triggers the dst_ops-\u003echeck() code to validate and if\nnecessary propagate the new PMTU value into the metrics.\n\nLearned PMTU information self-expires.\n\nThis means that it is not necessary to kill a cached route\nentry just because the PMTU information is too old.\n\nAs a consequence:\n\n1) When the path appears unreachable (dst_ops-\u003elink_failure\n   or dst_ops-\u003enegative_advice) we unwind the PMTU state if\n   it is out of date, instead of killing the cached route.\n\n   A redirected route will still be invalidated in these\n   situations.\n\n2) rt_check_expire(), rt_worker_func(), et al. are no longer\n   necessary at all.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6431cbc25fa21635ee04eb0516ba6c51389fbfac",
      "tree": "515deede7292fce41c019e7bd72b58cab34ecb9c",
      "parents": [
        "ddd4aa424b866a08ceba7ddf38e61542c91b93a0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 07 20:38:06 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 10 13:33:41 2011 -0800"
      },
      "message": "inet: Create a mechanism for upward inetpeer propagation into routes.\n\nIf we didn\u0027t have a routing cache, we would not be able to properly\npropagate certain kinds of dynamic path attributes, for example\nPMTU information and redirects.\n\nThe reason is that if we didn\u0027t have a routing cache, then there would\nbe no way to lookup all of the active cached routes hanging off of\nsockets, tunnels, IPSEC bundles, etc.\n\nConsider the case where we created a cached route, but no inetpeer\nentry existed and also we were not asked to pre-COW the route metrics\nand therefore did not force the creation a new inetpeer entry.\n\nIf we later get a PMTU message, or a redirect, and store this\ninformation in a new inetpeer entry, there is no way to teach that\ncached route about the newly existing inetpeer entry.\n\nThe facilities implemented here handle this problem.\n\nFirst we create a generation ID.  When we create a cached route of any\nkind, we remember the generation ID at the time of attachment.  Any\ntime we force-create an inetpeer entry in response to new path\ninformation, we bump that generation ID.\n\nThe dst_ops-\u003echeck() callback is where the knowledge of this event\nis propagated.  If the global generation ID does not equal the one\nstored in the cached route, and the cached route has not attached\nto an inetpeer yet, we look it up and attach if one is found.  Now\nthat we\u0027ve updated the cached route\u0027s information, we update the\nroute\u0027s generation ID too.\n\nThis clears the way for implementing PMTU and redirects directly in\nthe inetpeer cache.  There is absolutely no need to consult cached\nroute information in order to maintain this information.\n\nAt this point nothing bumps the inetpeer genids, that comes in the\nlater changes which handle PMTUs and redirects using inetpeers.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d13a2a9fb3e5e3f68e9d3ec0de3c8fcfa56a224",
      "tree": "fee1865c2fbfe8fbb67e8aed97fd8df18254d777",
      "parents": [
        "e7b66bdc02592f5573ade667e4d68ac6e7b0f9e1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 08 16:17:55 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 08 16:17:55 2011 -0800"
      },
      "message": "net: Kill NETEVENT_PMTU_UPDATE.\n\nNobody actually does anything in response to the event,\nso just kill it off.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "92d8682926342d2b6aa5b2ecc02221e00e1573a0",
      "tree": "7f70b9cc2975716ab60ddd632b9fecf0a51b828d",
      "parents": [
        "0131ba451e20239c5dc701027c1a2edef95e1a6e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 04 15:55:25 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 04 15:59:53 2011 -0800"
      },
      "message": "inetpeer: Move ICMP rate limiting state into inet_peer entries.\n\nLike metrics, the ICMP rate limiting bits are cached state about\na destination.  So move it into the inet_peer entries.\n\nIf an inet_peer cannot be bound (the reason is memory allocation\nfailure or similar), the policy is to allow.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0131ba451e20239c5dc701027c1a2edef95e1a6e",
      "tree": "880906b7030daf840fc1e903de4381cb70cf473c",
      "parents": [
        "bd4a6974cc9090ef3851e5b0a2071e5383565c7c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 04 14:37:30 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 04 14:37:30 2011 -0800"
      },
      "message": "ipv4: Don\u0027t miss existing cached metrics in new routes.\n\nAlways lookup to see if we have an existing inetpeer entry for\na route.  Let FLOWI_FLAG_PRECOW_METRICS merely influence the\n\"create\" argument to rt_bind_peer().\n\nAlso, call rt_bind_peer() unconditionally since it is not\npossible for rt-\u003epeer to be non-NULL at this point.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bd4a6974cc9090ef3851e5b0a2071e5383565c7c",
      "tree": "e96ef46426d293b730a305b5185ba5412c9172d4",
      "parents": [
        "2b7bcebf958c74124220ee8103024def8597b36c",
        "1e6d93e45b231b3ae87c01902ede2315aacfe976"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 04 14:28:58 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 04 14:28:58 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "0c838ff1ade71162775afffd9e5c6478a60bdca6",
      "tree": "81910cc5582f4862770307784c40c66aa3a44948",
      "parents": [
        "5b4704419cbd0b7597a91c19f9e8e8b17c1af071"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 31 16:16:50 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 31 16:16:50 2011 -0800"
      },
      "message": "ipv4: Consolidate all default route selection implementations.\n\nBoth fib_trie and fib_hash have a local implementation of\nfib_table_select_default().  This is completely unnecessary\ncode duplication.\n\nSince we now remember the fib_table and the head of the fib\nalias list of the default route, we can implement one single\ngeneric version of this routine.\n\nLooking at the fib_hash implementation you may get the impression\nthat it\u0027s possible for there to be multiple top-level routes in\nthe table for the default route.  The truth is, it isn\u0027t, the\ninsert code will only allow one entry to exist in the zero\nprefix hash table, because all keys evaluate to zero and all\nkeys in a hash table must be unique.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ec831ea72ee5d7d473899e27a86bd659482c4d0d",
      "tree": "9bce912eff9cc0aaeb1f47659e99f1d6c9951f80",
      "parents": [
        "c4c93106741bbf61ecd05a2a835af8e3bf31c1bd"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jan 31 13:16:00 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 31 13:16:00 2011 -0800"
      },
      "message": "net: Add default_mtu() methods to blackhole dst_ops\n\nWhen an IPSEC SA is still being set up, __xfrm_lookup() will return\n-EREMOTE and so ip_route_output_flow() will return a blackhole route.\nThis can happen in a sndmsg call, and after d33e455337ea (\"net: Abstract\ndefault MTU metric calculation behind an accessor.\") this leads to a\ncrash in ip_append_data() because the blackhole dst_ops have no\ndefault_mtu() method and so dst_mtu() calls a NULL pointer.\n\nFix this by adding default_mtu() methods (that simply return 0, matching\nthe old behavior) to the blackhole dst_ops.\n\nThe IPv4 part of this patch fixes a crash that I saw when using an IPSEC\nVPN; the IPv6 part is untested because I don\u0027t have an IPv6 VPN, but it\nlooks to be needed as well.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b8dad61cc74b9ec71052e2a0e1c5119c65d166da",
      "tree": "4291d51fd921d54e3c7d52bcb6a106704d60d061",
      "parents": [
        "725d1e1b457dc2bbebb337677e73efe7c6d14da5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jan 28 14:07:16 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jan 28 14:07:16 2011 -0800"
      },
      "message": "ipv4: If fib metrics are default, no need to grab ref to FIB info.\n\nThe fib metric memory in this case is static in the kernel image,\nso we don\u0027t need to reference count it since it\u0027s never going\nto go away on us.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a4daad6b0923030fbd3b00a01f570e4c3eef446b",
      "tree": "b8e5b9a2110628503e57149f0bb2a4bb1bf3f027",
      "parents": [
        "8571a19c4ac140f1a507f3e7eb716892afa27109"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 27 22:01:53 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 27 22:01:53 2011 -0800"
      },
      "message": "net: Pre-COW metrics for TCP.\n\nTCP is going to record metrics for the connection,\nso pre-COW the route metrics at route cache entry\ncreation time.\n\nThis avoids several atomic operations that have to\noccur if we COW the metrics after the entry reaches\nglobal visibility.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "065825402c058f4a123ddc53dbbe864cc5caaf64",
      "tree": "7d0d5122a5315c5850a0b01ed7349e9eebf794e2",
      "parents": [
        "1397e171f143878dd16ad5f8c99f7b9440cc8911"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 27 14:58:42 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 27 14:59:31 2011 -0800"
      },
      "message": "net: Store ipv4/ipv6 COW\u0027d metrics in inetpeer cache.\n\nPlease note that the IPSEC dst entry metrics keep using\nthe generic metrics COW\u0027ing mechanism using kmalloc/kfree.\n\nThis gives the IPSEC routes an opportunity to use metrics\nwhich are unique to their encapsulated paths.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62fa8a846d7de4b299232e330c74b7783539df76",
      "tree": "e401dbdbf4b11cbd27bdc3a47d9dc8b512173c9f",
      "parents": [
        "b4e69ac670d71b5748dc81e536b2cb103489badd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 26 20:51:05 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 26 20:51:05 2011 -0800"
      },
      "message": "net: Implement read-only protection and COW\u0027ing of metrics.\n\nRouting metrics are now copy-on-write.\n\nInitially a route entry points it\u0027s metrics at a read-only location.\nIf a routing table entry exists, it will point there.  Else it will\npoint at the all zero metric place-holder called \u0027dst_default_metrics\u0027.\n\nThe writeability state of the metrics is stored in the low bits of the\nmetrics pointer, we have two bits left to spare if we want to store\nmore states.\n\nFor the initial implementation, COW is implemented simply via kmalloc.\nHowever future enhancements will change this to place the writable\nmetrics somewhere else, in order to increase sharing.  Very likely\nthis \"somewhere else\" will be the inetpeer cache.\n\nNote also that this means that metrics updates may transiently fail\nif we cannot COW the metrics successfully.\n\nBut even by itself, this patch should decrease memory usage and\nincrease cache locality especially for routing workloads.  In those\ncases the read-only metric copies stay in place and never get written\nto.\n\nTCP workloads where metrics get updated, and those rare cases where\nPMTU triggers occur, will take a very slight performance hit.  But\nthat hit will be alleviated when the long-term writable metrics\nmove to a more sharable location.\n\nSince the metrics storage went from a u32 array of RTAX_MAX entries to\nwhat is essentially a pointer, some retooling of the dst_entry layout\nwas necessary.\n\nMost importantly, we need to preserve the alignment of the reference\ncount so that it doesn\u0027t share cache lines with the read-mostly state,\nas per Eric Dumazet\u0027s alignment assertion checks.\n\nThe only non-trivial bit here is the move of the \u0027flags\u0027 member into\nthe writeable cacheline.  This is OK since we are always accessing the\nflags around the same moment when we made a modification to the\nreference count.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0134e89c7bcc9fde1da962c82a120691e185619f",
      "tree": "3e03335cf001019a2687d161e956de4f73379984",
      "parents": [
        "c7066f70d9610df0b9406cc635fc09e86136e714",
        "6faee60a4e82075853a437831768cc9e2e563e4e"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Jan 14 14:12:37 2011 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Jan 14 14:12:37 2011 +0100"
      },
      "message": "Merge branch \u0027master\u0027 of git://1984.lsi.us.es/net-next-2.6\n\nConflicts:\n\tnet/ipv4/route.c\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "c7066f70d9610df0b9406cc635fc09e86136e714",
      "tree": "ce98855b2c1ba2da15b7b47fc7a447d1903c4d89",
      "parents": [
        "ae90bdeaeac6b964b7a1e853a90a19f358a9ac20"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Jan 14 13:36:42 2011 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Jan 14 13:36:42 2011 +0100"
      },
      "message": "netfilter: fix Kconfig dependencies\n\nFix dependencies of netfilter realm match: it depends on NET_CLS_ROUTE,\nwhich itself depends on NET_SCHED; this dependency is missing from netfilter.\n\nSince matching on realms is also useful without having NET_SCHED enabled and\nthe option really only controls whether the tclassid member is included in\nroute and dst entries, rename the config option to IP_ROUTE_CLASSID and move\nit outside of traffic scheduling context to get rid of the NET_SCHED dependeny.\n\nReported-by: Vladis Kletnieks \u003cValdis.Kletnieks@vt.edu\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    }
  ],
  "next": "dbbe68bb12b34f3e450da7a73c20e6fa1f85d63a"
}
