)]}'
{
  "log": [
    {
      "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": "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"
    },
    {
      "commit": "2c8c1e7297e19bdef3c178c3ea41d898a7716e3e",
      "tree": "4d336562e8d5379732a0646e17b0bb1750111ef6",
      "parents": [
        "72659ecce68588b74f6c46862c2b4cec137d7a5a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Jan 17 03:35:32 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 17 19:16:02 2010 -0800"
      },
      "message": "net: spread __net_init, __net_exit\n\n__net_init/__net_exit are apparently not going away, so use them\nto full extent.\n\nIn some cases __net_init was removed, because it was called from\n__net_exit code.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9c69fabe789b0eb468a0c7031ae7bb850760aea8",
      "tree": "037e504110bfc23d6fadecb41dc21645e8c58333",
      "parents": [
        "652fd781a52ad6e24b908cd8b83d12699754f253"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Dec 18 20:11:03 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 18 20:11:03 2009 -0800"
      },
      "message": "netns: fix net.ipv6.route.gc_min_interval_ms in netns\n\nsysctl table was copied, all right, but -\u003edata for net.ipv6.route.gc_min_interval_ms\nwas not reinitialized for \"!\u003d \u0026init_net\" case.\n\nIn init_net everthing works by accident due to correct -\u003edata initialization\nin source table.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d7fc02c7bae7b1cf69269992cf880a43a350cdaa",
      "tree": "a43d56fa72913a1cc98a0bbebe054d08581b3a7c",
      "parents": [
        "ee1262dbc65ce0b6234a915d8432171e8d77f518",
        "28b4d5cc17c20786848cdc07b7ea237a309776bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 07:55:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 07:55:01 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1815 commits)\n  mac80211: fix reorder buffer release\n  iwmc3200wifi: Enable wimax core through module parameter\n  iwmc3200wifi: Add wifi-wimax coexistence mode as a module parameter\n  iwmc3200wifi: Coex table command does not expect a response\n  iwmc3200wifi: Update wiwi priority table\n  iwlwifi: driver version track kernel version\n  iwlwifi: indicate uCode type when fail dump error/event log\n  iwl3945: remove duplicated event logging code\n  b43: fix two warnings\n  ipw2100: fix rebooting hang with driver loaded\n  cfg80211: indent regulatory messages with spaces\n  iwmc3200wifi: fix NULL pointer dereference in pmkid update\n  mac80211: Fix TX status reporting for injected data frames\n  ath9k: enable 2GHz band only if the device supports it\n  airo: Fix integer overflow warning\n  rt2x00: Fix padding bug on L2PAD devices.\n  WE: Fix set events not propagated\n  b43legacy: avoid PPC fault during resume\n  b43: avoid PPC fault during resume\n  tcp: fix a timewait refcnt race\n  ...\n\nFix up conflicts due to sysctl cleanups (dead sysctl_check code and\nCTL_UNNUMBERED removed) in\n\tkernel/sysctl_check.c\n\tnet/ipv4/sysctl_net_ipv4.c\n\tnet/ipv6/addrconf.c\n\tnet/sctp/sysctl.c\n"
    },
    {
      "commit": "f8572d8f2a2ba75408b97dc24ef47c83671795d7",
      "tree": "052506a457939fea00d138d3a982d778df34e14c",
      "parents": [
        "86b1bc68e2f4244e4ea5db5458df9d19259fbb30"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Nov 05 13:32:03 2009 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Nov 12 02:05:06 2009 -0800"
      },
      "message": "sysctl net: Remove unused binary sysctl code\n\nNow that sys_sysctl is a compatiblity wrapper around /proc/sys\nall sysctl strategy routines, and all ctl_name and strategy\nentries in the sysctl tables are unused, and can be\nrevmoed.\n\nIn addition neigh_sysctl_register has been modified to no longer\ntake a strategy argument and it\u0027s callers have been modified not\nto pass one.\n\nCc: \"David Miller\" \u003cdavem@davemloft.net\u003e\nCc: Hideaki YOSHIFUJI \u003cyoshfuji@linux-ipv6.org\u003e\nCc: netdev@vger.kernel.org\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "86c36ce45dc2e2f022562c6481cd778f4cc381a9",
      "tree": "c08f75a6b6ea4416c73ef14813ee120bef8d0f7b",
      "parents": [
        "125a77ed9fbd21d1277f53e9ed6b39ad3d34e613"
      ],
      "author": {
        "name": "Brian Haley",
        "email": "brian.haley@hp.com",
        "time": "Wed Oct 07 13:58:01 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 07 13:58:01 2009 -0700"
      },
      "message": "IPv6: use ipv6_addr_copy() in ip6_route_redirect()\n\nChange ip6_route_redirect() to use ipv6_addr_copy().\n\nSigned-off-by: Brian Haley \u003cbrian.haley@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38",
      "tree": "121df3bfffc7853ac6d2c514ad514d4a748a0933",
      "parents": [
        "c0d0787b6d47d9f4d5e8bd321921104e854a9135"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "sysctl: remove \"struct file *\" argument of -\u003eproc_handler\n\nIt\u0027s unused.\n\nIt isn\u0027t needed -- read or write flag is already passed and sysctl\nshouldn\u0027t care about the rest.\n\nIt _was_ used in two places at arch/frv for some reason.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3933fc952a5a5af4cf23fca94e20203251c9d825",
      "tree": "512d4c2386a0bff8fe7b2fa92dbac77617555990",
      "parents": [
        "b9f602533e2f5c32a09a3a75904e5373cb6e6377"
      ],
      "author": {
        "name": "Jens Rosenboom",
        "email": "me@jayr.de",
        "time": "Thu Sep 10 06:25:11 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 16 17:10:38 2009 -0700"
      },
      "message": "ipv6: Ignore route option with ROUTER_PREF_INVALID\n\nRFC4191 says that \"If the Reserved (10) value is received, the Route\nInformation Option MUST be ignored.\", so this patch makes us conform\nto the RFC. This is different to the usage of the Default Router\nPreference, where an invalid value must indeed be treated as\nPREF_MEDIUM.\n\nSigned-off-by: Jens Rosenboom \u003cme@jayr.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "86393e52c3f1e2f6be18383f6ecdbcdc5727d545",
      "tree": "f5c688c0cb5292143478249f807c4b2372f69dfd",
      "parents": [
        "885a136c52a8871175477baf3903e1c38751b35a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Aug 29 01:34:49 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 01 17:40:31 2009 -0700"
      },
      "message": "netns: embed ip6_dst_ops directly\n\nstruct net::ipv6.ip6_dst_ops is separatedly dynamically allocated,\nbut there is no fundamental reason for it. Embed it directly into\nstruct netns_ipv6.\n\nFor that:\n* move struct dst_ops into separate header to fix circular dependencies\n\tI honestly tried not to, it\u0027s pretty impossible to do other way\n* drop dynamical allocation, allocate together with netns\n\nFor a change, remove struct dst_ops::dst_net, it\u0027s deducible\nby using container_of() given dst_ops pointer.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d5fdd6babcfc2b0e6a8da1acf492a69fb54b4c47",
      "tree": "e4ebdb5d6c4b1ddc16f83e701e3e6038c379a497",
      "parents": [
        "0cf08dcb78e8d61b6d4b2eb5cdb296d969971626"
      ],
      "author": {
        "name": "Brian Haley",
        "email": "brian.haley@hp.com",
        "time": "Tue Jun 23 04:31:07 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 23 04:31:07 2009 -0700"
      },
      "message": "ipv6: Use correct data types for ICMPv6 type and code\n\nChange all the code that deals directly with ICMPv6 type and code\nvalues to use u8 instead of a signed int as that\u0027s the actual data\ntype.\n\nSigned-off-by: Brian Haley \u003cbrian.haley@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "adf30907d63893e4208dfe3f5c88ae12bc2f25d5",
      "tree": "0f07542bb95de2ad537540868aba6cf87a86e17d",
      "parents": [
        "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:19:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:04 2009 -0700"
      },
      "message": "net: skb-\u003edst accessors\n\nDefine three accessors to get/set dst attached to a skb\n\nstruct dst_entry *skb_dst(const struct sk_buff *skb)\n\nvoid skb_dst_set(struct sk_buff *skb, struct dst_entry *dst)\n\nvoid skb_dst_drop(struct sk_buff *skb)\nThis one should replace occurrences of :\ndst_release(skb-\u003edst)\nskb-\u003edst \u003d NULL;\n\nDelete skb-\u003edst field\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4f72427998b105392e60bae7a6798a0c96fe4f0a",
      "tree": "30a90df6c1a8dbb5bceda668a703f1a8958f41d5",
      "parents": [
        "86c2fe1e3adacec9204c03f2b056b49534ecf0ed"
      ],
      "author": {
        "name": "Jean-Mickael Guerin",
        "email": "jean-mickael.guerin@6wind.com",
        "time": "Wed May 20 17:38:59 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 20 17:38:59 2009 -0700"
      },
      "message": "IPv6: set RTPROT_KERNEL to initial route\n\nThe use of unspecified protocol in IPv6 initial route prevents quagga to\ninstall IPv6 default route:\n# show ipv6 route\nS   ::/0 [1/0] via fe80::1, eth1_0\nK\u003e* ::/0 is directly connected, lo, rej\nC\u003e* ::1/128 is directly connected, lo\nC\u003e* fe80::/64 is directly connected, eth1_0\n\n# ip -6 route\nfe80::/64 dev eth1_0  proto kernel  metric 256  mtu 1500 advmss 1440\nhoplimit -1\nff00::/8 dev eth1_0  metric 256  mtu 1500 advmss 1440 hoplimit -1\nunreachable default dev lo  proto none  metric -1  error -101 hoplimit 255\n\nThe attached patch ensures RTPROT_KERNEL to the default initial route\nand fixes the problem for quagga.\nThis is similar to \"ipv6: protocol for address routes\"\nf410a1fba7afa79d2992620e874a343fdba28332.\n\n# show ipv6 route\nS\u003e* ::/0 [1/0] via fe80::1, eth1_0\nC\u003e* ::1/128 is directly connected, lo\nC\u003e* fe80::/64 is directly connected, eth1_0\n\n# ip -6 route\nfe80::/64 dev eth1_0  proto kernel  metric 256  mtu 1500 advmss 1440\nhoplimit -1\nfe80::/64 dev eth1_0  proto kernel  metric 256  mtu 1500 advmss 1440\nhoplimit -1\nff00::/8 dev eth1_0  metric 256  mtu 1500 advmss 1440 hoplimit -1\ndefault via fe80::1 dev eth1_0  proto zebra  metric 1024  mtu 1500\nadvmss 1440 hoplimit -1\nunreachable default dev lo  proto kernel  metric -1  error -101 hoplimit 255\n\nSigned-off-by: Jean-Mickael Guerin \u003cjean-mickael.guerin@6wind.com\u003e\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ce85fe402137824246bad03ff85f3913d565c17",
      "tree": "3a54c150e9616709a8f65270cd1f4aeecac4d48e",
      "parents": [
        "4fb0a54a55d34c28dc53c39567ce171166572699"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue Feb 24 23:18:28 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 24 23:18:28 2009 -0800"
      },
      "message": "netlink: change nlmsg_notify() return value logic\n\nThis patch changes the return value of nlmsg_notify() as follows:\n\nIf NETLINK_BROADCAST_ERROR is set by any of the listeners and\nan error in the delivery happened, return the broadcast error;\nelse if there are no listeners apart from the socket that\nrequested a change with the echo flag, return the result of the\nunicast notification. Thus, with this patch, the unicast\nnotification is handled in the same way of a broadcast listener\nthat has set the NETLINK_BROADCAST_ERROR socket flag.\n\nThis patch is useful in case that the caller of nlmsg_notify()\nwants to know the result of the delivery of a netlink notification\n(including the broadcast delivery) and take any action in case\nthat the delivery failed. For example, ctnetlink can drop packets\nif the event delivery failed to provide reliable logging and\nstate-synchronization at the cost of dropping packets.\n\nThis patch also modifies the rtnetlink code to ignore the return\nvalue of rtnl_notify() in all callers. The function rtnl_notify()\n(before this patch) returned the error of the unicast notification\nwhich makes rtnl_set_sk_err() reports errors to all listeners. This\nis not of any help since the origin of the change (the socket that\nrequested the echoing) notices the ENOBUFS error if the notification\nfails and should resync itself.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "09640e6365c679b5642b1c41b6d7078f51689ddf",
      "tree": "a2b80c153bd23fe59db8c6994fda29923819fcea",
      "parents": [
        "ee437770c42088b9b653e8b3bf28a61fa647f84e"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Sun Feb 01 00:45:17 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 01 00:45:17 2009 -0800"
      },
      "message": "net: replace uses of __constant_{endian}\n\nBase versions handle constant folding now.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1d6e55f195128813f96458203a9fa14204f9251e",
      "tree": "8fb8d332a9d5a0df98401f0b49a86173a0c3f25a",
      "parents": [
        "6c06a478c9e59d1584a5dc1b2b3519bae5d6546a"
      ],
      "author": {
        "name": "Thomas Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Tue Jan 27 22:39:59 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 27 22:39:59 2009 -0800"
      },
      "message": "IPv6: Fix multicast routing bugs.\n\nThis patch addresses the IPv6 multicast routing issues described\nbelow.  It was tested with XORP 1.4/1.5 as the IPv6 PIM-SM routing\ndaemon against FreeBSD peers.\n\nnet/ipv6/ip6_input.c:\n\n  - Don\u0027t try to forward link-local multicast packets.\n\n  - Don\u0027t reset skb2-\u003edev before calling ip6_mr_input() so packets can\n    be identified as coming from the PIM register vif properly.\n\nnet/ipv6/ip6mr.c:\n\n  - Fix incoming PIM register messages processing:\n\n    * The IPv6 pseudo-header should be included when checksumming PIM\n      messages (RFC 4601 section 4.9; RFC 3973 section 4.7.1).\n\n    * Packets decapsulated from PIM register messages should have\n      skb-\u003eprotocol ETH_P_IPV6.\n\n  - Enable/disable IPv6 multicast forwarding on the corresponding\n    interface when a routing daemon adds/removes a multicast virtual\n    interface.\n\n  - Remove incorrect skb_pull() to fix userspace signaling.\n\n  - Enable/disable global IPv6 multicast forwarding when an IPv6\n    multicast routing socket is opened/closed.\n\nnet/ipv6/route.c:\n\n  - Don\u0027t use strict routing logic for packets decapsulated from PIM\n    register messages (similar to disabling rp_filter for the IPv4\n    case).\n\nSigned-off-by: Thomas Goff \u003cthomas.goff@boeing.com\u003e\nReviewed-by: Fred Templin \u003cfred.l.templin@boeing.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c19a28e1193a6c854738d609ae9b2fe2f6e6bea4",
      "tree": "79a354f827a5d3656be3f55d18d31265750d9d06",
      "parents": [
        "f15659628b43b27c20447c731456c39cbec973e9"
      ],
      "author": {
        "name": "Fernando Carrijo",
        "email": "fcarrijo@yahoo.com.br",
        "time": "Wed Jan 07 18:09:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:14 2009 -0800"
      },
      "message": "remove lots of double-semicolons\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nAcked-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nAcked-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14deae41566b5cdd992c01d0069518ced5227c83",
      "tree": "d15c3dfabdc3ccf10997487c29df35fa58387e55",
      "parents": [
        "eb4dea5853046727bfbb579f0c9a8cae7369f7c6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 04 16:04:39 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 04 16:04:39 2009 -0800"
      },
      "message": "ipv6: Fix sporadic sendmsg -EINVAL when sending to multicast groups.\n\nThanks to excellent diagnosis by Eduard Guzovsky.\n\nThe core problem is that on a network with lots of active\nmulticast traffic, the neighbour cache can fill up.  If\nwe try to allocate a new route and thus neighbour cache\nentry, the bog-standard GC attempt the neighbour layer does\nin ineffective because route entries hold a reference\nto the existing neighbour entries and GC can only liberate\nentries with no references.\n\nIPV4 already has a way to handle this, by doing a route cache\nGC in such situations (when neigh attach returns -ENOBUFS).\n\nSo simply mimick this on the ipv6 side.\n\nTested-by: Eduard Guzovsky \u003ceguzovsky@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8229efdaef1e7913ae1712c0ba752f267e5fcd5e",
      "tree": "ba85dabf90f17b1b735fb8dda4b9bb11c5cd445d",
      "parents": [
        "8b90fc7e5b43aaef941044a4785a42439015b539"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Wed Dec 10 16:30:15 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 10 16:30:15 2008 -0800"
      },
      "message": "netns: ip6mr: enable namespace support in ipv6 multicast forwarding code\n\nThis last patch makes the appropriate changes to use and propagate the\nnetwork namespace where needed in IPv6 multicast forwarding code.\n\nThis consists mainly in replacing all the remaining init_net occurences\nwith current netns pointer retrieved from sockets, net devices or \nmfc6_caches depending on the routines\u0027 contexts.\n\nSome routines receive a new \u0027struct net\u0027 parameter to propagate the current\nnetns:\n* ip6mr_get_route\n* ip6mr_cache_report\n* ip6mr_cache_find\n* ip6mr_cache_unresolved\n* mif6_add/mif6_delete\n* ip6mr_mfc_add/ip6mr_mfc_delete\n* ip6mr_reg_vif\n\nAll the IPv6 multicast forwarding variables moved to struct netns_ipv6 by\nthe previous patches are now referenced in the correct namespace.\n\nChangelog:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n* Take into account the net associated to mfc6_cache when matching entries in\n  mfc_unres_queue list.\n* Call mroute_clean_tables() in ip6mr_net_exit() to free memory allocated\n  per-namespace.\n* Call dev_net_set() in ip6mr_reg_vif() to initialize dev-\u003end_net \n  correctly.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6bb3ce25d05f2990c8a19adaf427531430267c1f",
      "tree": "38c19e4776b36163b9d100258139d58287475f6b",
      "parents": [
        "9b739ba5e66c96938fbc07a4dbd9da5b81eac56f"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 11 17:25:22 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 11 17:25:22 2008 -0800"
      },
      "message": "net: remove struct dst_entry::entry_size\n\nUnused after kmem_cache_zalloc() conversion.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6d9f239a1edb31d6133230f478fd1dc2da338ec5",
      "tree": "305fa0da95a49db4e342f3f3042f8be0968b03ce",
      "parents": [
        "6cf3f41e6c08bca6641a695449791c38a25f35ff"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Nov 03 18:21:05 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 03 18:21:05 2008 -0800"
      },
      "message": "net: \u0027\u0026\u0027 redux\n\nI want to compile out proc_* and sysctl_* handlers totally and\nstub them to NULL depending on config options, however usage of \u0026\nwill prevent this, since taking adress of NULL pointer will break\ncompilation.\n\nSo, drop \u0026 in front of every -\u003eproc_handler and every -\u003estrategy\nhandler, it was never needed in fact.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4b7a4274ca63dadd9c4f17fc953f3a5d19855c4c",
      "tree": "946d6cef596756a95afe0cea51f5c3c9be4c3353",
      "parents": [
        "4aa996066ffc0dba24036c961ee38dfdfbfc061c"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Oct 29 12:50:24 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 29 12:50:24 2008 -0700"
      },
      "message": "net: replace %#p6 format specifier with %pi6\n\ngcc warns when using the # modifier with the %p format specifier,\nso we can\u0027t use this to omit the colons when needed, introduces\n%pi6 instead.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b071195deba14b37ce896c26f20349b46e5f9fd2",
      "tree": "5f32ddc71be0a282765349301ea9173b413cdc39",
      "parents": [
        "689afa7da106032a3e859ae35494f80dd6eac640"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Oct 28 16:05:40 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 28 16:05:40 2008 -0700"
      },
      "message": "net: replace all current users of NIP6_SEQFMT with %#p6\n\nThe define in kernel.h can be done away with at a later time.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3bd653c8455bc7991bae77968702b31c8f5df883",
      "tree": "f21c557e4b002ddf265ed111edd2c0bb97b01e38",
      "parents": [
        "98b3377ca77a06a7bd75a444e9f7136e9bb5112e"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Wed Oct 08 10:54:51 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 08 10:54:51 2008 -0700"
      },
      "message": "netns: add net parameter to IP6_INC_STATS\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b339a47c370ec669f789c5989f54eec1d78574bb",
      "tree": "a6da652fe9c0a78780b6d7cdf3cf283cc5b23191",
      "parents": [
        "68fffc679694d5f7c02fdeb684b481416cd8213b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 07 14:15:00 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 07 14:15:00 2008 -0700"
      },
      "message": "ipv6: initialize ip6_route sysctl vars in ip6_route_net_init()\n\nThis makes that ip6_route_net_init() does all of the route init code.\nThere used to be a race between ip6_route_net_init() and ip6_net_init()\nand someone relying on the combined result was left out cold.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "68fffc679694d5f7c02fdeb684b481416cd8213b",
      "tree": "63afbb6666c361af8a5480d206c170dd5610c646",
      "parents": [
        "23542618deb77cfed312842fe8c41ed19fb16470"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 07 14:12:10 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 07 14:12:10 2008 -0700"
      },
      "message": "ipv6: clean up ip6_route_net_init() error handling\n\nip6_route_net_init() error handling looked less than solid, fix \u0027er up.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b262e60309e1b0eb25d300c7e739427d5316abb1",
      "tree": "bf319d78c79bb5cb617ff0c8340c73aa349bba15",
      "parents": [
        "93c8b90f01f0dc73891da4e84b26524b61d29d66",
        "0523820482dcb42784572ffd2296c2f08c275a2b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 01 06:12:56 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 01 06:12:56 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/wireless/ath9k/core.c\n\tdrivers/net/wireless/ath9k/main.c\n\tnet/core/dev.c\n"
    },
    {
      "commit": "5dc121e9a7a8a3721cefeb07f3559f50fbedc67e",
      "tree": "4658fd69303742bc127a56ff430cb70eb6354d6a",
      "parents": [
        "2a5b82751f73a0bf6f604ce56d34adba6da1b246"
      ],
      "author": {
        "name": "Arnaud Ebalard",
        "email": "arno@natisbad.org",
        "time": "Wed Oct 01 02:37:56 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 01 02:37:56 2008 -0700"
      },
      "message": "XFRM,IPv6: initialize ip6_dst_blackhole_ops.kmem_cachep\n\nip6_dst_blackhole_ops.kmem_cachep is not expected to be NULL (i.e. to\nbe initialized) when dst_alloc() is called from ip6_dst_blackhole().\nOtherwise, it results in the following (xfrm_larval_drop is now set to\n1 by default):\n\n[   78.697642] Unable to handle kernel paging request for data at address 0x0000004c\n[   78.703449] Faulting instruction address: 0xc0097f54\n[   78.786896] Oops: Kernel access of bad area, sig: 11 [#1]\n[   78.792791] PowerMac\n[   78.798383] Modules linked in: btusb usbhid bluetooth b43 mac80211 cfg80211 ehci_hcd ohci_hcd sungem sungem_phy usbcore ssb\n[   78.804263] NIP: c0097f54 LR: c0334a28 CTR: c002d430\n[   78.809997] REGS: eef19ad0 TRAP: 0300   Not tainted  (2.6.27-rc5)\n[   78.815743] MSR: 00001032 \u003cME,IR,DR\u003e  CR: 22242482  XER: 20000000\n[   78.821550] DAR: 0000004c, DSISR: 40000000\n[   78.827278] TASK \u003d eef0df40[3035] \u0027mip6d\u0027 THREAD: eef18000\n[   78.827408] GPR00: 00001032 eef19b80 eef0df40 00000000 00008020 eef19c30 00000001 00000000\n[   78.833249] GPR08: eee5101c c05a5c10 ef9ad500 00000000 24242422 1005787c 00000000 1004f960\n[   78.839151] GPR16: 00000000 10024e90 10050040 48030018 0fe44150 00000000 00000000 eef19c30\n[   78.845046] GPR24: eef19e44 00000000 eef19bf8 efb37c14 eef19bf8 00008020 00009032 c0596064\n[   78.856671] NIP [c0097f54] kmem_cache_alloc+0x20/0x94\n[   78.862581] LR [c0334a28] dst_alloc+0x40/0xc4\n[   78.868451] Call Trace:\n[   78.874252] [eef19b80] [c03c1810] ip6_dst_lookup_tail+0x1c8/0x1dc (unreliable)\n[   78.880222] [eef19ba0] [c0334a28] dst_alloc+0x40/0xc4\n[   78.886164] [eef19bb0] [c03cd698] ip6_dst_blackhole+0x28/0x1cc\n[   78.892090] [eef19be0] [c03d9be8] rawv6_sendmsg+0x75c/0xc88\n[   78.897999] [eef19cb0] [c038bca4] inet_sendmsg+0x4c/0x78\n[   78.903907] [eef19cd0] [c03207c8] sock_sendmsg+0xac/0xe4\n[   78.909734] [eef19db0] [c03209e4] sys_sendmsg+0x1e4/0x2a0\n[   78.915540] [eef19f00] [c03220a8] sys_socketcall+0xfc/0x210\n[   78.921406] [eef19f40] [c0014b3c] ret_from_syscall+0x0/0x38\n[   78.927295] --- Exception: c01 at 0xfe2d730\n[   78.927297]     LR \u003d 0xfe2d71c\n[   78.939019] Instruction dump:\n[   78.944835] 91640018 9144001c 900a0000 4bffff44 9421ffe0 7c0802a6 bf810010 7c9d2378\n[   78.950694] 90010024 7fc000a6 57c0045e 7c000124 \u003c83e3004c\u003e 8383005c 2f9f0000 419e0050\n[   78.956464] ---[ end trace 05fa1ed7972487a1 ]---\n\nAs commented by Benjamin Thery, the bug was introduced by\nf2fc6a54585a1be6669613a31fbaba2ecbadcd36, while adding network\nnamespaces support to ipv6 routes.\n\nSigned-off-by: Arnaud Ebalard \u003carno@natisbad.org\u003e\nAcked-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1e493d1946a0b26b79001c18d7312d536156ff5a",
      "tree": "2cc484a2f2ea5de5b427e6a8a7fa6f7d07ae05bc",
      "parents": [
        "08569908fffec3625e29eec7cf7577eaa512e719"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 10 17:27:15 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 10 23:39:28 2008 -0700"
      },
      "message": "ipv6: On interface down/unregister, purge icmp routes too.\n\nJohannes Berg reported that occaisionally, bringing an interface\ndown or unregistering it would hang for up to 30 seconds.  Using\ndebugging output he provided it became clear that ICMP6 routes\nwere the culprit.\n\nThe problem is that ICMP6 routes live in their own world totally\nseparate from normal ipv6 routes.  So there are all kinds of special\ncases throughout the ipv6 code to handle this.\n\nWhile we should really try to unify all of this stuff somehow,\nfor the time being let\u0027s fix this by purging the ICMP6 routes\nthat match the device in question during rt6_ifdown().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "191cd582500f49b32a63040fedeebb0168c720af",
      "tree": "173ce9682d77798c6e4ca7e14af57ea2f46c55b8",
      "parents": [
        "0eb8b1fe9238ca4c1797e4c105d5790abda1726f"
      ],
      "author": {
        "name": "Brian Haley",
        "email": "brian.haley@hp.com",
        "time": "Thu Aug 14 15:33:21 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 14 15:33:21 2008 -0700"
      },
      "message": "netns: Add network namespace argument to rt6_fill_node() and ipv6_dev_get_saddr()\n\nipv6_dev_get_saddr() blindly de-references dst_dev to get the network\nnamespace, but some callers might pass NULL.  Change callers to pass a\nnamespace pointer instead.\n\nSigned-off-by: Brian Haley \u003cbrian.haley@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5e0115e500fe9dd2ca11e6f92db9123204f1327a",
      "tree": "951ad51ba761be1bf8e79b54d9a7ff160a4720be",
      "parents": [
        "987c402ac31988f7ecdb38b657bcfeea5831d479"
      ],
      "author": {
        "name": "Brian Haley",
        "email": "brian.haley@hp.com",
        "time": "Wed Aug 13 01:58:57 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 13 01:58:57 2008 -0700"
      },
      "message": "ipv6: Fix OOPS, ip -f inet6 route get fec0::1, linux-2.6.26, ip6_route_output, rt6_fill_node+0x175\n\nAlexey Dobriyan wrote:\n\u003e On Thu, Aug 07, 2008 at 07:00:56PM +0200, John Gumb wrote:\n\u003e\u003e Scenario: no ipv6 default route set.\n\u003e \n\u003e\u003e # ip -f inet6 route get fec0::1\n\u003e\u003e\n\u003e\u003e BUG: unable to handle kernel NULL pointer dereference at 00000000\n\u003e\u003e IP: [\u003cc0369b85\u003e] rt6_fill_node+0x175/0x3b0\n\u003e\u003e EIP is at rt6_fill_node+0x175/0x3b0\n\u003e \n\u003e 0xffffffff80424dd3 is in rt6_fill_node (net/ipv6/route.c:2191).\n\u003e 2186                    } else\n\u003e 2187    #endif\n\u003e 2188                            NLA_PUT_U32(skb, RTA_IIF, iif);\n\u003e 2189            } else if (dst) {\n\u003e 2190                    struct in6_addr saddr_buf;\n\u003e 2191      \u003d\u003d\u003d\u003d\u003e         if (ipv6_dev_get_saddr(ip6_dst_idev(\u0026rt-\u003eu.dst)-\u003edev,\n\u003e\t\t\t\t\t       ^^^^^^^^^^^^^^^^^^^^^^^^\n\u003e\t\t\t\t\t\t\t\t\t\t\tNULL\n\u003e \n\u003e 2192                                           dst, 0, \u0026saddr_buf) \u003d\u003d 0)\n\u003e 2193                            NLA_PUT(skb, RTA_PREFSRC, 16, \u0026saddr_buf);\n\u003e 2194            }\n\nThe commit that changed this can\u0027t be reverted easily, but the patch\nbelow works for me.\n\nFix NULL de-reference in rt6_fill_node() when there\u0027s no IPv6 input\ndevice present in the dst entry.\n\nSigned-off-by: Brian Haley \u003cbrian.haley@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ca615fb816ba85dc765209a9b58ab82cc99bce0",
      "tree": "5a07a93992e5fc1051d10ad342ad2545b533ad6e",
      "parents": [
        "6d273f8d011c351c9603c1dbfeae2c7458edd30d"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Wed Aug 06 02:34:21 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 06 02:34:21 2008 -0700"
      },
      "message": "ipv6: replace dst_metric() with dst_mtu() in net/ipv6/route.c.\n\nThis patch replaces dst_metric() with dst_mtu() in net/ipv6/route.c.\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3d0f24a74e7957593a5622eb5c04ed6860dd8391",
      "tree": "52c17c0606f47f5435ada93baf63d1a585a2ccb9",
      "parents": [
        "75307c0fe7fcb3b52a92fe32384fc33f50622654"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Jul 22 14:35:50 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 22 14:35:50 2008 -0700"
      },
      "message": "ipv6: icmp6_dst_gc return change\n\nChange icmp6_dst_gc to return the one value the caller cares about rather\nthan using call by reference.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "53b7997fd5c62408d10b9aafb38974ce90fd2356",
      "tree": "bc23e6ec248a6d999cdc779abdfdc843c5640197",
      "parents": [
        "721499e8931c5732202481ae24f2dfbf9910f129"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sat Jul 19 22:35:03 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 19 22:35:03 2008 -0700"
      },
      "message": "ipv6 netns: Make several \"global\" sysctl variables namespace aware.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b6fcbdb4f283f7ba67cec3cda6be23da8e959031",
      "tree": "45d72a4a5d0cce9ab2c98321f4d7d122bf982a55",
      "parents": [
        "de05c557b24c7dffc6d392e3db120cf11c9f6ae7"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:07:44 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:07:44 2008 -0700"
      },
      "message": "proc: consolidate per-net single-release callers\n\nThey are symmetrical to single_open ones :)\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "de05c557b24c7dffc6d392e3db120cf11c9f6ae7",
      "tree": "d1d6fe1323657afd7d416c6af8a62d6a9e1e1e66",
      "parents": [
        "60bdde95807e982a824be9cfdd35055cc721a88a"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:07:21 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:07:21 2008 -0700"
      },
      "message": "proc: consolidate per-net single_open callers\n\nThere are already 7 of them - time to kill some duplicate code.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dd3abc4ef52597ec8268274222574b2700ba3ded",
      "tree": "e588e699dcb38c80a15bb9c7aa606994e82b134b",
      "parents": [
        "1b34be74cbf18f5d58cc85c7c4afcd9f7d74accd"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Jul 02 18:30:18 2008 +0900"
      },
      "committer": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Thu Jul 03 17:51:56 2008 +0900"
      },
      "message": "ipv6 route: Prefer outgoing interface with source address assigned.\n\nOutgoing interface is selected by the route decision if unspecified.\nLet\u0027s prefer routes via interface(s) with the address assigned if we\nhave multiple routes with same cost.\nWith help from Naohiro Ooiwa \u003cnooiwa@miraclelinux.com\u003e.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    }
  ],
  "next": "5ce83afaac956238c3c25f60a899c511e9d8cbf4"
}
