)]}'
{
  "log": [
    {
      "commit": "252c3d84ed398b090ac2dace46fc6faa6cfaea99",
      "tree": "afbeb033aa2857971aff3919c39f3c0b04c340f3",
      "parents": [
        "099469502f62fbe0d7e4f0b83a2f22538367f734"
      ],
      "author": {
        "name": "RongQing.Li",
        "email": "roy.qing.li@gmail.com",
        "time": "Thu Jan 12 22:33:46 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jan 13 10:10:46 2012 -0800"
      },
      "message": "ipv6: release idev when ip6_neigh_lookup failed in icmp6_dst_alloc\n\nrelease idev when ip6_neigh_lookup failed in icmp6_dst_alloc\n\nSigned-off-by: RongQing.Li \u003croy.qing.li@gmail.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "32b293a53deeb220769f9a29357cb151cfb8ee26",
      "tree": "449cac8df3c48be49657331c9b6958ccdd360e18",
      "parents": [
        "c9da99e6475f92653139e43f3c30c0cd011a0fd8"
      ],
      "author": {
        "name": "Josh Hunt",
        "email": "joshhunt00@gmail.com",
        "time": "Wed Dec 28 13:23:07 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 30 17:07:33 2011 -0500"
      },
      "message": "IPv6: Avoid taking write lock for /proc/net/ipv6_route\n\nDuring some debugging I needed to look into how /proc/net/ipv6_route\noperated and in my digging I found its calling fib6_clean_all() which uses\n\"write_lock_bh(\u0026table-\u003etb6_lock)\" before doing the walk of the table. I\nfound this on 2.6.32, but reading the code I believe the same basic idea\nexists currently. Looking at the rtnetlink code they are only calling\n\"read_lock_bh(\u0026table-\u003etb6_lock);\" via fib6_dump_table(). While I realize\nreading from proc isn\u0027t the recommended way of fetching the ipv6 route\ntable; taking a write lock seems unnecessary and would probably cause\nnetwork performance issues.\n\nTo verify this I loaded up the ipv6 route table and then ran iperf in 3\ncases:\n  * doing nothing\n  * reading ipv6 route table via proc\n    (while :; do cat /proc/net/ipv6_route \u003e /dev/null; done)\n  * reading ipv6 route table via rtnetlink\n    (while :; do ip -6 route show table all \u003e /dev/null; done)\n\n* Load the ipv6 route table up with:\n  * for ((i \u003d 0;i \u003c 4000;i++)); do ip route add unreachable 2000::$i; done\n\n* iperf commands:\n  * client: iperf -i 1 -V -c \u003cipv6 addr\u003e\n  * server: iperf -V -s\n\n* iperf results - 3 runs each (in Mbits/sec)\n  * nothing: client: 927,927,927 server: 927,927,927\n  * proc: client: 179,97,96,113 server: 142,112,133\n  * iproute: client: 928,927,928 server: 927,927,927\n\nlock_stat shows taking the write lock is causing the slowdown. Using this\ninfo I decided to write a version of fib6_clean_all() which replaces\nwrite_lock_bh(\u0026table-\u003etb6_lock) with read_lock_bh(\u0026table-\u003etb6_lock). With\nthis new function I see the same results as with my rtnetlink iperf test.\n\nSigned-off-by: Josh Hunt \u003cjoshhunt00@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8ade06c616b34b4237c0ed77d1ff0ce04ad7d056",
      "tree": "73cccfb3f6ca9cb8d2d9fcd9aed5a2bffb8ab49d",
      "parents": [
        "f1776dade17cd54562f4bc1d01de89c4908b4dd0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 29 18:51:57 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 29 18:51:57 2011 -0500"
      },
      "message": "ipv6: Fix neigh lookup using NULL device.\n\nIn some of the rt6_bind_neighbour() call sites, it hasn\u0027t hooked\nup the rt-\u003edst.dev pointer yet, so we\u0027d deref a NULL pointer when\nobtaining dev-\u003eifindex for the neighbour hash function computation.\n\nJust pass the netdevice explicitly in to fix this problem.\n\nReported-by: Bjarke Istrup Pedersen \u003cgurligebis@gentoo.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "346f870b8a9aaf0847f7c7cffdbb447bb2f3853e",
      "tree": "fca645087c2dcae6be1f64181e5d703d4bbefcaa",
      "parents": [
        "95f56e7aa807e9eec241a5b70f0695b2514b5ad5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 29 15:22:33 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 29 15:22:33 2011 -0500"
      },
      "message": "ipv6: Report TCP timetstamp info in cacheinfo just like ipv4 does.\n\nI missed this while adding ipv6 support to inet_peer.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d191854282fd831da785a5a34bc6fd16049b8578",
      "tree": "2a2700b2dec7ad9e73c55c833346dbbd67b8777c",
      "parents": [
        "f83c7790dc0025fffbd8684f3803a7571f624baa"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 28 20:19:20 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 28 20:19:20 2011 -0500"
      },
      "message": "ipv6: Kill rt6i_dev and rt6i_expires defines.\n\nIt just obscures that the netdevice pointer and the expires value are\nimplemented in the dst_entry sub-object of the ipv6 route.\n\nAnd it makes grepping for dst_entry member uses much harder too.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f83c7790dc0025fffbd8684f3803a7571f624baa",
      "tree": "9e745f6b44b1947033a143423560af6a3157fce7",
      "parents": [
        "2c2aba6c561ac425602f4a0be61422224cb87151"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 28 15:41:23 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 28 15:41:23 2011 -0500"
      },
      "message": "ipv6: Create fast inline ipv6 neigh lookup just like ipv4.\n\nAlso, create and use an rt6_bind_neighbour() in net/ipv6/route.c to\nconsolidate some common logic.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c159d30c59dc84934f8ef46f934ce1232c558ecd",
      "tree": "b3ad64130eee7237f41813c42f588c1c516d3d53",
      "parents": [
        "e143a1ada39110f9596e4ffd4e0b8399e5ab88d4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 26 15:24:36 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 26 15:24:36 2011 -0500"
      },
      "message": "ipv6: Kill useless route tracing bits in net/ipv6/route.c\n\nRDBG() wasn\u0027t even used, and the messages printed by RT6_DEBUG() were\nfar from useful.  Just get rid of all this stuff, we can replace it\nwith something more suitable if we want.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c5e1fd8ccae09f574d6f978c90c2b968ee29030c",
      "tree": "e4485dc086ce76c4ff2ff551246255f5de0a250b",
      "parents": [
        "60b778ce519625102d3f72a2071ea72a05e990ce",
        "ceb98d03eac5704820f2ac1f370c9ff385e3a9f5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 25 02:21:45 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 25 02:21:45 2011 -0500"
      },
      "message": "Merge branch \u0027nf-next\u0027 of git://1984.lsi.us.es/net-next\n"
    },
    {
      "commit": "b26e478f8fd5b575684f021b05a5c6236ebb911a",
      "tree": "27d3b3eaf3fe10d05319ad3395b2569ad5f8f6d0",
      "parents": [
        "bcebcc468a6bcd3820fe9ad36b34220563efc93a",
        "bb3c36863e8001fc21a88bebfdead4da4c23e848"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 16 02:11:14 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 16 02:11:14 2011 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tdrivers/net/ethernet/freescale/fsl_pq_mdio.c\n\tnet/batman-adv/translation-table.c\n\tnet/ipv6/route.c\n"
    },
    {
      "commit": "bb3c36863e8001fc21a88bebfdead4da4c23e848",
      "tree": "68d479f11721abaac0713792d096b98aa04b9854",
      "parents": [
        "3f1e6d3fd37bd4f25e5b19f1c7ca21850426c33f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 13 17:35:06 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 13 17:35:06 2011 -0500"
      },
      "message": "ipv6: Check dest prefix length on original route not copied one in rt6_alloc_cow().\n\nAfter commit 8e2ec639173f325977818c45011ee176ef2b11f6 (\"ipv6: don\u0027t\nuse inetpeer to store metrics for routes.\") the test in rt6_alloc_cow()\nfor setting the ANYCAST flag is now wrong.\n\n\u0027rt\u0027 will always now have a plen of 128, because it is set explicitly\nto 128 by ip6_rt_copy.\n\nSo to restore the semantics of the test, check the destination prefix\nlength of \u0027ort\u0027.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b43faac69062f0fc75bd3230d67da64e184232d1",
      "tree": "0b6c90f5a2fb9e07d2fce5b57fabc8cf6580aaeb",
      "parents": [
        "5c3ddec73d01a1fae9409c197078cb02c42238c3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 13 16:48:21 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 13 16:51:51 2011 -0500"
      },
      "message": "ipv6: If neigh lookup fails during icmp6 dst allocation, propagate error.\n\nDon\u0027t just succeed with a route that has a NULL neighbour attached.\nThis follows the behavior of addrconf_dst_alloc().\n\nAllowing this kind of route to end up with a NULL neigh attached will\nresult in packet drops on output until the route is somehow\ninvalidated, since nothing will meanwhile try to lookup the neigh\nagain.\n\nA statistic is bumped for the case where we see a neigh-less route on\noutput, but the resulting packet drop is otherwise silent in nature,\nand frankly it\u0027s a hard error for this to happen and ipv6 should do\nwhat ipv4 does which is say something in the kernel logs.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "87a115783eca7a424eef599d6f10a499f85f59c8",
      "tree": "4b80b4d2ea9a61253f89570f63da1ab9a356dfa4",
      "parents": [
        "8f0315190dec88bf035d50e4fd1db89859b414f6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 06 17:04:13 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 06 17:04:13 2011 -0500"
      },
      "message": "ipv6: Move xfrm_lookup() call down into icmp6_dst_alloc().\n\nAnd return error pointers.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8f0315190dec88bf035d50e4fd1db89859b414f6",
      "tree": "ebc3d6669124188439da105da919e46ce8ea0619",
      "parents": [
        "f2fd5c3458ffcf4f9b4fbfa64980dffe1850f7de"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 06 16:48:14 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 06 16:48:14 2011 -0500"
      },
      "message": "ipv6: Make third arg to anycast_dst_alloc() bool.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2721745501a26d0dc3b88c0d2f3aa11471891388",
      "tree": "e9c09622b11ad7d9317b4b01824374a852867c28",
      "parents": [
        "761965eab38d2cbc59c36e355c59609e3a04705a"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 02 16:52:08 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 05 15:20:19 2011 -0500"
      },
      "message": "net: Rename dst_get_neighbour{, _raw} to dst_get_neighbour_noref{, _raw}.\n\nTo reflect the fact that a refrence is not obtained to the\nresulting neighbour entry.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Roland Dreier \u003croland@purestorage.com\u003e\n"
    },
    {
      "commit": "ea6e574e34779fbb4526b2160411c163eac25323",
      "tree": "aaf569b7013957b590c4532ac5a6c20ce1d976c3",
      "parents": [
        "8f97339d3feb662037b86a925e692017c0b32323"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Mon Sep 05 16:05:44 2011 +0200"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Sun Dec 04 22:44:07 2011 +0100"
      },
      "message": "ipv6: add ip6_route_lookup\n\nlike rt6_lookup, but allows caller to pass in flowi6 structure.\nWill be used by the upcoming ipv6 netfilter reverse path filter\nmatch.\n\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "04a6f4417bfd17c3860e8fb37387cb78265ffe44",
      "tree": "510ac1d7b69dc5ebcc0ab53130442274f70e3652",
      "parents": [
        "3830847396fa6d7f9a5fec0ca9819c47ac8a64e8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Dec 03 18:29:30 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Dec 03 18:29:30 2011 -0500"
      },
      "message": "ipv6: Kill ndisc_get_neigh() inline helper.\n\nIt\u0027s only used in net/ipv6/route.c and the NULL device check is\nsuperfluous for all of the existing call sites.\n\nJust expand the __ndisc_lookup_errno() call at each location.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3830847396fa6d7f9a5fec0ca9819c47ac8a64e8",
      "tree": "cd0ee7f142b193513416e7dc1adb1e0fb28321e8",
      "parents": [
        "507c9b1e0702db4fb6c25135019158d1201f4de7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Dec 03 18:02:47 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Dec 03 18:02:47 2011 -0500"
      },
      "message": "ipv6: Various cleanups in route.c\n\n1) x \u003d\u003d NULL --\u003e !x\n2) x !\u003d NULL --\u003e x\n3) (x\u0026BIT) --\u003e (x \u0026 BIT)\n4) (BIT1|BIT2) --\u003e (BIT1 | BIT2)\n5) proper argument and struct member alignment\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6dec4ac4ee1ad894dc0e9647cd3e180f93fc353c",
      "tree": "cd71e597bbbe677820bb229c6aedbad412758959",
      "parents": [
        "d6f03f29f7cdf064289f941bf0b838348e996e65",
        "fc0b927d9a5024e138c4318fe19a590f23e3eeec"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 26 14:47:03 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 26 14:47:03 2011 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tnet/ipv4/inet_diag.c\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": "4e3fd7a06dc20b2d8ec6892233ad2012968fe7b6",
      "tree": "da3fbec7672ac6b967dfa31cec6c88f468a57fa2",
      "parents": [
        "40ba84993d66469d336099c5af74c3da5b73e28d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Nov 21 03:39:03 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 22 16:43:32 2011 -0500"
      },
      "message": "net: remove ipv6_addr_copy()\n\nC assignment can handle struct in6_addr copying.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d71314b4ac88637f9ac2770a9f635babdf6f2ff9",
      "tree": "d783319152ab7107b680c0654b2bd8dad2173d23",
      "parents": [
        "abbd00b82a2771b0460ba2cffdb1343aa827ccde"
      ],
      "author": {
        "name": "Matti Vaittinen",
        "email": "matti.vaittinen@nsn.com",
        "time": "Mon Nov 14 00:14:49 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 14 14:35:33 2011 -0500"
      },
      "message": "IPv6 routing, NLM_F_* flag support: warn if new route is created without NLM_F_CREATE\n\nThe support for NLM_F_* flags at IPv6 routing requests.\n\nWarn if NLM_F_CREATE flag is not defined for RTM_NEWROUTE request,\ncreating new table. Later NLM_F_CREATE may be required for\nnew route creation.\n\nPatch created against linux-3.2-rc1\n\nSigned-off-by: Matti Vaittinen \u003cMazziesaccount@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "bc3b2d7fb9b014d75ebb79ba371a763dbab5e8cf",
      "tree": "b0fd4e724bdb1c0a1783616614ae5a9dec1cfa5c",
      "parents": [
        "d9b9384215e17c68d7b6bd05d6fa409e5d4140d7"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri Jul 15 11:47:34 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:30:30 2011 -0400"
      },
      "message": "net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules\n\nThese files are non modular, but need to export symbols using\nthe macros now living in export.h -- call out the include so\nthat things won\u0027t break when we remove the implicit presence\nof module.h from everywhere.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "7011687f0f2f12cc348f6a693fafe63d89167eac",
      "tree": "c5e546044c5ff88b4abafc28df19e8b7ba951a7e",
      "parents": [
        "504744e4edc24f6f16eed44a59b39bffcc0c1391"
      ],
      "author": {
        "name": "Gao feng",
        "email": "omarapazanadi@gmail.com",
        "time": "Fri Oct 28 02:46:57 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 28 16:36:07 2011 -0400"
      },
      "message": "ipv6: fix route error binding peer in func icmp6_dst_alloc\n\nin func icmp6_dst_alloc,dst_metric_set call ipv6_cow_metrics to set metric.\nipv6_cow_metrics may will call rt6_bind_peer to set rt6_info-\u003ert6i_peer.\nSo,we should move ipv6_addr_copy before dst_metric_set to make sure rt6_bind_peer success.\n\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fbe58186901155c0cb5398dd343337be0c456c04",
      "tree": "b2c9097cd838cd7b2bc6a37b57bc3abb04d5939c",
      "parents": [
        "d4cae56219755ccf8acfc8e2c1927009ff29d8c6"
      ],
      "author": {
        "name": "Madalin Bucur",
        "email": "madalin.bucur@freescale.com",
        "time": "Mon Sep 26 07:04:56 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 27 15:32:06 2011 -0400"
      },
      "message": "ipv6: check return value for dst_alloc\n\nreturn value of dst_alloc must be checked before use\n\nSigned-off-by: Madalin Bucur \u003cmadalin.bucur@freescale.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8e2ec639173f325977818c45011ee176ef2b11f6",
      "tree": "2b194fa7556bcde37cdc4d28042a5bdf86d0f2ff",
      "parents": [
        "34b8686d278f00fb16234e74be44c253d6d6b676"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.z.yan@intel.com",
        "time": "Mon Sep 05 21:34:30 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 17 00:57:26 2011 -0400"
      },
      "message": "ipv6: don\u0027t use inetpeer to store metrics for routes.\n\nCurrent IPv6 implementation uses inetpeer to store metrics for\nroutes. The problem of inetpeer is that it doesn\u0027t take subnet\nprefix length in to consideration. If two routes have the same\naddress but different prefix length, they share same inetpeer.\nSo changing metrics of one route also affects the other. The\nfix is to allocate separate metrics storage for each route.\n\nSigned-off-by: Zheng Yan \u003czheng.z.yan@intel.com\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": "21efcfa0ff27776902a8a15e810147be4d937d69",
      "tree": "a0ab4f071d257c4faa0bfa52051b4039ce3d1f96",
      "parents": [
        "61463a30f65225e19e68f59dbd7b888bb308ec99"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jul 19 20:18:36 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 21 21:24:25 2011 -0700"
      },
      "message": "ipv6: unshare inetpeers\n\nWe currently cow metrics a bit too soon in IPv6 case : All routes are\ntied to a single inetpeer entry.\n\nChange ip6_rt_copy() to get destination address as second argument, so\nthat we fill rt6i_dst before the dst_copy_metrics() call.\n\nicmp6_dst_alloc() must set rt6i_dst before calling dst_metric_set(), or\nelse the cow is done while rt6i_dst is still NULL.\n\nIf orig route points to readonly metrics, we can share the pointer\ninstead of performing the memory allocation and copy.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\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": "9cbb7ecbcff85077bb12301aaf4c9b5a56c5993d",
      "tree": "585f03578c63503f81d03ba865207bdb9819d5c6",
      "parents": [
        "8f40b161de4f27402b4c0659ad2ae83fad5a0cdd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 17 20:06:13 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 17 23:11:35 2011 -0700"
      },
      "message": "ipv6: Get rid of rt6i_nexthop macro.\n\nIt just makes it harder to see 1) what the code is doing\nand 2) grep for all users of dst{-\u003e,.}neighbour\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e12fe68ce34d60c04bb1ddb1d3cc5c3022388fe4",
      "tree": "83c0e192ccaa4752c80b6131a7d0aa8272b5d0d0",
      "parents": [
        "7329f0d58de01878d9ce4f0be7a76e136f223eef",
        "712ae51afd55b20c04c5383d02ba5d10233313b1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 23:23:37 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 23:23:37 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "957c665f37007de93ccbe45902a23143724170d0",
      "tree": "d49f13d5b34ed1b1fc34828cbcd60afdbc9c4e5b",
      "parents": [
        "11d53b4990226247a950e2b1ccfa4cf93bfbc822"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 24 15:25:00 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 01 17:30:43 2011 -0700"
      },
      "message": "ipv6: Don\u0027t put artificial limit on routing table size.\n\nIPV6, unlike IPV4, doesn\u0027t have a routing cache.\n\nRouting table entries, as well as clones made in response\nto route lookup requests, all live in the same table.  And\nall of these things are together collected in the destination\ncache table for ipv6.\n\nThis means that routing table entries count against the garbage\ncollection limits, even though such entries cannot ever be reclaimed\nand are added explicitly by the administrator (rather than being\ncreated in response to lookups).\n\nTherefore it makes no sense to count ipv6 routing table entries\nagainst the GC limits.\n\nAdd a DST_NOCOUNT destination cache entry flag, and skip the counting\nif it is set.  Use this flag bit in ipv6 when adding routing table\nentries.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "11d53b4990226247a950e2b1ccfa4cf93bfbc822",
      "tree": "1d753762b2e7142e84526a146008e7bd029a6635",
      "parents": [
        "6e4e2f811bade330126d4029c88c831784a7efd9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 24 15:23:34 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 01 17:30:43 2011 -0700"
      },
      "message": "ipv6: Don\u0027t change dst-\u003eflags using assignments.\n\nThis blows away any flags already set in the entry.\n\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": "0f6c6392dca9c4825c98322a1bf74991e4f0f54d",
      "tree": "6100a2d32a99b3f735bbb41d9749362ead92fb22",
      "parents": [
        "557eed603159b4e007c57d97fad1333ecebd3c2e"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Fri May 20 11:27:24 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 21 02:05:22 2011 -0400"
      },
      "message": "ipv6: copy prefsrc setting when copying route entry\n\ncommit c3968a857a6b6c3d2ef4ead35776b055fb664d74\n(\u0027ipv6: RTA_PREFSRC support for ipv6 route source address selection\u0027)\nadded support for ipv6 prefsrc as an alternative to ipv6 addrlabels,\nbut it did not work because the prefsrc entry was not copied.\n\nCc: Daniel Walter \u003csahne@0x90.at\u003e\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\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": "e965c05dabdabb85af0187952ccd75e43995c4b3",
      "tree": "10923ab7f6e5aaae3e432218d6492e07a7f83981",
      "parents": [
        "e2a85aecebc03d165bc2dcd233deadd5dd97ea9f"
      ],
      "author": {
        "name": "Thomas Egerer",
        "email": "thomas.egerer@secunet.com",
        "time": "Wed Apr 20 22:56:02 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 21 17:24:08 2011 -0700"
      },
      "message": "ipv6: Remove hoplimit initialization to -1\n\nThe changes introduced with git-commit a02e4b7d (\"ipv6: Demark default\nhoplimit as zero.\") missed to remove the hoplimit initialization. As a\nresult, ipv6_get_mtu interprets the return value of dst_metric_raw\n(-1) as 255 and answers ping6 with this hoplimit.  This patche removes\nthe line such that ping6 is answered with the hoplimit value\nconfigured via sysctl.\n\nSigned-off-by: Thomas Egerer \u003cthomas.egerer@secunet.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c3968a857a6b6c3d2ef4ead35776b055fb664d74",
      "tree": "f82be0953ff4454218f38ffb803fdcfb93a6f2a3",
      "parents": [
        "bd015928bb1713691068c4d0d159afccbaf0f8c0"
      ],
      "author": {
        "name": "Daniel Walter",
        "email": "sahne@0x90.at",
        "time": "Wed Apr 13 21:10:57 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 15 15:44:37 2011 -0700"
      },
      "message": "ipv6: RTA_PREFSRC support for ipv6 route source address selection\n\n[ipv6] Add support for RTA_PREFSRC\n\nThis patch allows a user to select the preferred source address\nfor a specific IPv6-Route. It can be set via a netlink message\nsetting RTA_PREFSRC to a valid IPv6 address which must be\nup on the device the route will be bound to.\n\nSigned-off-by: Daniel Walter \u003cdwalter@barracuda.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9c7a4f9ce651383c73dfdff3d7e21d5f9572c4ec",
      "tree": "5286988a4c78be842ea164c24e1acf932d19b4a0",
      "parents": [
        "db138908ccff404b9920f18f6244f4bff2368c04"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Tue Mar 22 19:17:36 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 22 19:17:36 2011 -0700"
      },
      "message": "ipv6: ip6_route_output does not modify sk parameter, so make it const\n\nThis avoids explicit cast to avoid \u0027discards qualifiers\u0027\ncompiler warning in a netfilter patch that i\u0027ve been working on.\n\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4c9483b2fb5d2548c3cc1fe03cdd4484ceeb5d1c",
      "tree": "c29c8070012cffb38fe249cf528589a675f622b1",
      "parents": [
        "9cce96df5b76691712dba22e83ff5efe900361e1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 16:22:43 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:54 2011 -0800"
      },
      "message": "ipv6: Convert to use flowi6 where applicable.\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": "33175d84ee3fa29991adb80513683e010769e807",
      "tree": "3731f61cf82451b6892cf1368701e57e35d92908",
      "parents": [
        "c5908939b2738bafe1b309bc2465cb9f2e6184c5",
        "6dfbd87a20a737641ef228230c77f4262434fa24"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 14:26:00 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 14:26:00 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/bnx2x/bnx2x_cmn.c\n"
    },
    {
      "commit": "7343ff31ebf01691ea4515d3126467434b9d22d6",
      "tree": "13c8180b8aeb82363c1e7b576372c23fa2d5f955",
      "parents": [
        "03a14ab134f4811ab1475f07b1305ccaf38b690f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 19:55:25 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 19:55:25 2011 -0800"
      },
      "message": "ipv6: Don\u0027t create clones of host routes.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d29252\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d30462\n\nIn commit d80bc0fd262ef840ed4e82593ad6416fa1ba3fc4 (\"ipv6: Always\nclone offlink routes.\") we forced the kernel to always clone offlink\nroutes.\n\nThe reason we do that is to make sure we never bind an inetpeer to a\nprefixed route.\n\nThe logic turned on here has existed in the tree for many years,\nbut was always off due to a protecting CPP define.  So perhaps\nit\u0027s no surprise that there is a logic bug here.\n\nThe problem is that we canot clone a route that is already a\nhost route (ie. has DST_HOST set).  Because if we do, an identical\nentry already exists in the routing tree and therefore the\nip6_rt_ins() call is going to fail.\n\nThis sets off a series of failures and high cpu usage, because when\nip6_rt_ins() fails we loop retrying this operation a few times in\norder to handle a race between two threads trying to clone and insert\nthe same host route at the same time.\n\nFix this by simply using the route as-is when DST_HOST is set.\n\nReported-by: slash@ac.auone-net.jp\nReported-by: Ernst Sjöstrand \u003cernstp@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a0e9ae1bd788bc19adc4d4ae08c98b233697402",
      "tree": "13825eeb5bbeae27d66e95f12168eff4b60701ab",
      "parents": [
        "01a16b21d6adf992aa863186c3c4e561a57c1714",
        "b65a0e0c84cf489bfa00d6aa6c48abc5a237100f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 21:27:42 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 21:27:42 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/bnx2x/bnx2x.h\n"
    },
    {
      "commit": "29546a6404e3a4b5d13f0a9586eb5cf1c3b25167",
      "tree": "a8be742e4d7980b588103b39a6cdb5f2ac165061",
      "parents": [
        "a45d49d1053fd5954260a70e555daabd5672577d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 12:10:37 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 12:10:37 2011 -0800"
      },
      "message": "ipv6: Use ERR_CAST in addrconf_dst_alloc.\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": "69ead7afdf6028184f713a77376ee26f8aaafdcd",
      "tree": "bd5cd86f9786daadfd5425f65106bd1c7383fcc7",
      "parents": [
        "80c0bc9e37adfc892af82cb6aa8cace79f8a96cb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:45:33 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:45:33 2011 -0800"
      },
      "message": "ipv6: Normalize arguments to ip6_dst_blackhole().\n\nReturn a dst pointer which is potentitally error encoded.\n\nDon\u0027t pass original dst pointer by reference, pass a struct net\ninstead of a socket, and elide the flow argument since it is\nunnecessary.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e9476e95d8707d1567d1af60df2c1f19630219a3",
      "tree": "54f6de320be67fe161f65e2c472664ed6d1be0d9",
      "parents": [
        "96d796a38e9ec9a7c04a6cda3fc15d79efebb008"
      ],
      "author": {
        "name": "Hagen Paul Pfeifer",
        "email": "hagen@jauu.net",
        "time": "Fri Feb 25 05:45:19 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 25 14:00:22 2011 -0800"
      },
      "message": "ipv6: variable next is never used in this function\n\nSigned-off-by: Hagen Paul Pfeifer \u003chagen@jauu.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c486da34390846b430896a407b47f0cea3a4189c",
      "tree": "2df7eb05f91354e0dc0468ed884326b121f76686",
      "parents": [
        "cdf64c803e6cfec72259f7bb2654261584bb80a8"
      ],
      "author": {
        "name": "Lucian Adrian Grijincu",
        "email": "lucian.grijincu@gmail.com",
        "time": "Thu Feb 24 19:48:03 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 25 11:01:56 2011 -0800"
      },
      "message": "sysctl: ipv6: use correct net in ipv6_sysctl_rtcache_flush\n\nBefore this patch issuing these commands:\n\n  fd \u003d open(\"/proc/sys/net/ipv6/route/flush\")\n  unshare(CLONE_NEWNET)\n  write(fd, \"stuff\")\n\nwould flush the newly created net, not the original one.\n\nThe equivalent ipv4 code is correct (stores the net inside -\u003eextra1).\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\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": "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": "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": "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": "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": "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": "1397e171f143878dd16ad5f8c99f7b9440cc8911",
      "tree": "8aadcac291a2550028950bcaa5d8d0c0d6bedc45",
      "parents": [
        "144001bddcb4db62c2261f1d703d835851031577",
        "8f2771f2b85aea4d0f9a0137ad3b63d1173c0962"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 27 14:59:08 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 27 14:59:08 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "8f2771f2b85aea4d0f9a0137ad3b63d1173c0962",
      "tree": "b632e0a811dee0637017d6f024e5efade412f0d1",
      "parents": [
        "c2aa3665cf8510b1665ee2f5a9525cf7be6dec4f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 27 14:55:22 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 27 14:55:22 2011 -0800"
      },
      "message": "ipv6: Remove route peer binding assertions.\n\nThey are bogus.  The basic idea is that I wanted to make sure\nthat prefixed routes never bind to peers.\n\nThe test I used was whether RTF_CACHE was set.\n\nBut first of all, the RTF_CACHE flag is set at different spots\ndepending upon which ip6_rt_copy() caller you\u0027re talking about.\n\nI\u0027ve validated all of the code paths, and even in the future\nwhere we bind peers more aggressively (for route metric COW\u0027ing)\nwe never bind to prefix\u0027d routes, only fully specified ones.\nThis even applies when addrconf or icmp6 routes are allocated.\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": "d80bc0fd262ef840ed4e82593ad6416fa1ba3fc4",
      "tree": "3a6af0460cad71f1b2efa4acae895dfe2a52634a",
      "parents": [
        "3dce38a02d6370dca690cd923619d4b00024b723"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 24 16:01:58 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 24 16:01:58 2011 -0800"
      },
      "message": "ipv6: Always clone offlink routes.\n\nDo not handle PMTU vs. route lookup creation any differently\nwrt. offlink routes, always clone them.\n\nReported-by: PK \u003crunningdoglackey@yahoo.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bc3ef6605ea325e41b586a76aadc3f731c317504",
      "tree": "14d830a3513842eb693dbaa2101d2ed2ce80688f",
      "parents": [
        "b4aa9e05a61b845541fa6f5b1d246976922601f0"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Dec 16 17:42:40 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Dec 18 22:01:16 2010 -0800"
      },
      "message": "ipv6: fib6_ifdown cleanup\n\nRemove (unnecessary) casts to make code cleaner.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b4aa9e05a61b845541fa6f5b1d246976922601f0",
      "tree": "ca94478c3df281ab76a3399f5ba6341ade3f5791",
      "parents": [
        "1dc0f3c54ce1df957f99c17b145488fd03eb1a59",
        "4b8fe66300acb2fba8b16d62606e0d30204022fc"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 17 12:27:22 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 17 12:27:22 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/bnx2x/bnx2x.h\n\tdrivers/net/wireless/iwlwifi/iwl-1000.c\n\tdrivers/net/wireless/iwlwifi/iwl-6000.c\n\tdrivers/net/wireless/iwlwifi/iwl-core.h\n\tdrivers/vhost/vhost.c\n"
    },
    {
      "commit": "d3052b557a1c94c21f50465702fa886753ce6b43",
      "tree": "5a48598ed08bef56cc71355f84eff04f13622780",
      "parents": [
        "af3e5bd5f650163c2e12297f572910a1af1b8236"
      ],
      "author": {
        "name": "Andrey Vagin",
        "email": "avagin@openvz.org",
        "time": "Sat Dec 11 15:20:11 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 16 12:28:13 2010 -0800"
      },
      "message": "ipv6: delete expired route in ip6_pmtu_deliver\n\nThe first big packets sent to a \"low-MTU\" client correctly\ntriggers the creation of a temporary route containing the reduced MTU.\n\nBut after the temporary route has expired, new ICMP6 \"packet too big\"\nwill be sent, rt6_pmtu_discovery will find the previous EXPIRED route\ncheck that its mtu isn\u0027t bigger then in icmp packet and do nothing\nbefore the temporary route will not deleted by gc.\n\nI make the simple experiment:\nwhile :; do\n    time ( dd if\u003d/dev/zero bs\u003d10K count\u003d1 | ssh hostname dd of\u003d/dev/null ) || break;\ndone\n\nThe \"time\" reports real 0m0.197s if a temporary route isn\u0027t expired, but\nit reports real 0m52.837s (!!!!) immediately after a temporare route has\nexpired.\n\nSigned-off-by: Andrey Vagin \u003cavagin@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d33e455337ea2c71d09d7f4367d6ad6dd32b6965",
      "tree": "d1b35b1be5ab73df6f7e57b86a2e68fad2990adf",
      "parents": [
        "9fe146aef44afe5ec677d8150b6ae94e09b773f7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 14 13:01:14 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 14 13:01:14 2010 -0800"
      },
      "message": "net: Abstract default MTU metric calculation behind an accessor.\n\nLike RTAX_ADVMSS, make the default calculation go through a dst_ops\nmethod rather than caching the computation in the routing cache\nentries.\n\nNow dst metrics are pretty much left as-is when new entries are\ncreated, thus optimizing metric sharing becomes a real possibility.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0dbaee3b37e118a96bb7b8eb0d9bbaeeb46264be",
      "tree": "37000c5d7e663e4ae9800a7bcde9934984b8bae9",
      "parents": [
        "cc6f02dd490dac4ad821d5077b934c9b37037cd0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 13 12:52:14 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 13 12:52:14 2010 -0800"
      },
      "message": "net: Abstract default ADVMSS behind an accessor.\n\nMake all RTAX_ADVMSS metric accesses go through a new helper function,\ndst_metric_advmss().\n\nLeave the actual default metric as \"zero\" in the real metric slot,\nand compute the actual default value dynamically via a new dst_ops\nAF specific callback.\n\nFor stacked IPSEC routes, we use the advmss of the path which\npreserves existing behavior.\n\nUnlike ipv4/ipv6, DecNET ties the advmss to the mtu and thus updates\nadvmss on pmtu updates.  This inconsistency in advmss handling\nresults in more raw metric accesses than I wish we ended up with.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a02e4b7dae455151c423e2f69ef222c502a321fd",
      "tree": "33ceeb14e559a17160f7fae42935283872725e5d",
      "parents": [
        "5170ae824ddf1988a63fb12cbedcff817634c444"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 12 21:39:02 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 12 21:39:02 2010 -0800"
      },
      "message": "ipv6: Demark default hoplimit as zero.\n\nThis is for consistency with ipv4.  Using \"-1\" makes\nno sense.\n\nIt was made this way a long time ago merely to be consistent\nwith how the ipv6 socket hoplimit \"default\" is stored.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5170ae824ddf1988a63fb12cbedcff817634c444",
      "tree": "9f1619ca6edd0e8078bfcd9d6123e119b935e43b",
      "parents": [
        "abbf46ae0e4954584eac599bec73502c1c805e9e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 12 21:35:57 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 12 21:35:57 2010 -0800"
      },
      "message": "net: Abstract RTAX_HOPLIMIT metric accesses behind helper.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "abbf46ae0e4954584eac599bec73502c1c805e9e",
      "tree": "b35fd216dd6cd6d45662d1d6dbe761864bf300de",
      "parents": [
        "1635953305694ece16d99078ca6d32f3d4e7eb36"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 12 21:14:46 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 12 21:14:46 2010 -0800"
      },
      "message": "ipv6: Use ip6_dst_hoplimit() instead of direct dst_metric() calls.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "defb3519a64141608725e2dac5a5aa9a3c644bae",
      "tree": "2f44985e44aef53a0d99991b9f5c2f0eb6dbf4ad",
      "parents": [
        "84b3cdc38cd2882d7ac3c2ae4b6faf5c199874e3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 08 21:16:57 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 09 10:46:36 2010 -0800"
      },
      "message": "net: Abstract away all dst_entry metrics accesses.\n\nUse helper functions to hide all direct accesses, especially writes,\nto dst_entry metrics values.\n\nThis will allow us to:\n\n1) More easily change how the metrics are stored.\n\n2) Implement COW for metrics.\n\nIn particular this will help us put metrics into the inetpeer\ncache if that is what we end up doing.  We can make the _metrics\nmember a pointer instead of an array, initially have it point\nat the read-only metrics in the FIB, and then on the first set\ngrab an inetpeer entry and point the _metrics member there.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n"
    },
    {
      "commit": "b3419363808f2481b24a817f491878e1795db4c7",
      "tree": "76cfa3c55d6798a9bf25d200778dc212841f6cb0",
      "parents": [
        "672f007d65f50468a4a1e55825fe58e5b035324d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 30 12:27:11 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 30 12:27:11 2010 -0800"
      },
      "message": "ipv6: Add infrastructure to bind inet_peer objects to routes.\n\nThey are only allowed on cached ipv6 routes.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d3c15cab213becc49a6f2ad7f48a59513a5f17dd",
      "tree": "40448b57254245de3849d94265affb82a05c3b58",
      "parents": [
        "a40c9f88b5e3da500ddab9440e5ddac170c12281"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "shanwei@cn.fujitsu.com",
        "time": "Wed Nov 24 21:47:56 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 10:47:17 2010 -0800"
      },
      "message": "ipv6: kill two unused macro definition\n\n1. IPV6_TLV_TEL_DST_SIZE\nThis has not been using for several years since created.\n\n2. RT6_INFO_LEN\ncommit 33120b30 kill all RT6_INFO_LEN\u0027s references, but only this definition remained.\n\ncommit 33120b30cc3b8665204d4fcde7288638b0dd04d5\nAuthor: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nDate:   Tue Nov 6 05:27:11 2007 -0800\n\n    [IPV6]: Convert /proc/net/ipv6_route to seq_file interface\n\nSigned-off-by: Shan Wei \u003cshanwei@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5811662b15db018c740c57d037523683fd3e6123",
      "tree": "f820610a6024799a26699f22dc9a4ef5dee07978",
      "parents": [
        "dd68ad2235b4625e0dc928b2b4c614d265f976d3"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Fri Nov 12 18:43:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 17 12:27:45 2010 -0800"
      },
      "message": "net: use the macros defined for the members of flowi\n\nUse the macros defined for the members of flowi to clean the code up.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "403856532734317d25ec86ab1e75b8133db7acc6",
      "tree": "a294c1cba6ba395cd50c24c4e0f696645d6e13e2",
      "parents": [
        "cbaf087a9f5e4721e83e8681ef328158f2298c6f"
      ],
      "author": {
        "name": "Ben Greear",
        "email": "greearb@candelatech.com",
        "time": "Mon Nov 08 12:33:48 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 12 14:03:24 2010 -0800"
      },
      "message": "ipv6: Warn users if maximum number of routes is reached.\n\nThis gives users at least some clue as to what the problem\nmight be and how to go about fixing it.\n\nSigned-off-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "41bb78b4b9adb21cf2c395b6b880aaae99c788b7",
      "tree": "34f099b4773150e0fa850d56be33fd46c3d29907",
      "parents": [
        "8200a59f24aeca379660f80658a8c0c343ca5c31"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Tue Nov 02 16:11:05 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 03 18:50:07 2010 -0700"
      },
      "message": "net dst: fix percpu_counter list corruption and poison overwritten\n\nThere\u0027re some percpu_counter list corruption and poison overwritten warnings\nin recent kernel, which is resulted by fc66f95c.\n\ncommit fc66f95c switches to use percpu_counter, in ip6_route_net_init, kernel\ninit the percpu_counter for dst entries, but, the percpu_counter is never destroyed\nin ip6_route_net_exit. So if the related data is freed by kernel, the freed percpu_counter\nis still on the list, then if we insert/remove other percpu_counter, list corruption\nresulted. Also, if the insert/remove option modifies the -\u003eprev,-\u003enext pointer of\nthe freed value, the poison overwritten is resulted then.\n\nWith the following patch, the percpu_counter list corruption and poison overwritten\nwarnings disappeared.\n\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nCc: \"Pekka Savola (ipv6)\" \u003cpekkas@netcore.fi\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Hideaki YOSHIFUJI \u003cyoshfuji@linux-ipv6.org\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc66f95c68b6d4535a0ea2ea15d5cf626e310956",
      "tree": "ac3a7f08ad741a67ff683bf93e5669ddcae95ed7",
      "parents": [
        "0ed8ddf4045fcfcac36bad753dc4046118c603ec"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 08 06:37:34 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 11 13:06:53 2010 -0700"
      },
      "message": "net dst: use a percpu_counter to track entries\n\nstruct dst_ops tracks number of allocated dst in an atomic_t field,\nsubject to high cache line contention in stress workload.\n\nSwitch to a percpu_counter, to reduce number of time we need to dirty a\ncentral location. Place it on a separate cache line to avoid dirtying\nread only fields.\n\nStress test :\n\n(Sending 160.000.000 UDP frames,\nIP route cache disabled, dual E5540 @2.53GHz,\n32bit kernel, FIB_TRIE, SLUB/NUMA)\n\nBefore:\n\nreal    0m51.179s\nuser    0m15.329s\nsys     10m15.942s\n\nAfter:\n\nreal\t0m45.570s\nuser\t0m15.525s\nsys\t9m56.669s\n\nWith a small reordering of struct neighbour fields, subject of a\nfollowing patch, (to separate refcnt from other read mostly fields)\n\nreal\t0m41.841s\nuser\t0m15.261s\nsys\t8m45.949s\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "21a180cda012e1f93e362dd4a9b0bfd3d8c92940",
      "tree": "0e0d10baa3fdcd8ffbc6881076ff1695808dad9d",
      "parents": [
        "c7d4426a98a5f6654cd0b4b33d9dab2e77192c18",
        "51e97a12bef19b7e43199fc153cf9bd5f2140362"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 04 11:56:38 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 04 11:56:38 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/ipv4/Kconfig\n\tnet/ipv4/tcp_timer.c\n"
    },
    {
      "commit": "ae878ae280bea286ff2b1e1cb6e609dd8cb4501d",
      "tree": "06aee50c978db50558ef9b0d80790d75156b1feb",
      "parents": [
        "173e79fb70a98b5b223f8dc09c22990d777bdd78"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Sun Oct 03 14:49:00 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 03 14:49:00 2010 -0700"
      },
      "message": "net: Fix IPv6 PMTU disc. w/ asymmetric routes\n\nSigned-off-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ab79ad14a2d51e95f0ac3cef7cd116a57089ba82",
      "tree": "bfe0887548935354c671103e9718965e208db652",
      "parents": [
        "4465b469008bc03b98a1b8df4e9ae501b6c69d4b"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Mon Sep 27 00:07:02 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 28 23:38:15 2010 -0700"
      },
      "message": "ipv6: Implement Any-IP support for IPv6.\n\nAnyIP is the capability to receive packets and establish incoming\nconnections on IPs we have not explicitly configured on the machine.\n\nAn example use case is to configure a machine to accept all incoming\ntraffic on eth0, and leave the policy of whether traffic for a given IP\nshould be delivered to the machine up to the load balancer.\n\nCan be setup as follows:\n  ip -6 rule from all iif eth0 lookup 200\n  ip -6 route add local default dev lo table 200\n(in this case for all IPv6 addresses)\n\nSigned-off-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7e1b33e5ea392dfc984fc63b76ca75acbf249dcd",
      "tree": "00fbab440aabca3123b999da42901a7261203c11",
      "parents": [
        "b3de7559afbb7a8a35b4be975a6adf6c5e3cdca0"
      ],
      "author": {
        "name": "Ulrich Weber",
        "email": "uweber@astaro.com",
        "time": "Mon Sep 27 15:02:18 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 15:02:18 2010 -0700"
      },
      "message": "ipv6: add IPv6 to neighbour table overflow warning\n\nIPv4 and IPv6 have separate neighbour tables, so\nthe warning messages should be distinguishable.\n\n[ Add a suitable message prefix on the ipv4 side as well -DaveM ]\n\nSigned-off-by: Ulrich Weber \u003cuweber@astaro.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a02cec2155fbea457eca8881870fd2de1a4c4c76",
      "tree": "cfbfc4b32bfe10f9cd803d46c31607d13f1858f5",
      "parents": [
        "6a08d194ee40806e0ccd5f36ed768e64cbfc979f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 22 20:43:57 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 23 14:33:39 2010 -0700"
      },
      "message": "net: return operator cleanup\n\nChange \"return (EXPR);\" to \"return EXPR;\"\n\nreturn is not a function, parentheses are not required.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f3d3f616e35db2ceeb11564eafd50759bb5bca8a",
      "tree": "b01acb2248fec1e2ca48ad7e4644d9136c8c6d36",
      "parents": [
        "2f09a4d5daaa36690d506fafda9c24f2be866f6b"
      ],
      "author": {
        "name": "Min Zhang",
        "email": "mzhang@mvista.com",
        "time": "Sat Aug 14 22:42:51 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Aug 14 22:42:51 2010 -0700"
      },
      "message": "ipv6: remove sysctl jiffies conversion on gc_elasticity and min_adv_mss\n\nsysctl output ipv6 gc_elasticity and min_adv_mss as values divided by\nHZ. However, they are not in unit of jiffies, since ip6_rt_min_advmss\nrefers to packet size and ip6_rt_fc_elasticity is used as scaler as in\nexpire\u003e\u003eip6_rt_gc_elasticity, so replace the jiffies conversion\nhandler will regular handler for them.\n\nThis has impact on scripts that are currently working assuming the\ndivide by HZ, will yield different results with this patch in place.\n\nSigned-off-by: Min Zhang \u003cmzhang@mvista.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c68f24cc354050415c5ea543cd19ea5424463a2f",
      "tree": "13921fd85a8d7f4fa38ddfafba3bf7a9592190b2",
      "parents": [
        "f6bc7d9e4760324258ad5f5d147e79db8442842e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Jun 14 04:46:20 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 14 23:13:07 2010 -0700"
      },
      "message": "ipv6: RCU changes in ipv6_get_mtu() and ip6_dst_hoplimit()\n\nUse RCU to avoid atomic ops on idev refcnt in ipv6_get_mtu()\nand ip6_dst_hoplimit()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d8d1f30b95a635dbd610dcc5eb641aca8f4768cf",
      "tree": "71424d82a96facd5fcf05cc769ef2ba52b584aeb",
      "parents": [
        "592fcb9dfafaa02dd0edc207bf5d3a0ee7a1f8df"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Thu Jun 10 23:31:35 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 10 23:31:35 2010 -0700"
      },
      "message": "net-next: remove useless union keyword\n\nremove useless union keyword in rtable, rt6_info and dn_route.\n\nSince there is only one member in a union, the union keyword isn\u0027t useful.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@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": "6057fd78a8dcce6269f029b967051d5a2e9b0895",
      "tree": "4e7076b5790684068cf2f025d19fbac2b750cc7f",
      "parents": [
        "e5e5cf4c71508ed38e921b31b438b8b349409f2a"
      ],
      "author": {
        "name": "Brian Haley",
        "email": "brian.haley@hp.com",
        "time": "Fri May 28 23:02:35 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 28 23:02:35 2010 -0700"
      },
      "message": "IPv6: fix Mobile IPv6 regression\n\nCommit f4f914b5 (net: ipv6 bind to device issue) caused\na regression with Mobile IPv6 when it changed the meaning\nof fl-\u003eoif to become a strict requirement of the route\nlookup.  Instead, only force strict mode when\nsk-\u003esk_bound_dev_if is set on the calling socket, getting\nthe intended behavior and fixing the regression.\n\nTested-by: Arnaud Ebalard \u003carno@natisbad.org\u003e\nSigned-off-by: Brian Haley \u003cbrian.haley@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3fa21e07e6acefa31f974d57fba2b6920a7ebd1a",
      "tree": "4254644ef2579e9ac96db6ec0535b5e4231fd18e",
      "parents": [
        "b60b6592baa69c43a5a0f55d6300a7feaab15338"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon May 17 23:08:21 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 17 23:23:14 2010 -0700"
      },
      "message": "net: Remove unnecessary returns from void function()s\n\nThis patch removes from net/ (but not any netfilter files)\nall the unnecessary return; statements that precede the\nlast closing brace of void functions.\n\nIt does not remove the returns that are immediately\npreceded by a label as gcc doesn\u0027t like that.\n\nDone via:\n$ grep -rP --include\u003d*.[ch] -l \"return;\\n}\" net/ | \\\n  xargs perl -i -e \u0027local $/ ; while (\u003c\u003e) { s/\\n[ \\t\\n]+return;\\n}/\\n}/g; print; }\u0027\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f4f914b58019f0e50d521bbbadfaee260d766f95",
      "tree": "7a9690cf187a0b2c0f7583f94668ef307690c9bb",
      "parents": [
        "f2228f785a9d97307aa8ba709088cfda6c3df73f"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Tue Apr 20 21:21:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 21 22:59:24 2010 -0700"
      },
      "message": "net: ipv6 bind to device issue\n\nThe issue raises when having 2 NICs both assigned the same\nIPv6 global address.\n\nIf a sender binds to a particular NIC (SO_BINDTODEVICE),\nthe outgoing traffic is being sent via the first found.\nThe bonded device is thus not taken into an account during the\nrouting.\n\nFrom the ip6_route_output function:\n\nIf the binding address is multicast, linklocal or loopback,\nthe RT6_LOOKUP_F_IFACE bit is set, but not for global address.\n\nSo binding global address will neglect SO_BINDTODEVICE-binded device,\nbecause the fib6_rule_lookup function path won\u0027t check for the\nflowi::oif field and take first route that fits.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Scott Otto \u003cscott.otto@alcatel-lucent.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "54c1a859efd9fd6cda05bc700315ba2519c14eba",
      "tree": "c649e270baaa39f1dadbc0f2bc27842ea618dbb6",
      "parents": [
        "7855f761998893bb6bf861d55df95036fc9e36ab"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki / 吉藤英明",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sun Mar 28 07:15:45 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 28 19:34:26 2010 -0700"
      },
      "message": "ipv6: Don\u0027t drop cache route entry unless timer actually expired.\n\nThis is ipv6 variant of the commit 5e016cbf6.. (\"ipv4: Don\u0027t drop\nredirected route cache entry unless PTMU actually expired\")\nby Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e.\n\nRemove cache route entry in ipv6_negative_advice() only if\nthe timer is expired.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "10414444cb8a8ee8893e00390b7cf40502e28352",
      "tree": "90b956fb7070f022f6619acdcc53f684e3372658",
      "parents": [
        "d11a4dc18bf41719c9f0d7ed494d295dd2973b92"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Mar 18 23:00:22 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 19 21:00:42 2010 -0700"
      },
      "message": "ipv6: Remove redundant dst NULL check in ip6_dst_check\n\nAs the only path leading to ip6_dst_check makes an indirect call\nthrough dst-\u003eops, dst cannot be NULL in ip6_dst_check.\n\nThis patch removes this check in case it misleads people who\ncome across this code.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c9a2ac1f8a2e55b3382dfc27256878a58ea49e9",
      "tree": "0084f79428afa47efd40594cc96fd3a6b87cfc24",
      "parents": [
        "25dc27d17dc868aae78fd03bef3113cf586b12e5"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki / 吉藤英明",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sun Mar 07 00:14:44 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 07 15:25:53 2010 -0800"
      },
      "message": "ipv6: Optmize translation between IPV6_PREFER_SRC_xxx and RT6_LOOKUP_F_xxx.\n\nIPV6_PREFER_SRC_xxx definitions:\n| #define IPV6_PREFER_SRC_TMP             0x0001\n| #define IPV6_PREFER_SRC_PUBLIC          0x0002\n| #define IPV6_PREFER_SRC_COA             0x0004\n\nRT6_LOOKUP_F_xxx definitions:\n| #define RT6_LOOKUP_F_SRCPREF_TMP        0x00000008\n| #define RT6_LOOKUP_F_SRCPREF_PUBLIC     0x00000010\n| #define RT6_LOOKUP_F_SRCPREF_COA        0x00000020\n\nSo, we can translate between these two groups by shift operation\ninstead of multiple \u0027if\u0027s.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "45bb00609022ecf1d97e083666c68c74d237b799",
      "tree": "9d8d632a9c2671ab9487ed1d73b8dc45de48b90b",
      "parents": [
        "1d9cfc4e354cd619d92bb938657dec3c533e6929"
      ],
      "author": {
        "name": "Ulrich Weber",
        "email": "uweber@astaro.com",
        "time": "Thu Feb 25 23:28:58 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 26 03:59:07 2010 -0800"
      },
      "message": "ipv6: Remove IPV6_ADDR_RESERVED\n\nRFC 4291 section 2.4 states that all uncategorized addresses\nshould be considered as Global Unicast.\n\nThis will remove IPV6_ADDR_RESERVED completely\nand return IPV6_ADDR_UNICAST in ipv6_addr_type() instead.\n\nSigned-off-by: Ulrich Weber \u003cuweber@astaro.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3ffe533c87281b68d469b279ff3a5056f9c75862",
      "tree": "456d4c8c877e937fd4919e4c30c75a7bb9f6651f",
      "parents": [
        "bbef49daca35d4fd21bf606a10b6980f17d9df5d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Feb 18 08:25:24 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 18 14:30:17 2010 -0800"
      },
      "message": "ipv6: drop unused \"dev\" arg of icmpv6_send()\n\nDunno, what was the idea, it wasn\u0027t used for a long time.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "2c8c1e7297e19bdef3c178c3ea41d898a7716e3e"
}
