)]}'
{
  "log": [
    {
      "commit": "2aaab9a0ccfd2ccf1c957cc2120da8d5593955c5",
      "tree": "7ac56f0461d1ed84b7210aae1670373786e80ea6",
      "parents": [
        "827ebd6410005b05b3c930ef6a116666c6986886"
      ],
      "author": {
        "name": "Adam Langley",
        "email": "agl@imperialviolet.org",
        "time": "Thu Aug 07 20:27:45 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 07 20:27:45 2008 -0700"
      },
      "message": "tcp: (whitespace only) fix confusing indentation\n\nThe indentation in part of tcp_minisocks makes it look like one of the if\nstatements is much more important than it actually is.\n\nSigned-off-by: Adam Langley \u003cagl@imperialviolet.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6edafaaf6f5e70ef1e620ff01bd6bacebe1e0718",
      "tree": "a470cdfd59d88ccf4acf4726db6b5d8d4df88da7",
      "parents": [
        "ee7af8264dafa0c8c76a8dc596803966c2e29ebc"
      ],
      "author": {
        "name": "Gui Jianfeng",
        "email": "guijianfeng@cn.fujitsu.com",
        "time": "Wed Aug 06 23:50:04 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 06 23:50:04 2008 -0700"
      },
      "message": "tcp: Fix kernel panic when calling tcp_v(4/6)_md5_do_lookup\n\nIf the following packet flow happen, kernel will panic.\nMathineA\t\t\tMathineB\n\t\tSYN\n\t----------------------\u003e    \n        \tSYN+ACK\n\t\u003c----------------------\n\t\tACK(bad seq)\n\t----------------------\u003e\nWhen a bad seq ACK is received, tcp_v4_md5_do_lookup(skb-\u003esk, ip_hdr(skb)-\u003edaddr))\nis finally called by tcp_v4_reqsk_send_ack(), but the first parameter(skb-\u003esk) is \nNULL at that moment, so kernel panic happens.\nThis patch fixes this bug.\n\nOOPS output is as following:\n[  302.812793] IP: [\u003cc05cfaa6\u003e] tcp_v4_md5_do_lookup+0x12/0x42\n[  302.817075] Oops: 0000 [#1] SMP \n[  302.819815] Modules linked in: ipv6 loop dm_multipath rtc_cmos rtc_core rtc_lib pcspkr pcnet32 mii i2c_piix4 parport_pc i2c_core parport ac button ata_piix libata dm_mod mptspi mptscsih mptbase scsi_transport_spi sd_mod scsi_mod crc_t10dif ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd [last unloaded: scsi_wait_scan]\n[  302.849946] \n[  302.851198] Pid: 0, comm: swapper Not tainted (2.6.27-rc1-guijf #5)\n[  302.855184] EIP: 0060:[\u003cc05cfaa6\u003e] EFLAGS: 00010296 CPU: 0\n[  302.858296] EIP is at tcp_v4_md5_do_lookup+0x12/0x42\n[  302.861027] EAX: 0000001e EBX: 00000000 ECX: 00000046 EDX: 00000046\n[  302.864867] ESI: ceb69e00 EDI: 1467a8c0 EBP: cf75f180 ESP: c0792e54\n[  302.868333]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068\n[  302.871287] Process swapper (pid: 0, ti\u003dc0792000 task\u003dc0712340 task.ti\u003dc0746000)\n[  302.875592] Stack: c06f413a 00000000 cf75f180 ceb69e00 00000000 c05d0d86 000016d0 ceac5400 \n[  302.883275]        c05d28f8 000016d0 ceb69e00 ceb69e20 681bf6e3 00001000 00000000 0a67a8c0 \n[  302.890971]        ceac5400 c04250a3 c06f413a c0792eb0 c0792edc cf59a620 cf59a620 cf59a634 \n[  302.900140] Call Trace:\n[  302.902392]  [\u003cc05d0d86\u003e] tcp_v4_reqsk_send_ack+0x17/0x35\n[  302.907060]  [\u003cc05d28f8\u003e] tcp_check_req+0x156/0x372\n[  302.910082]  [\u003cc04250a3\u003e] printk+0x14/0x18\n[  302.912868]  [\u003cc05d0aa1\u003e] tcp_v4_do_rcv+0x1d3/0x2bf\n[  302.917423]  [\u003cc05d26be\u003e] tcp_v4_rcv+0x563/0x5b9\n[  302.920453]  [\u003cc05bb20f\u003e] ip_local_deliver_finish+0xe8/0x183\n[  302.923865]  [\u003cc05bb10a\u003e] ip_rcv_finish+0x286/0x2a3\n[  302.928569]  [\u003cc059e438\u003e] dev_alloc_skb+0x11/0x25\n[  302.931563]  [\u003cc05a211f\u003e] netif_receive_skb+0x2d6/0x33a\n[  302.934914]  [\u003cd0917941\u003e] pcnet32_poll+0x333/0x680 [pcnet32]\n[  302.938735]  [\u003cc05a3b48\u003e] net_rx_action+0x5c/0xfe\n[  302.941792]  [\u003cc042856b\u003e] __do_softirq+0x5d/0xc1\n[  302.944788]  [\u003cc042850e\u003e] __do_softirq+0x0/0xc1\n[  302.948999]  [\u003cc040564b\u003e] do_softirq+0x55/0x88\n[  302.951870]  [\u003cc04501b1\u003e] handle_fasteoi_irq+0x0/0xa4\n[  302.954986]  [\u003cc04284da\u003e] irq_exit+0x35/0x69\n[  302.959081]  [\u003cc0405717\u003e] do_IRQ+0x99/0xae\n[  302.961896]  [\u003cc040422b\u003e] common_interrupt+0x23/0x28\n[  302.966279]  [\u003cc040819d\u003e] default_idle+0x2a/0x3d\n[  302.969212]  [\u003cc0402552\u003e] cpu_idle+0xb2/0xd2\n[  302.972169]  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[  302.974274] Code: fc ff 84 d2 0f 84 df fd ff ff e9 34 fe ff ff 83 c4 0c 5b 5e 5f 5d c3 90 90 57 89 d7 56 53 89 c3 50 68 3a 41 6f c0 e8 e9 55 e5 ff \u003c8b\u003e 93 9c 04 00 00 58 85 d2 59 74 1e 8b 72 10 31 db 31 c9 85 f6 \n[  303.011610] EIP: [\u003cc05cfaa6\u003e] tcp_v4_md5_do_lookup+0x12/0x42 SS:ESP 0068:c0792e54\n[  303.018360] Kernel panic - not syncing: Fatal exception in interrupt\n\nSigned-off-by: Gui Jianfeng \u003cguijianfeng@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "11d46123bfea068a48483f00518d301f452647fb",
      "tree": "d4c1e82e26e1f8dd3ac79e51826af246432fd74a",
      "parents": [
        "abf5cdb89d09ca981db10e1a85fd8531440165f2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 06 18:30:43 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 06 18:30:43 2008 -0700"
      },
      "message": "ipv4: Fix over-ifdeffing of ip_static_sysctl_init.\n\nNoticed by Paulius Zaleckas.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eb49e63093498cd17382018495b8cfb5b4a679bd",
      "tree": "a824e1d17f942d24d4c1853cdefb771cb6ff226e",
      "parents": [
        "9714be7da8b32f36d2468fe08ff603b6402df8cf"
      ],
      "author": {
        "name": "Joakim Koskela",
        "email": "jookos@gmail.com",
        "time": "Wed Aug 06 02:39:30 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 06 02:39:30 2008 -0700"
      },
      "message": "ipsec: Interfamily IPSec BEET\n\nHere\u0027s a revised version, based on Herbert\u0027s comments, of a fix for\nthe ipv6-inner, ipv4-outer interfamily ipsec beet mode. It fixes the\nnetwork header adjustment in interfamily, and doesn\u0027t reserve space\nfor the pseudo header anymore when we have ipv6 as the inner family.\n\nSigned-off-by: Joakim Koskela \u003cjookos@gmail.com\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6d273f8d011c351c9603c1dbfeae2c7458edd30d",
      "tree": "1f57a87061f07f69a5c580540133e601ced33f96",
      "parents": [
        "0967d61ea0d8e8a7826bd8949cd93dd1e829ac55"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Wed Aug 06 02:33:49 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 06 02:33:49 2008 -0700"
      },
      "message": "ipv4: replace dst_metric() with dst_mtu() in net/ipv4/route.c.\n\nThis patch replaces dst_metric() with dst_mtu() in net/ipv4/route.c.\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "adf044c8778de98dae29c5ce9973b7e43964674f",
      "tree": "aca4e834cf1a9d15d348f9c23905dcf9f443ca85",
      "parents": [
        "e5a4a72d4f88f4389e9340d383ca67031d1b8536"
      ],
      "author": {
        "name": "Sven Wegener",
        "email": "sven.wegener@stealer.net",
        "time": "Sun Aug 03 14:06:44 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 03 14:06:44 2008 -0700"
      },
      "message": "net: Add missing extra2 parameter for ip_default_ttl sysctl\n\nCommit 76e6ebfb40a2455c18234dcb0f9df37533215461 (\"netns: add namespace\nparameter to rt_cache_flush\") acceses the extra2 parameter of the\nip_default_ttl ctl_table, but it is never set to a meaningful\nvalue. When e84f84f276473dcc673f360e8ff3203148bdf0e2 (\"netns: place\nrt_genid into struct net\") is applied, we\u0027ll oops in\nrt_cache_invalidate(). Set extra2 to init_net, to avoid that.\n\nReported-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nSigned-off-by: Sven Wegener \u003csven.wegener@stealer.net\u003e\nTested-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nAcked-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9a5467fd600669cda488771dac3e951034fe2b08",
      "tree": "20c3c73ff3571e525193aca20d3602161b4e90be",
      "parents": [
        "676056132425ac425d7215cdaa8bd25582e07966",
        "00b1304c4ca81dd893973cc620b87a5c3ff3f660"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 01 11:35:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 01 11:35:16 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (46 commits)\n  tcp: MD5: Fix IPv6 signatures\n  skbuff: add missing kernel-doc for do_not_encrypt\n  net/ipv4/route.c: fix build error\n  tcp: MD5: Fix MD5 signatures on certain ACK packets\n  ipv6: Fix ip6_xmit to send fragments if ipfragok is true\n  ipvs: Move userspace definitions to include/linux/ip_vs.h\n  netdev: Fix lockdep warnings in multiqueue configurations.\n  netfilter: xt_hashlimit: fix race between htable_destroy and htable_gc\n  netfilter: ipt_recent: fix race between recent_mt_destroy and proc manipulations\n  netfilter: nf_conntrack_tcp: decrease timeouts while data in unacknowledged\n  irda: replace __FUNCTION__ with __func__\n  nsc-ircc: default to dongle type 9 on IBM hardware\n  bluetooth: add quirks for a few hci_usb devices\n  hysdn: remove the packed attribute from PofTimStamp_tag\n  isdn: use the common ascii hex helpers\n  tg3: adapt tg3 to use reworked PCI PM code\n  atm: fix direct casts of pointers to u32 in the InterPhase driver\n  atm: fix const assignment/discard warnings in the ATM networking driver\n  net: use the common ascii hex helpers\n  random32: seeding improvement\n  ...\n"
    },
    {
      "commit": "a1bc6eb4b499ae67ada9a01660010580b6569403",
      "tree": "95bcb20bd9ca30a82343e49d59e1e7c470bb057e",
      "parents": [
        "f418b006079ce537daf9436215f1d2a47e451602"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 30 06:32:52 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 01 11:25:22 2008 -0400"
      },
      "message": "[PATCH] ipv4_static_sysctl_init() should be under CONFIG_SYSCTL\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8a9204db665365354b349ed5b0bc054f0433a2a4",
      "tree": "e5ecc6efda8fc3f0d6b0c38319bdfd86edf4c62f",
      "parents": [
        "90b7e1120bb43ffaabb88d28f80a0c2e13167b15"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 31 20:51:22 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 31 20:51:22 2008 -0700"
      },
      "message": "net/ipv4/route.c: fix build error\n\nfix:\n\nnet/ipv4/route.c: In function \u0027ip_static_sysctl_init\u0027:\nnet/ipv4/route.c:3225: error: \u0027ipv4_route_path\u0027 undeclared (first use in this function)\nnet/ipv4/route.c:3225: error: (Each undeclared identifier is reported only once\nnet/ipv4/route.c:3225: error: for each function it appears in.)\nnet/ipv4/route.c:3225: error: \u0027ipv4_route_table\u0027 undeclared (first use in this function)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "90b7e1120bb43ffaabb88d28f80a0c2e13167b15",
      "tree": "5264787eb3c303186cff15bfd6b7ebef2a3ecb7b",
      "parents": [
        "77e2f14f71d68d05945f1d30ca55b5194d6ab1ce"
      ],
      "author": {
        "name": "Adam Langley",
        "email": "agl@imperialviolet.org",
        "time": "Thu Jul 31 20:49:48 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 31 20:49:48 2008 -0700"
      },
      "message": "tcp: MD5: Fix MD5 signatures on certain ACK packets\n\nI noticed, looking at tcpdumps, that timewait ACKs were getting sent\nwith an incorrect MD5 signature when signatures were enabled.\n\nI broke this in 49a72dfb8814c2d65bd9f8c9c6daf6395a1ec58d (\"tcp: Fix\nMD5 signatures for non-linear skbs\"). I didn\u0027t take into account that\nthe skb passed to tcp_*_send_ack was the inbound packet, thus the\nsource and dest addresses need to be swapped when calculating the MD5\npseudoheader.\n\nSigned-off-by: Adam Langley \u003cagl@imperialviolet.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a8ddc9163c6a16cd62531dba1ec5020484e33b02",
      "tree": "316873162ae914edd6a4f250693017486dede52a",
      "parents": [
        "ae375044d31075a31de5a839e07ded7f67b660aa"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Jul 31 00:38:31 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 31 00:38:31 2008 -0700"
      },
      "message": "netfilter: ipt_recent: fix race between recent_mt_destroy and proc manipulations\n\nThe thing is that recent_mt_destroy first flushes the entries\nfrom table with the recent_table_flush and only *after* this\nremoves the proc file, corresponding to that table.\n\nThus, if we manage to write to this file the \u0027+XXX\u0027 command we\nwill leak some entries. If we manage to write there a \u0027clean\u0027\ncommand we\u0027ll race in two recent_table_flush flows, since the\nrecent_mt_destroy calls this outside the recent_lock.\n\nThe proper solution as I see it is to remove the proc file first\nand then go on with flushing the table. This flushing becomes\nsafe w/o the lock, since the table is already inaccessible from\nthe outside.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6a8341b68b5269de71c32c6df91f4b0298da031d",
      "tree": "e56055f2d31c4082a0a91b613c301e24c8ee2a14",
      "parents": [
        "697f8d0348a652593d195a13dd1067d9df911a82"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Jul 30 16:30:15 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 30 16:30:15 2008 -0700"
      },
      "message": "net: use the common ascii hex helpers\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "785957d3e8c6fb37b18bf671923a76dbd8240025",
      "tree": "59f089e4bd109ad9d896c6e6a0f1699f42a34136",
      "parents": [
        "8d50b53d66a8a6ae41bafbdcabe401467803f33a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 30 03:03:15 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 30 03:27:25 2008 -0700"
      },
      "message": "tcp: MD5: Use MIB counter instead of warning for MD5 mismatch.\n\nFrom a report by Matti Aarnio, and preliminary patch by Adam Langley.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f9f489a4eeaa3c8a8618e078a5270d2c4872b67",
      "tree": "be3348d282a5ac20275710afaaedc2a45adbb8d6",
      "parents": [
        "15d3b4a26291c170563e2b25ded5de1324f93959"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 27 04:40:51 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 27 04:40:51 2008 -0700"
      },
      "message": "net: missing bits of net-namespace / sysctl\n\nPiss-poor sysctl registration API strikes again, film at 11...\nWhat we really need is _pathname_ required to be present in\nalready registered table, so that kernel could warn about bad\norder.  That\u0027s the next target for sysctl stuff (and generally\nsaner and more explicit order of initialization of ipv[46]\ninternals wouldn\u0027t hurt either).\n\nFor the time being, here are full fixups required by ..._rotable()\nstuff; we make per-net sysctl sets descendents of \"ro\" one and\nmake sure that sufficient skeleton is there before we start registering\nper-net sysctls.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "15d3b4a26291c170563e2b25ded5de1324f93959",
      "tree": "9bea548a7de5215c58a091d58f4eefdb92349f2c",
      "parents": [
        "2c3abab7c95295f319dc8899b74cbd60140fcdfb",
        "8be1a6d6c77ab4532e4476fdb8177030ef48b52c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 27 04:40:08 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 27 04:40:08 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "2c3abab7c95295f319dc8899b74cbd60140fcdfb",
      "tree": "b6fbad678b3967208b045e3a9aa3962d20c0dccf",
      "parents": [
        "6c3b8fc618905d7599dcc514c99ce4293d476f39"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 27 03:59:24 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 27 03:59:24 2008 -0700"
      },
      "message": "ipcomp: Fix warnings after ipcomp consolidation.\n\nnet/ipv4/ipcomp.c: In function ‘ipcomp4_init_state’:\nnet/ipv4/ipcomp.c:109: warning: unused variable ‘calg_desc’\nnet/ipv4/ipcomp.c:108: warning: unused variable ‘ipcd’\nnet/ipv4/ipcomp.c:107: warning: ‘err’ may be used uninitialized in this function\nnet/ipv6/ipcomp6.c: In function ‘ipcomp6_init_state’:\nnet/ipv6/ipcomp6.c:139: warning: unused variable ‘calg_desc’\nnet/ipv6/ipcomp6.c:138: warning: unused variable ‘ipcd’\nnet/ipv6/ipcomp6.c:137: warning: ‘err’ may be used uninitialized in this function\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4836e3007882984279ca63d3c42bf0b14616eb78",
      "tree": "28bf22726964e068b825491d71a141eefedbe5f8",
      "parents": [
        "5c7c204aeca51ccfad63caab4fcdc5d8026c0fd8",
        "4e1e018ecc6f7bfd10fc75b3ff9715cc8164e0a2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:23:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:23:44 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (39 commits)\n  [PATCH] fix RLIM_NOFILE handling\n  [PATCH] get rid of corner case in dup3() entirely\n  [PATCH] remove remaining namei_{32,64}.h crap\n  [PATCH] get rid of indirect users of namei.h\n  [PATCH] get rid of __user_path_lookup_open\n  [PATCH] f_count may wrap around\n  [PATCH] dup3 fix\n  [PATCH] don\u0027t pass nameidata to __ncp_lookup_validate()\n  [PATCH] don\u0027t pass nameidata to gfs2_lookupi()\n  [PATCH] new (local) helper: user_path_parent()\n  [PATCH] sanitize __user_walk_fd() et.al.\n  [PATCH] preparation to __user_walk_fd cleanup\n  [PATCH] kill nameidata passing to permission(), rename to inode_permission()\n  [PATCH] take noexec checks to very few callers that care\n  Re: [PATCH 3/6] vfs: open_exec cleanup\n  [patch 4/4] vfs: immutable inode checking cleanup\n  [patch 3/4] fat: dont call notify_change\n  [patch 2/4] vfs: utimes cleanup\n  [patch 1/4] vfs: utimes: move owner check into inode_change_ok()\n  [PATCH] vfs: use kstrdup() and check failing allocation\n  ...\n"
    },
    {
      "commit": "228428428138e231a155464239880201e5cc8b44",
      "tree": "89b437f5501d03ca36b717e232337426d0de77ca",
      "parents": [
        "78681ac08a611313595d13cafabae1183b71ef48",
        "6c3b8fc618905d7599dcc514c99ce4293d476f39"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:17:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:17:56 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  netns: fix ip_rt_frag_needed rt_is_expired\n  netfilter: nf_conntrack_extend: avoid unnecessary \"ct-\u003eext\" dereferences\n  netfilter: fix double-free and use-after free\n  netfilter: arptables in netns for real\n  netfilter: ip{,6}tables_security: fix future section mismatch\n  selinux: use nf_register_hooks()\n  netfilter: ebtables: use nf_register_hooks()\n  Revert \"pkt_sched: sch_sfq: dump a real number of flows\"\n  qeth: use dev-\u003eml_priv instead of dev-\u003epriv\n  syncookies: Make sure ECN is disabled\n  net: drop unused BUG_TRAP()\n  net: convert BUG_TRAP to generic WARN_ON\n  drivers/net: convert BUG_TRAP to generic WARN_ON\n"
    },
    {
      "commit": "bd7b1533cd6a68c734062aa69394bec7e2b1718e",
      "tree": "f968f6c68672502db08912bf69d8e3d1ba25169b",
      "parents": [
        "f7e6ced4061da509f737541ca4dbd44d83a6e82f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 15 16:00:59 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:10 2008 -0400"
      },
      "message": "[PATCH] sysctl: make sure that /proc/sys/net/ipv4 appears before per-ns ones\n\nMassage ipv4 initialization - make sure that net.ipv4 appears as\nnon-per-net-namespace before it shows up in per-net-namespace sysctls.\nThat\u0027s the only change outside of sysctl.c needed to get sane ordering\nrules and data structures for sysctls (esp. for procfs side of that\nmess).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6c3b8fc618905d7599dcc514c99ce4293d476f39",
      "tree": "f04de514889f8c7783a5f64645a0dad3b0140305",
      "parents": [
        "6c64825bf40ecc1b01610762ca736b18c8a9db92"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Jul 26 17:51:06 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 26 17:51:06 2008 -0700"
      },
      "message": "netns: fix ip_rt_frag_needed rt_is_expired\n\nRunning recent kernels, and using a particular vpn gateway, I\u0027ve been\nhaving to edit my mails down to get them accepted by the smtp server.\n\nGit bisect led to commit e84f84f276473dcc673f360e8ff3203148bdf0e2 -\nnetns: place rt_genid into struct net.  The conversion from a !\u003d test\nto rt_is_expired() put one negative too many: and now my mail works.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3918fed5f31213067c1c345bd904e1ea369e6819",
      "tree": "81148af4b7f53f32e4cfcee8f731eb3ec1382597",
      "parents": [
        "f858b4869a9136dd28cc2ab37f8b89268cc99462"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 26 17:48:59 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 26 17:48:59 2008 -0700"
      },
      "message": "netfilter: arptables in netns for real\n\nIN, FORWARD -- grab netns from in device, OUT -- from out device.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f858b4869a9136dd28cc2ab37f8b89268cc99462",
      "tree": "32bf6b63d25d5a807575cde15284abaee0307873",
      "parents": [
        "6c5a9d2e1599a099b0e47235a1c1502162b14310"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 26 17:48:38 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 26 17:48:38 2008 -0700"
      },
      "message": "netfilter: ip{,6}tables_security: fix future section mismatch\n\nCurrently not visible, because NET_NS is mutually exclusive with SYSFS\nwhich is required by SECURITY.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "16df845f4566bc252f3e09db12f5c2f22cb44226",
      "tree": "c83f5b664b669ff26bbf5c9a44b9ccecfa53c506",
      "parents": [
        "ec34c702ca8b7d6f0aa54379c3b0d0ec10b8ff23"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Sat Jul 26 02:21:54 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 26 02:21:54 2008 -0700"
      },
      "message": "syncookies: Make sure ECN is disabled\n\necn_ok is not initialized when a connection is established by cookies.\nThe cookie syn-ack never sets ECN, so ecn_ok must be set to 0.\n\nSpotted using ns-3/network simulation cradle simulator and valgrind.\n\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "547b792cac0a038b9dbf958d3c120df3740b5572",
      "tree": "08554d083b0ca7d65739dc1ce12f9b12a9b8e1f8",
      "parents": [
        "53e5e96ec18da6f65e89f05674711e1c93d8df67"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Jul 25 21:43:18 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 25 21:43:18 2008 -0700"
      },
      "message": "net: convert BUG_TRAP to generic WARN_ON\n\nRemoves legacy reinvent-the-wheel type thing. The generic\nmachinery integrates much better to automated debugging aids\nsuch as kerneloops.org (and others), and is unambiguous due to\nbetter naming. Non-intuively BUG_TRAP() is actually equal to\nWARN_ON() rather than BUG_ON() though some might actually be\npromoted to BUG_ON() but I left that to future.\n\nI could make at least one BUILD_BUG_ON conversion.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ff8419871ea757ae0298aa296bcff9b2ca48561",
      "tree": "ff2194bc75f06107e16220ce303ef546f9a4c769",
      "parents": [
        "8d25b36b77fe32c296ece83e94ca6ae4d17f3e25",
        "7d7e5a60c62e88cb8782760bb6c4d3bd1577a6c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 17:40:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 17:40:16 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  ipsec: ipcomp - Decompress into frags if necessary\n  ipsec: ipcomp - Merge IPComp implementations\n  pkt_sched: Fix locking in shutdown_scheduler_queue()\n"
    },
    {
      "commit": "696adfe84c11c571a1e0863460ff0ec142b4e5a9",
      "tree": "f00042d0c69211955ec6ef3a5d4a5c49ec7f8890",
      "parents": [
        "2fc9c4e18f94431e7eb77d97edb2a995b46fba55"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Jul 25 01:45:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:27 2008 -0700"
      },
      "message": "list_for_each_rcu must die: networking\n\nAll uses of list_for_each_rcu() can be profitably replaced by the\neasier-to-use list_for_each_entry_rcu().  This patch makes this change for\nnetworking, in preparation for removing the list_for_each_rcu() API\nentirely.\n\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6fccab671f2f0a24b799f29a4ec878f62d34656c",
      "tree": "e90a1ac0770f8fe59bd7c8768663052a7756b950",
      "parents": [
        "cffe1c5d7a5a1e54f7c2c6d0510f651a965bccc3"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jul 25 02:54:40 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 25 02:54:40 2008 -0700"
      },
      "message": "ipsec: ipcomp - Merge IPComp implementations\n\nThis patch merges the IPv4/IPv6 IPComp implementations since most\nof the code is identical.  As a result future enhancements will no\nlonger need to be duplicated.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "70eed75d76635ba7350651b9bd96529a306ec67a",
      "tree": "3fe67ecd24dfdffee1145b5d3983ac7113d9783c",
      "parents": [
        "4b53fb67e385b856a991d402096379dab462170a"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jul 23 16:42:42 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 23 16:42:42 2008 -0700"
      },
      "message": "netfilter: make security table depend on NETFILTER_ADVANCED\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4b53fb67e385b856a991d402096379dab462170a",
      "tree": "333dada17059f4c67c48123974059206c2e676d9",
      "parents": [
        "e8ebe3b893792887317bc24cc4608753f81b81d3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 23 16:38:45 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 23 16:38:45 2008 -0700"
      },
      "message": "tcp: Clear probes_out more aggressively in tcp_ack().\n\nThis is based upon an excellent bug report from Eric Dumazet.\n\ntcp_ack() should clear -\u003eicsk_probes_out even if there are packets\noutstanding.  Otherwise if we get a sequence of ACKs while we do have\npackets outstanding over and over again, we\u0027ll never clear the\nprobes_out value and eventually think the connection is too sick and\nwe\u0027ll reset it.\n\nThis appears to be some \"optimization\" added to tcp_ack() in the 2.4.x\ntimeframe.  In 2.2.x, probes_out is pretty much always cleared by\ntcp_ack().\n\nHere is Eric\u0027s original report:\n\n----------------------------------------\nApparently, we can in some situations reset TCP connections in a couple of seconds when some frames are lost.\n\nIn order to reproduce the problem, please try the following program on linux-2.6.25.*\n\nSetup some iptables rules to allow two frames per second sent on loopback interface to tcp destination port 12000\n\niptables -N SLOWLO\niptables -A SLOWLO -m hashlimit --hashlimit 2 --hashlimit-burst 1 --hashlimit-mode dstip --hashlimit-name slow2 -j ACCEPT\niptables -A SLOWLO -j DROP\n\niptables -A OUTPUT -o lo -p tcp --dport 12000 -j SLOWLO\n\nThen run the attached program and see the output :\n\n# ./loop\nState      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port\nESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,200ms,1)\nState      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port\nESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,200ms,3)\nState      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port\nESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,200ms,5)\nState      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port\nESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,200ms,7)\nState      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port\nESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,200ms,9)\nState      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port\nESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,200ms,11)\nState      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port\nESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,201ms,13)\nState      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port\nESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,188ms,15)\nwrite(): Connection timed out\nwrote 890 bytes but was interrupted after 9 seconds\nESTAB      0      0                 127.0.0.1:12000            127.0.0.1:54455\nExiting read() because no data available (4000 ms timeout).\nread 860 bytes\n\nWhile this tcp session makes progress (sending frames with 50 bytes of payload, every 500ms), linux tcp stack decides to reset it, when tcp_retries 2 is reached (default value : 15)\n\ntcpdump :\n\n15:30:28.856695 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: S 33788768:33788768(0) win 32792 \u003cmss 16396,nop,nop,sackOK,nop,wscale 7\u003e\n15:30:28.856711 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: S 33899253:33899253(0) ack 33788769 win 32792 \u003cmss 16396,nop,nop,sackOK,nop,wscale 7\u003e\n15:30:29.356947 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 1:61(60) ack 1 win 257\n15:30:29.356966 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 61 win 257\n15:30:29.866415 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 61:111(50) ack 1 win 257\n15:30:29.866427 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 111 win 257\n15:30:30.366516 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 111:161(50) ack 1 win 257\n15:30:30.366527 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 161 win 257\n15:30:30.876196 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 161:211(50) ack 1 win 257\n15:30:30.876207 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 211 win 257\n15:30:31.376282 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 211:261(50) ack 1 win 257\n15:30:31.376290 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 261 win 257\n15:30:31.885619 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 261:311(50) ack 1 win 257\n15:30:31.885631 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 311 win 257\n15:30:32.385705 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 311:361(50) ack 1 win 257\n15:30:32.385715 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 361 win 257\n15:30:32.895249 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 361:411(50) ack 1 win 257\n15:30:32.895266 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 411 win 257\n15:30:33.395341 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 411:461(50) ack 1 win 257\n15:30:33.395351 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 461 win 257\n15:30:33.918085 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 461:511(50) ack 1 win 257\n15:30:33.918096 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 511 win 257\n15:30:34.418163 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 511:561(50) ack 1 win 257\n15:30:34.418172 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 561 win 257\n15:30:34.927685 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 561:611(50) ack 1 win 257\n15:30:34.927698 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 611 win 257\n15:30:35.427757 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 611:661(50) ack 1 win 257\n15:30:35.427766 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 661 win 257\n15:30:35.937359 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 661:711(50) ack 1 win 257\n15:30:35.937376 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 711 win 257\n15:30:36.437451 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 711:761(50) ack 1 win 257\n15:30:36.437464 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 761 win 257\n15:30:36.947022 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 761:811(50) ack 1 win 257\n15:30:36.947039 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 811 win 257\n15:30:37.447135 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: P 811:861(50) ack 1 win 257\n15:30:37.447203 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: . ack 861 win 257\n15:30:41.448171 IP 127.0.0.1.12000 \u003e 127.0.0.1.56554: F 1:1(0) ack 861 win 257\n15:30:41.448189 IP 127.0.0.1.56554 \u003e 127.0.0.1.12000: R 33789629:33789629(0) win 0\n\nSource of program :\n\n/*\n * small producer/consumer program.\n * setup a listener on 127.0.0.1:12000\n * Forks a child\n *   child connect to 127.0.0.1, and sends 10 bytes on this tcp socket every 100 ms\n * Father accepts connection, and read all data\n */\n#include \u003csys/types.h\u003e\n#include \u003csys/socket.h\u003e\n#include \u003cnetinet/in.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003ctime.h\u003e\n#include \u003csys/poll.h\u003e\n\nint port \u003d 12000;\nchar buffer[4096];\nint main(int argc, char *argv[])\n{\n        int lfd \u003d socket(AF_INET, SOCK_STREAM, 0);\n        struct sockaddr_in socket_address;\n        time_t t0, t1;\n        int on \u003d 1, sfd, res;\n        unsigned long total \u003d 0;\n        socklen_t alen \u003d sizeof(socket_address);\n        pid_t pid;\n\n        time(\u0026t0);\n        socket_address.sin_family \u003d AF_INET;\n        socket_address.sin_port \u003d htons(port);\n        socket_address.sin_addr.s_addr \u003d htonl(INADDR_LOOPBACK);\n\n        if (lfd \u003d\u003d -1) {\n                perror(\"socket()\");\n                return 1;\n        }\n        setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, \u0026on, sizeof(int));\n        if (bind(lfd, (struct sockaddr *)\u0026socket_address, sizeof(socket_address)) \u003d\u003d -1) {\n                perror(\"bind\");\n                close(lfd);\n                return 1;\n        }\n        if (listen(lfd, 1) \u003d\u003d -1) {\n                perror(\"listen()\");\n                close(lfd);\n                return 1;\n        }\n        pid \u003d fork();\n        if (pid \u003d\u003d 0) {\n                int i, cfd \u003d socket(AF_INET, SOCK_STREAM, 0);\n                close(lfd);\n                if (connect(cfd, (struct sockaddr *)\u0026socket_address, sizeof(socket_address)) \u003d\u003d -1) {\n                        perror(\"connect()\");\n                        return 1;\n                        }\n                for (i \u003d 0 ; ;) {\n                        res \u003d write(cfd, \"blablabla\\n\", 10);\n                        if (res \u003e 0) total +\u003d res;\n                        else if (res \u003d\u003d -1) {\n                                perror(\"write()\");\n                                break;\n                        } else break;\n                        usleep(100000);\n                        if (++i \u003d\u003d 10) {\n                                system(\"ss -on dst 127.0.0.1:12000\");\n                                i \u003d 0;\n                        }\n                }\n                time(\u0026t1);\n                fprintf(stderr, \"wrote %lu bytes but was interrupted after %g seconds\\n\", total, difftime(t1, t0));\n                system(\"ss -on | grep 127.0.0.1:12000\");\n                close(cfd);\n                return 0;\n        }\n        sfd \u003d accept(lfd, (struct sockaddr *)\u0026socket_address, \u0026alen);\n        if (sfd \u003d\u003d -1) {\n                perror(\"accept\");\n                return 1;\n        }\n        close(lfd);\n        while (1) {\n                struct pollfd pfd[1];\n                pfd[0].fd \u003d sfd;\n                pfd[0].events \u003d POLLIN;\n                if (poll(pfd, 1, 4000) \u003d\u003d 0) {\n                        fprintf(stderr, \"Exiting read() because no data available (4000 ms timeout).\\n\");\n                        break;\n                }\n                res \u003d read(sfd, buffer, sizeof(buffer));\n                if (res \u003e 0) total +\u003d res;\n                else if (res \u003d\u003d 0) break;\n                else perror(\"read()\");\n        }\n        fprintf(stderr, \"read %lu bytes\\n\", total);\n        close(sfd);\n        return 0;\n}\n----------------------------------------\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b32d13102d39ed411d152a7ffcc5f66d5b3b1b49",
      "tree": "5db024bc2defe8440ea67c16dce65c4082ff4b98",
      "parents": [
        "ebb36a978131810c98e7198b1187090c697cf99f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 21 18:45:34 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 21 18:45:34 2008 -0700"
      },
      "message": "tcp: Fix bitmask test in tcp_syn_options()\n\nAs reported by Alexey Dobriyan:\n\n\t  CHECK   net/ipv4/tcp_output.c\n\tnet/ipv4/tcp_output.c:475:7: warning: dubious: !x \u0026 y\n\nAnd sparse is damn right!\n\n\tif (unlikely(!OPTION_TS \u0026 opts-\u003eoptions))\n\t\t    ^^^\n\t\tsize +\u003d TCPOLEN_SACKPERM_ALIGNED;\n\nOPTION_TS is (1 \u003c\u003c 1), so condition will never trigger.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "47112e25da41d9059626033986dc3353e101f815",
      "tree": "72857968c318960ba50a4cc7232041228e8361dc",
      "parents": [
        "6579e57b31d79d31d9b806e41ba48774e73257dc"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Jul 21 13:35:08 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 21 13:35:08 2008 -0700"
      },
      "message": "udplite: Protection against coverage value wrap-around\n\nThis patch clamps the cscov setsockopt values to a maximum of 0xFFFF.\n\nSetsockopt values greater than 0xffff can cause an unwanted\nwrap-around.  Further, IPv6 jumbograms are not supported (RFC 3838,\n3.5), so that values greater than 0xffff are not even useful.\n\nFurther changes: fixed a typo in the documentation.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c71529e42ce39c167dc53430cb8f3d5634af77df",
      "tree": "4d7d97e2f35b72ee5da618ffdf60eb53e58350d8",
      "parents": [
        "db1a75bdcc1766dc7e1fae9201ae287dcbcb6c66"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jul 21 10:03:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 21 10:11:02 2008 -0700"
      },
      "message": "netfilter: nf_nat_sip: c\u003d is optional for session\n\nAccording to RFC2327, the connection information is optional\nin the session description since it can be specified in the\nmedia description instead.\n\nMy provider does exactly that and does not provide any connection\ninformation in the session description.  As a result the new\nkernel drops all invite responses.\n\nThis patch makes it optional as documented.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "584015727a3b88b46602b20077b46cd04f8b4ab3",
      "tree": "a9b4ec18e2181e03ee24b59b30f7408bcbcf140c",
      "parents": [
        "07a7c1070ed382ad4562e3a0d453fd2001d92f7b"
      ],
      "author": {
        "name": "Krzysztof Piotr Oledzki",
        "email": "ole@ans.pl",
        "time": "Mon Jul 21 10:01:34 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 21 10:10:58 2008 -0700"
      },
      "message": "netfilter: accounting rework: ct_extend + 64bit counters (v4)\n\nInitially netfilter has had 64bit counters for conntrack-based accounting, but\nit was changed in 2.6.14 to save memory. Unfortunately in-kernel 64bit counters are\nstill required, for example for \"connbytes\" extension. However, 64bit counters\nwaste a lot of memory and it was not possible to enable/disable it runtime.\n\nThis patch:\n - reimplements accounting with respect to the extension infrastructure,\n - makes one global version of seq_print_acct() instead of two seq_print_counters(),\n - makes it possible to enable it at boot time (for CONFIG_SYSCTL/CONFIG_SYSFS\u003dn),\n - makes it possible to enable/disable it at runtime by sysctl or sysfs,\n - extends counters from 32bit to 64bit,\n - renames ip_conntrack_counter -\u003e nf_conn_counter,\n - enables accounting code unconditionally (no longer depends on CONFIG_NF_CT_ACCT),\n - set initial accounting enable state based on CONFIG_NF_CT_ACCT\n - removes buggy IPCT_COUNTER_FILLING event handling.\n\nIf accounting is enabled newly created connections get additional acct extend.\nOld connections are not changed as it is not possible to add a ct_extend area\nto confirmed conntrack. Accounting is performed for all connections with\nacct extend regardless of a current state of \"net.netfilter.nf_conntrack_acct\".\n\nSigned-off-by: Krzysztof Piotr Oledzki \u003cole@ans.pl\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0dbff689c2f299e8f63911247925f2728d087688",
      "tree": "77a0b4db11d438315e2ef97ce117bbe532774600",
      "parents": [
        "ae6134bdf3197206fba95563d755d2fa50d90ddd"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Mon Jul 21 10:00:51 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 21 10:10:57 2008 -0700"
      },
      "message": "netfilter: nf_nat_core: eliminate useless find_appropriate_src for IP_NAT_RANGE_PROTO_RANDOM\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "721499e8931c5732202481ae24f2dfbf9910f129",
      "tree": "c94d8d681966109bb41f712f21f3a9825ae2172d",
      "parents": [
        "407d819cf0fd54c6fc1138a509225696aecafd15"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sat Jul 19 22:34:43 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 19 22:34:43 2008 -0700"
      },
      "message": "netns: Use net_eq() to compare net-namespaces for optimization.\n\nWithout CONFIG_NET_NS, namespace is always \u0026init_net.\nCompiler will be able to omit namespace comparisons with this patch.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bdccc4ca13a639d759206c5b21ed73f8a813eaba",
      "tree": "fb7bcba6f33746566ae8204a08e068b7310a05d1",
      "parents": [
        "4389dded7767d24290463f2a8302ba3253ebdd56"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "dlezcano@fr.ibm.com",
        "time": "Sat Jul 19 00:15:13 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 19 00:15:13 2008 -0700"
      },
      "message": "tcp: fix kernel panic with listening_get_next\n\n# BUG: unable to handle kernel NULL pointer dereference at\n0000000000000038\nIP: [\u003cffffffff821ed01e\u003e] listening_get_next+0x50/0x1b3\nPGD 11e4b9067 PUD 11d16c067 PMD 0\nOops: 0000 [1] SMP\nlast sysfs file: /sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map\nCPU 3\nModules linked in: bridge ipv6 button battery ac loop dm_mod tg3 ext3\njbd edd fan thermal processor thermal_sys hwmon sg sata_svw libata dock\nserverworks sd_mod scsi_mod ide_disk ide_core [last unloaded: freq_table]\nPid: 3368, comm: slpd Not tainted 2.6.26-rc2-mm1-lxc4 #1\nRIP: 0010:[\u003cffffffff821ed01e\u003e] [\u003cffffffff821ed01e\u003e]\nlistening_get_next+0x50/0x1b3\nRSP: 0018:ffff81011e1fbe18 EFLAGS: 00010246\nRAX: 0000000000000000 RBX: ffff8100be0ad3c0 RCX: ffff8100619f50c0\nRDX: ffffffff82475be0 RSI: ffff81011d9ae6c0 RDI: ffff8100be0ad508\nRBP: ffff81011f4f1240 R08: 00000000ffffffff R09: ffff8101185b6780\nR10: 000000000000002d R11: ffffffff820fdbfa R12: ffff8100be0ad3c8\nR13: ffff8100be0ad6a0 R14: ffff8100be0ad3c0 R15: ffffffff825b8ce0\nFS: 00007f6a0ebd16d0(0000) GS:ffff81011f424540(0000)\nknlGS:0000000000000000\nCS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b\nCR2: 0000000000000038 CR3: 000000011dc20000 CR4: 00000000000006e0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\nProcess slpd (pid: 3368, threadinfo ffff81011e1fa000, task\nffff81011f4b8660)\nStack: 00000000000002ee ffff81011f5a57c0 ffff81011f4f1240\nffff81011e1fbe90\n0000000000001000 0000000000000000 00007fff16bf2590 ffffffff821ed9c8\nffff81011f5a57c0 ffff81011d9ae6c0 000000000000041a ffffffff820b0abd\nCall Trace:\n[\u003cffffffff821ed9c8\u003e] ? tcp_seq_next+0x34/0x7e\n[\u003cffffffff820b0abd\u003e] ? seq_read+0x1aa/0x29d\n[\u003cffffffff820d21b4\u003e] ? proc_reg_read+0x73/0x8e\n[\u003cffffffff8209769c\u003e] ? vfs_read+0xaa/0x152\n[\u003cffffffff82097a7d\u003e] ? sys_read+0x45/0x6e\n[\u003cffffffff8200bd2b\u003e] ? system_call_after_swapgs+0x7b/0x80\n\n\nCode: 31 a9 25 00 e9 b5 00 00 00 ff 45 20 83 7d 0c 01 75 79 4c 8b 75 10\n48 8b 0e eb 1d 48 8b 51 20 0f b7 45 08 39 02 75 0e 48 8b 41 28 \u003c4c\u003e 39\n78 38 0f 84 93 00 00 00 48 8b 09 48 85 c9 75 de 8b 55 1c\nRIP [\u003cffffffff821ed01e\u003e] listening_get_next+0x50/0x1b3\nRSP \u003cffff81011e1fbe18\u003e\nCR2: 0000000000000038\n\nThis kernel panic appears with CONFIG_NET_NS\u003dy.\n\nHow to reproduce ?\n\n    On the buggy host (host A)\n       * ip addr add 1.2.3.4/24 dev eth0\n\n    On a remote host (host B)\n       * ip addr add 1.2.3.5/24 dev eth0\n       * iptables -A INPUT -p tcp -s 1.2.3.4 -j DROP\n       * ssh 1.2.3.4\n\n    On host A:\n       * netstat -ta or cat /proc/net/tcp\n\nThis bug happens when reading /proc/net/tcp[6] when there is a req_sock\nat the SYN_RECV state.\n\nWhen a SYN is received the minisock is created and the sk field is set to\nNULL. In the listening_get_next function, we try to look at the field \nreq-\u003esk-\u003esk_net.\n\nWhen looking at how to fix this bug, I noticed that is useless to do\nthe check for the minisock belonging to the namespace. A minisock belongs\nto a listen point and this one is per namespace, so when browsing the\nminisock they are always per namespace.\n\nSigned-off-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4389dded7767d24290463f2a8302ba3253ebdd56",
      "tree": "ed34a2084c47c6c707e0ce6b4eab8d442f20c4c3",
      "parents": [
        "33ad798c924b4a1afad3593f2796d465040aadd5"
      ],
      "author": {
        "name": "Adam Langley",
        "email": "agl@imperialviolet.org",
        "time": "Sat Jul 19 00:07:02 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 19 00:07:02 2008 -0700"
      },
      "message": "tcp: Remove redundant checks when setting eff_sacks\n\nRemove redundant checks when setting eff_sacks and make the number of SACKs a\ncompile time constant. Now that the options code knows how many SACK blocks can\nfit in the header, we don\u0027t need to have the SACK code guessing at it.\n\nSigned-off-by: Adam Langley \u003cagl@imperialviolet.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "33ad798c924b4a1afad3593f2796d465040aadd5",
      "tree": "2a0a868849d6e84591b9d4d917722aee2544b77b",
      "parents": [
        "49a72dfb8814c2d65bd9f8c9c6daf6395a1ec58d"
      ],
      "author": {
        "name": "Adam Langley",
        "email": "agl@imperialviolet.org",
        "time": "Sat Jul 19 00:04:31 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 19 00:04:31 2008 -0700"
      },
      "message": "tcp: options clean up\n\nThis should fix the following bugs:\n  * Connections with MD5 signatures produce invalid packets whenever SACK\n    options are included\n  * MD5 signatures are counted twice in the MSS calculations\n\nBehaviour changes:\n  * A SYN with MD5 + SACK + TS elicits a SYNACK with MD5 + SACK\n\n    This is because we can\u0027t fit any SACK blocks in a packet with MD5 + TS\n    options. There was discussion about disabling SACK rather than TS in\n    order to fit in better with old, buggy kernels, but that was deemed to\n    be unnecessary.\n\n  * SYNs with MD5 don\u0027t include a TS option\n\n    See above.\n\nAdditionally, it removes a bunch of duplicated logic for calculating options,\nwhich should help avoid these sort of issues in the future.\n\nSigned-off-by: Adam Langley \u003cagl@imperialviolet.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "49a72dfb8814c2d65bd9f8c9c6daf6395a1ec58d",
      "tree": "38804d609f21503573bbdd8bb9af38df99275ff5",
      "parents": [
        "845525a642c1c9e1335c33a274d4273906ee58eb"
      ],
      "author": {
        "name": "Adam Langley",
        "email": "agl@imperialviolet.org",
        "time": "Sat Jul 19 00:01:42 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 19 00:01:42 2008 -0700"
      },
      "message": "tcp: Fix MD5 signatures for non-linear skbs\n\nCurrently, the MD5 code assumes that the SKBs are linear and, in the case\nthat they aren\u0027t, happily goes off and hashes off the end of the SKB and\ninto random memory.\n\nReported by Stephen Hemminger in [1]. Advice thanks to Stephen and Evgeniy\nPolyakov. Also includes a couple of missed route_caps from Stephen\u0027s patch\nin [2].\n\n[1] http://marc.info/?l\u003dlinux-netdev\u0026m\u003d121445989106145\u0026w\u003d2\n[2] http://marc.info/?l\u003dlinux-netdev\u0026m\u003d121459157816964\u0026w\u003d2\n\nSigned-off-by: Adam Langley \u003cagl@imperialviolet.org\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "336d3262df71fcd2661180bb35d5ea41b4cbca58",
      "tree": "54078334c9c3706a003d4b54a8e9e9b23aa01cef",
      "parents": [
        "4e54064e0a13b7a7d4a481123c1783f770538e30"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Jul 18 23:07:09 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 23:07:09 2008 -0700"
      },
      "message": "sctp: remove unnecessary byteshifting, calculate directly in big-endian\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1e20f7c8b9ccbafc9ea78f2b406738728ce6b81",
      "tree": "807dacbfdc6ebfde27ba4d4f46dd1572c4a07cde",
      "parents": [
        "30ee42be00b7a50929a73cb617f70b1d3219eb69"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Fri Jul 18 23:02:15 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 23:02:15 2008 -0700"
      },
      "message": "tcp: RTT metrics scaling\n\nSome of the metrics (RTT, RTTVAR and RTAX_RTO_MIN) are stored in\nkernel units (jiffies) and this leaks out through the netlink API to\nuser space where the units for jiffies are unknown.\n\nThis patches changes the kernel to convert to/from milliseconds. This\nchanges the ABI, but milliseconds seemed like the most natural unit\nfor these parameters.  Values available via syscall in\n/proc/net/rt_cache and netlink will be in milliseconds.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\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": "60bdde95807e982a824be9cfdd35055cc721a88a",
      "tree": "286bd367b687f9a1daddcc6b0fde2f2e8ef4c0ef",
      "parents": [
        "8e3461d01bdbc3dbf993448ed9ad4acaaeb6495d"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:06:50 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:06:50 2008 -0700"
      },
      "message": "proc: clean the ip_misc_proc_init and ip_proc_init_net error paths\n\nAfter all this stuff is moved outside, this function can look better.\n\nBesides, I tuned the error path in ip_proc_init_net to make it have\nonly 2 exit points, not 3.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8e3461d01bdbc3dbf993448ed9ad4acaaeb6495d",
      "tree": "eac7757ba4bc96ce1ce1ba629b5ea6d4b81f6b20",
      "parents": [
        "229bf0cbaa054f1502ab4ee219f05985d2c838d1"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:06:26 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:06:26 2008 -0700"
      },
      "message": "proc: show per-net ip_devconf.forwarding in /proc/net/snmp\n\nThis one has become per-net long ago, but the appropriate file\nis per-net only now.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "229bf0cbaa054f1502ab4ee219f05985d2c838d1",
      "tree": "7f542b1f5f3c249a66b7decd2ae22ae5067e97df",
      "parents": [
        "7b7a9dfdf6ccda647f54ea5fa3bd0ac17a189eeb"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:06:04 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:06:04 2008 -0700"
      },
      "message": "proc: create /proc/net/snmp file in each net\n\nAll the statistics shown in this file have been made per-net already.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7b7a9dfdf6ccda647f54ea5fa3bd0ac17a189eeb",
      "tree": "92ab52ffab8bfdc1f3697ff8d02c12a06a43d76c",
      "parents": [
        "d89cbbb1e69a3bfea38038fb058bd51013902ef3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:05:17 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:05:17 2008 -0700"
      },
      "message": "proc: create /proc/net/netstat file in each net\n\nNow all the shown in it statistics is netnsizated, time to\nshow it in appropriate net.\n\nThe appropriate net init/exit ops already exist - they make\nthe sockstat file per net - so just extend them.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d89cbbb1e69a3bfea38038fb058bd51013902ef3",
      "tree": "fc6d3c47a7cd8f22dc6f6fd48daebbd07482e29d",
      "parents": [
        "923c6586b0dc0a00df07a1608185437145a0c68b"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:04:51 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:04:51 2008 -0700"
      },
      "message": "ipv4: clean the init_ipv4_mibs error paths\n\nAfter moving all the stuff outside this function it looks\na bit ugly - make it look better.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "923c6586b0dc0a00df07a1608185437145a0c68b",
      "tree": "bbe3324b4ae8920a3a50e81e596c75db11cc9433",
      "parents": [
        "b60538a0d737609213e4b758881913498d3ff0b4"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:04:22 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:04:22 2008 -0700"
      },
      "message": "mib: put icmpmsg statistics on struct net\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b60538a0d737609213e4b758881913498d3ff0b4",
      "tree": "380b75c744b9eb13b56fe386b58ddc2106686372",
      "parents": [
        "386019d3514b3ed9de8d0b05b67e638a7048375b"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:04:02 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:04:02 2008 -0700"
      },
      "message": "mib: put icmp statistics on struct net\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "386019d3514b3ed9de8d0b05b67e638a7048375b",
      "tree": "6447cb5bfe73788abab98f4835b95af258bfeeff",
      "parents": [
        "2f275f91a438abd8eec5321798d66a4ffe6869fa"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:03:45 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:03:45 2008 -0700"
      },
      "message": "mib: put udplite statistics on struct net\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2f275f91a438abd8eec5321798d66a4ffe6869fa",
      "tree": "a14cc8f7112d2ba0dfe08e43577cab779b858ba6",
      "parents": [
        "61a7e26028b94805fd686a6dc9dbd9941f8f19b0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:03:27 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:03:27 2008 -0700"
      },
      "message": "mib: put udp statistics on struct net\n\nSimilar to... ouch, I repeat myself.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "61a7e26028b94805fd686a6dc9dbd9941f8f19b0",
      "tree": "2253a6f827a68ea5a7041456c5bfcac0d8e24138",
      "parents": [
        "a20f5799ca7ceb24d63c74b6fdad4b0c0ee91f4f"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:03:08 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:03:08 2008 -0700"
      },
      "message": "mib: put net statistics on struct net\n\nSimilar to ip and tcp ones :)\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a20f5799ca7ceb24d63c74b6fdad4b0c0ee91f4f",
      "tree": "0262e4a674c611044d78c9f62f378473df0ce0f1",
      "parents": [
        "57ef42d59d1c1d79be59fc3c6380ae14234e38c3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:02:42 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:02:42 2008 -0700"
      },
      "message": "mib: put ip statistics on struct net\n\nSimilar to tcp one.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "57ef42d59d1c1d79be59fc3c6380ae14234e38c3",
      "tree": "4ccc2166f6967ac1fb582715f7d7d5bb5c9205fc",
      "parents": [
        "9b4661bd6e5437508e0920608f3213c23212cd1b"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:02:08 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:02:08 2008 -0700"
      },
      "message": "mib: put tcp statistics on struct net\n\nProc temporary uses stats from init_net.\n\nBTW, TCP_XXX_STATS are beautiful (w/o do { } while (0) facing) again :)\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9b4661bd6e5437508e0920608f3213c23212cd1b",
      "tree": "d8d13cd58c7ce32d63dd4175c67c42e61456dcda",
      "parents": [
        "852566f53ccdc9d1c149ffa28daa9778e13fa3da"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 18 04:01:44 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 04:01:44 2008 -0700"
      },
      "message": "ipv4: add pernet mib operations\n\nThese ones are currently empty, but stuff from init_ipv4_mibs will\nsequentially migrate there.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed88098e25d77bef3b2ad8c9d8e2ebf454d9ccbf",
      "tree": "1923cf073c299e1265cbe8a82de10cf95c91c791",
      "parents": [
        "f2bf415cfed703de5ba94d25cdb160920c01fb00"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:32:45 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:32:45 2008 -0700"
      },
      "message": "mib: add net to NET_ADD_STATS_USER\n\nDone with NET_XXX_STATS macros :)\n\nTo be continued...\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f2bf415cfed703de5ba94d25cdb160920c01fb00",
      "tree": "58c2ea153c45d14ecf348b6a891bcf3b258c6547",
      "parents": [
        "6f67c817fcfd94f5ca0f14b114b7fa25c0210c8b"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:32:25 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:32:25 2008 -0700"
      },
      "message": "mib: add net to NET_ADD_STATS_BH\n\nThis one is tricky. \n\nThe thing is that this macro is only used when killing tw buckets, \nbut since this killer is promiscuous wrt to which net each particular\ntw belongs to, I have to use it only when NET_NS is off. When the net\nnamespaces are on, I use the INET_INC_STATS_BH for each bucket.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f67c817fcfd94f5ca0f14b114b7fa25c0210c8b",
      "tree": "3472fe69877d53aff3e3b78b8d7ec34e684db39b",
      "parents": [
        "de0744af1fe2d0a3d428f6af0f2fe1f6179b1a9c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:31:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:31:39 2008 -0700"
      },
      "message": "mib: add net to NET_INC_STATS_USER\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "de0744af1fe2d0a3d428f6af0f2fe1f6179b1a9c",
      "tree": "68d02820b1aa13e8fa9743c0ece5930a13d5a205",
      "parents": [
        "4e6734447dbc7a0a85e09616821c0782d9fb1141"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:31:16 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:31:16 2008 -0700"
      },
      "message": "mib: add net to NET_INC_STATS_BH\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4e6734447dbc7a0a85e09616821c0782d9fb1141",
      "tree": "4fa4e7f6a479a172d690fba7f50c0659cb977e2d",
      "parents": [
        "1ed834655a0d42ecd80ff051e681e2ea44747b6c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:30:14 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:30:14 2008 -0700"
      },
      "message": "mib: add net to NET_INC_STATS\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ed834655a0d42ecd80ff051e681e2ea44747b6c",
      "tree": "065943419a374616442027fc60c499565e1f16d5",
      "parents": [
        "ca12a1a443a51298afcca627ad0bcbd8ad1dcddc"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:29:51 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:29:51 2008 -0700"
      },
      "message": "tcp: replace tcp_sock argument with sock in some places\n\nThese places have a tcp_sock, but we\u0027d prefer the sock itself to\nget net from it. Fortunately, tcp_sk macro is just a type cast, so\nthis replace is really cheap.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ca12a1a443a51298afcca627ad0bcbd8ad1dcddc",
      "tree": "9eebfe3f3b5812ea524d0b32223fb622a8d12bc8",
      "parents": [
        "5c52ba170f8167511bdb65b981f4582100c40675"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:28:42 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:28:42 2008 -0700"
      },
      "message": "inet: prepare net on the stack for NET accounting macros\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5c52ba170f8167511bdb65b981f4582100c40675",
      "tree": "1dab120003eb696dfb4ca18c40861274a317739d",
      "parents": [
        "cf1100a7a4f2573f50f9a923b53373977328e3c8"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:28:10 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:28:10 2008 -0700"
      },
      "message": "sock: add net to prot-\u003eenter_memory_pressure callback\n\nThe tcp_enter_memory_pressure calls NET_INC_STATS, but doesn\u0027t\nhave where to get the net from.\n\nI decided to add a sk argument, not the net itself, only to factor\nall the required sock_net(sk) calls inside the enter_memory_pressure \ncallback itself.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "74688e487a407a33d42879957b478601aca616b8",
      "tree": "38c3be832e3ac9379b9b4f5a836caf9540d1b14c",
      "parents": [
        "63231bddf6514778792d3784f63822473d250fc0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:22:46 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:22:46 2008 -0700"
      },
      "message": "mib: add net to TCP_DEC_STATS\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "63231bddf6514778792d3784f63822473d250fc0",
      "tree": "d380f9ca00fa0ca2cd74142c5b51b97717ef1e9a",
      "parents": [
        "81cc8a75d944fa39fc333c2c329c8e8b3c62cada"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:22:25 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:22:25 2008 -0700"
      },
      "message": "mib: add net to TCP_INC_STATS_BH\n\nSame as before - the sock is always there to get the net from,\nbut there are also some places with the net already saved on \nthe stack.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "81cc8a75d944fa39fc333c2c329c8e8b3c62cada",
      "tree": "40d93df3f13d96e8cf66d154d2b865c35df18ec7",
      "parents": [
        "a9c19329eccdb145a08a4a2e969d7b40c54c9bcc"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:22:04 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:22:04 2008 -0700"
      },
      "message": "mib: add net to TCP_INC_STATS\n\nFortunately (almost) all the TCP code has a sock to get the net from :)\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a9c19329eccdb145a08a4a2e969d7b40c54c9bcc",
      "tree": "3cee2cdcdb0270fcd5e7765cdb4e8b5882afecb0",
      "parents": [
        "f10f84314d5adc0ba6ca2a0877442de63e226130"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:21:42 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:21:42 2008 -0700"
      },
      "message": "tcp: add net to tcp_mib_init\n\nThis one sets TCP MIBs after zeroing them, and thus requires\nthe net.\n\nThe existing single caller can use init_net (temporarily).\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a86b1e3019455283a677c2485cfeda2dc36df3eb",
      "tree": "452f1ec6cba2a131d189be91a6f4ec1d50092827",
      "parents": [
        "c5346fe396f5e22bbfb3ec037c43891c3c57d3e6"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:20:58 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:20:58 2008 -0700"
      },
      "message": "inet: prepare struct net for TCP MIB accounting\n\nThis is the same as the first patch in the set, but preparing\nthe net for TCP_XXX_STATS - save the struct net on the stack\nwhere required and possible.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c5346fe396f5e22bbfb3ec037c43891c3c57d3e6",
      "tree": "9252111b8b89e86e980a5af0055c696796cdfc12",
      "parents": [
        "7c73a6faffae0bfae70639113aecf06af666e714"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:20:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:20:33 2008 -0700"
      },
      "message": "mib: add net to IP_ADD_STATS_BH\n\nVery simple - only ip_evictor (fragments) requires such.\nThis patch ends up the IP_XXX_STATS patching.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7c73a6faffae0bfae70639113aecf06af666e714",
      "tree": "3d7910c4674b673b061f3168b140454b1950c346",
      "parents": [
        "5e38e270444f2629de7a706b5a9ca1b333d14517"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:20:11 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:20:11 2008 -0700"
      },
      "message": "mib: add net to IP_INC_STATS_BH\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5e38e270444f2629de7a706b5a9ca1b333d14517",
      "tree": "774a15eb5ace315c0c5e06630e4ba3d24406b12f",
      "parents": [
        "c6f8f7e3bb4b2c1886ef3743e8f24521f7a60abc"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:19:49 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:19:49 2008 -0700"
      },
      "message": "mib: add net to IP_INC_STATS\n\nAll the callers already have either the net itself, or the place\nwhere to get it from.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "84a3aa000eacbaf841d745b07ef3a3280899056b",
      "tree": "013d13bb51e1046f6864ae634edaf0dad30da2e7",
      "parents": [
        "78ed11a56bd8679aa6d51eb36b448342c59a7824"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jul 16 20:19:08 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:19:08 2008 -0700"
      },
      "message": "ipv4: prepare net initialization for IP accounting\n\nSome places, that deal with IP statistics already have where to\nget a struct net from, but use it directly, without declaring\na separate variable on the stack.\n\nSo, save this net on the stack for future IP_XXX_STATS macros.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "70efce27fc3d54271519244dc5e47da4ed711dd4",
      "tree": "c95c8cb7f7fe985d99bc01a0f35bc474681fb75b",
      "parents": [
        "7b1c65faa27f5ade3915e4bbc9186b6e64d2d6ec"
      ],
      "author": {
        "name": "Will Newton",
        "email": "will.newton@gmail.com",
        "time": "Wed Jul 16 20:13:43 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:13:43 2008 -0700"
      },
      "message": "net/ipv4/tcp.c: Fix use of PULLHUP instead of POLLHUP in comments.\n\nChange PULLHUP to POLLHUP in tcp_poll comments and clean up another\ncomment for grammar and coding style.\n\nSigned-off-by: Will Newton \u003cwill.newton@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "885a4c966bcc11a1470c2b85a90360f6518a507a",
      "tree": "43459d8b19cc036c46cc899880509c2ba2c4a760",
      "parents": [
        "9d3a0de7dc3c1c4456db5ceb92c445bef0a47681",
        "375c6bbabf210ded3151481ca1ac7f730903512b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:07:06 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:07:06 2008 -0700"
      },
      "message": "Merge branch \u0027stealer/ipvs/sync-daemon-cleanup-for-next\u0027 of git://git.stealer.net/linux-2.6\n"
    },
    {
      "commit": "9d3a0de7dc3c1c4456db5ceb92c445bef0a47681",
      "tree": "0534ecf89612ad5307b38309bf7b8f4920eb1f0f",
      "parents": [
        "d0236f8f8223ad841f461ea3a635d452d194806b"
      ],
      "author": {
        "name": "Rumen G. Bogdanovski",
        "email": "rumen@voicecho.com",
        "time": "Wed Jul 16 20:04:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 16 20:04:23 2008 -0700"
      },
      "message": "ipvs: More reliable synchronization on connection close\n\nThis patch enhances the synchronization of the closing connections\nbetween the master and the backup director. It prevents the closed\nconnections to expire with the 15 min timeout of the ESTABLISHED\nstate on the backup and makes them expire as they would do on the\nmaster with much shorter timeouts.\n\nSigned-off-by: Rumen G. Bogdanovski \u003crumen@voicecho.com\u003e\nAcked-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "375c6bbabf210ded3151481ca1ac7f730903512b",
      "tree": "e5f092925e77fe7dec4b198eea6588944219c15f",
      "parents": [
        "ba6fd85021dec97d58373d9aea4bea8fc24258be"
      ],
      "author": {
        "name": "Sven Wegener",
        "email": "sven.wegener@stealer.net",
        "time": "Wed Jul 16 11:14:03 2008 +0000"
      },
      "committer": {
        "name": "Sven Wegener",
        "email": "sven.wegener@stealer.net",
        "time": "Wed Jul 16 22:33:20 2008 +0000"
      },
      "message": "ipvs: Use schedule_timeout_interruptible() instead of msleep_interruptible()\n\nSo that kthread_stop() can wake up the thread and we don\u0027t have to wait one\nsecond in the worst case for the daemon to actually stop.\n\nSigned-off-by: Sven Wegener \u003csven.wegener@stealer.net\u003e\nAcked-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "ba6fd85021dec97d58373d9aea4bea8fc24258be",
      "tree": "4c79457a5cb6dbf634de1c0d3e95f6261199c704",
      "parents": [
        "998e7a76804b7a273a0460c2cdd5a51fa9856717"
      ],
      "author": {
        "name": "Sven Wegener",
        "email": "sven.wegener@stealer.net",
        "time": "Wed Jul 16 11:13:56 2008 +0000"
      },
      "committer": {
        "name": "Sven Wegener",
        "email": "sven.wegener@stealer.net",
        "time": "Wed Jul 16 22:33:20 2008 +0000"
      },
      "message": "ipvs: Put backup thread on mcast socket wait queue\n\nInstead of doing an endless loop with sleeping for one second, we now put the\nbackup thread onto the mcast socket wait queue and it gets woken up as soon as\nwe have data to process.\n\nSigned-off-by: Sven Wegener \u003csven.wegener@stealer.net\u003e\nAcked-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "998e7a76804b7a273a0460c2cdd5a51fa9856717",
      "tree": "42c5617f9fc180457e7f6f98326edf489a671086",
      "parents": [
        "e6dd731c75cba986a485924f908e6e05b088ea9e"
      ],
      "author": {
        "name": "Sven Wegener",
        "email": "sven.wegener@stealer.net",
        "time": "Wed Jul 16 11:13:50 2008 +0000"
      },
      "committer": {
        "name": "Sven Wegener",
        "email": "sven.wegener@stealer.net",
        "time": "Wed Jul 16 22:33:20 2008 +0000"
      },
      "message": "ipvs: Use kthread_run() instead of doing a double-fork via kernel_thread()\n\nThis also moves the setup code out of the daemons, so that we\u0027re able to\nreturn proper error codes to user space. The current code will return success\nto user space when the daemon is started with an invald mcast interface. With\nthese changes we get an appropriate \"No such device\" error.\n\nWe longer need our own completion to be sure the daemons are actually running,\nbecause they no longer contain code that can fail and kthread_run() takes care\nof the rest.\n\nSigned-off-by: Sven Wegener \u003csven.wegener@stealer.net\u003e\nAcked-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "e6dd731c75cba986a485924f908e6e05b088ea9e",
      "tree": "d9d88b0ec6ded9da8a4e85d129736720ffef8567",
      "parents": [
        "d56400504a40a4aa197af629300d76544169e821"
      ],
      "author": {
        "name": "Sven Wegener",
        "email": "sven.wegener@stealer.net",
        "time": "Wed Jul 16 11:13:43 2008 +0000"
      },
      "committer": {
        "name": "Sven Wegener",
        "email": "sven.wegener@stealer.net",
        "time": "Wed Jul 16 22:33:19 2008 +0000"
      },
      "message": "ipvs: Use ERR_PTR for returning errors from make_receive_sock() and make_send_sock()\n\nThe additional information we now return to the caller is currently not used,\nbut will be used to return errors to user space.\n\nSigned-off-by: Sven Wegener \u003csven.wegener@stealer.net\u003e\nAcked-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "d56400504a40a4aa197af629300d76544169e821",
      "tree": "9fe88019e3c5610971ff17264adb956a0c3bb373",
      "parents": [
        "0b57664cf2393bc1eff594ff7e5ff26533843fe6"
      ],
      "author": {
        "name": "Sven Wegener",
        "email": "sven.wegener@stealer.net",
        "time": "Wed Jul 16 11:13:35 2008 +0000"
      },
      "committer": {
        "name": "Sven Wegener",
        "email": "sven.wegener@stealer.net",
        "time": "Wed Jul 16 22:33:19 2008 +0000"
      },
      "message": "ipvs: Initialize mcast addr at compile time\n\nThere\u0027s no need to do it at runtime, the values are constant.\n\nSigned-off-by: Sven Wegener \u003csven.wegener@stealer.net\u003e\nAcked-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "f66ac03d497c162c70cd0ccc802ce1777073cdf3",
      "tree": "9e177b888f187b995736231cc4c971566181a561",
      "parents": [
        "903fc1964e746b8d8e2971ea20c89b7aeab8bd9a"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Jul 14 23:04:00 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 23:05:31 2008 -0700"
      },
      "message": "mib: add struct net to ICMPMSGIN_INC_STATS_BH\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "903fc1964e746b8d8e2971ea20c89b7aeab8bd9a",
      "tree": "5d6d6565331d6155a587d3164e92d660f712bcd4",
      "parents": [
        "dcfc23cac103b54dbc00a6f52f47656ad5c75844"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Jul 14 23:03:35 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 23:05:30 2008 -0700"
      },
      "message": "mib: add struct net to ICMPMSGOUT_INC_STATS\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dcfc23cac103b54dbc00a6f52f47656ad5c75844",
      "tree": "f9a61572791da6c37a50a2d17b73b5f89a6b5fc4",
      "parents": [
        "75c939bb4d6da790f758a2a3dcc7432f6d8778ee"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Jul 14 23:03:00 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 23:05:29 2008 -0700"
      },
      "message": "mib: add struct net to ICMP_INC_STATS_BH\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "75c939bb4d6da790f758a2a3dcc7432f6d8778ee",
      "tree": "8b377a42bb556d36c7aaa09745221f91b5942054",
      "parents": [
        "43589aa93c9ce49f0e87a280014a4dd254b37fcf"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Jul 14 23:02:35 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 23:05:28 2008 -0700"
      },
      "message": "mib: add struct net to ICMP_INC_STATS\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fd54d716b1f6a3551ec17a4bb34027727b2db09a",
      "tree": "c8afca51e9292740d3d2261e8a3f95e65a1135ee",
      "parents": [
        "0388b0042624714e6f8db8cc7994101a0a02d392"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Jul 14 23:01:40 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 23:05:26 2008 -0700"
      },
      "message": "inet: toss struct net initialization around\n\nSome places, that deal with ICMP statistics already have where\nto get a struct net from, but use it directly, without declaring\na separate variable on the stack.\n\nSince I will need this net soon, I declare a struct net on the\nstack and use it in the existing places in a separate patch not\nto spoil the future ones.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0388b0042624714e6f8db8cc7994101a0a02d392",
      "tree": "597834169ca3cab001e2ad3094590c1c076e3736",
      "parents": [
        "61362766d769c934a9d12d5516323c544c161908"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Jul 14 23:00:43 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 23:05:13 2008 -0700"
      },
      "message": "icmp: add struct net argument to icmp_out_count\n\nThis routine deals with ICMP statistics, but doesn\u0027t have a\nstruct net at hands, so add one.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7dc00c82cbb0119cf4663f65bbaa2cc55f961db2",
      "tree": "487af895b7c9587ab454a2021e63179ae6d68d96",
      "parents": [
        "d607032db0ccd7274bee348df3214f6f52b24816"
      ],
      "author": {
        "name": "Wang Chen",
        "email": "wangchen@cn.fujitsu.com",
        "time": "Mon Jul 14 20:56:34 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 20:56:34 2008 -0700"
      },
      "message": "ipv4: Fix ipmr unregister device oops\n\nAn oops happens during device unregister.\n\nThe following oops happened when I add two tunnels, which\nuse a same device, and then delete one tunnel.\nObviously deleting tunnel \"A\" causes device unregister, which\nsend a notification, and after receiving notification, ipmr do\nunregister again for tunnel \"B\" which also use same device.\nThat is wrong.\nAfter receiving notification, ipmr only needs to decrease reference\ncount and don\u0027t do duplicated unregister.\nFortunately, IPv6 side doesn\u0027t add tunnel in ip6mr, so it\u0027s clean.\n\nThis patch fixs:\n- unregister device oops\n- using after dev_put()\n\nHere is the oops:\n\u003d\u003d\u003d\nJul 11 15:39:29 wangchen kernel: ------------[ cut here ]------------\nJul 11 15:39:29 wangchen kernel: kernel BUG at net/core/dev.c:3651!\nJul 11 15:39:29 wangchen kernel: invalid opcode: 0000 [#1] \nJul 11 15:39:29 wangchen kernel: Modules linked in: ipip tunnel4 nfsd lockd nfs_acl auth_rpcgss sunrpc exportfs ipv6 snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device af_packet binfmt_misc button battery ac loop dm_mod usbhid ff_memless pcmcia firmware_class ohci1394 8139too mii ieee1394 yenta_socket rsrc_nonstatic pcmcia_core ide_cd_mod cdrom snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm i2c_i801 snd_timer snd i2c_core soundcore snd_page_alloc rng_core shpchp ehci_hcd uhci_hcd pci_hotplug intel_agp agpgart usbcore ext3 jbd ata_piix ahci libata dock edd fan thermal processor thermal_sys piix sd_mod scsi_mod ide_disk ide_core [last unloaded: freq_table]\nJul 11 15:39:29 wangchen kernel: \nJul 11 15:39:29 wangchen kernel: Pid: 4102, comm: mroute Not tainted (2.6.26-rc9-default #69)\nJul 11 15:39:29 wangchen kernel: EIP: 0060:[\u003cc024636b\u003e] EFLAGS: 00010202 CPU: 0\nJul 11 15:39:29 wangchen kernel: EIP is at rollback_registered+0x61/0xe3\nJul 11 15:39:29 wangchen kernel: EAX: 00000001 EBX: ecba6000 ECX: 00000000 EDX: ffffffff\nJul 11 15:39:29 wangchen kernel: ESI: 00000001 EDI: ecba6000 EBP: c03de2e8 ESP: ed8e7c3c\nJul 11 15:39:29 wangchen kernel:  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068\nJul 11 15:39:29 wangchen kernel: Process mroute (pid: 4102, ti\u003ded8e6000 task\u003ded41e830 task.ti\u003ded8e6000)\nJul 11 15:39:29 wangchen kernel: Stack: ecba6000 c024641c 00000028 c0284e1a 00000001 c03de2e8 ecba6000 eecff360 \nJul 11 15:39:29 wangchen kernel:        c0284e4c c03536f4 fffffff8 00000000 c029a819 ecba6000 00000006 ecba6000 \nJul 11 15:39:29 wangchen kernel:        00000000 ecba6000 c03de2c0 c012841b ffffffff 00000000 c024639f ecba6000 \nJul 11 15:39:29 wangchen kernel: Call Trace:\nJul 11 15:39:29 wangchen kernel:  [\u003cc024641c\u003e] unregister_netdevice+0x2f/0x51\nJul 11 15:39:29 wangchen kernel:  [\u003cc0284e1a\u003e] vif_delete+0xaf/0xc3\nJul 11 15:39:29 wangchen kernel:  [\u003cc0284e4c\u003e] ipmr_device_event+0x1e/0x30\nJul 11 15:39:29 wangchen kernel:  [\u003cc029a819\u003e] notifier_call_chain+0x2a/0x47\nJul 11 15:39:29 wangchen kernel:  [\u003cc012841b\u003e] raw_notifier_call_chain+0x9/0xc\nJul 11 15:39:29 wangchen kernel:  [\u003cc024639f\u003e] rollback_registered+0x95/0xe3\nJul 11 15:39:29 wangchen kernel:  [\u003cc024641c\u003e] unregister_netdevice+0x2f/0x51\nJul 11 15:39:29 wangchen kernel:  [\u003cc0284e1a\u003e] vif_delete+0xaf/0xc3\nJul 11 15:39:29 wangchen kernel:  [\u003cc0285eee\u003e] ip_mroute_setsockopt+0x47a/0x801\nJul 11 15:39:29 wangchen kernel:  [\u003ceea5a70c\u003e] do_get_write_access+0x2df/0x313 [jbd]\nJul 11 15:39:29 wangchen kernel:  [\u003cc01727c4\u003e] __find_get_block_slow+0xda/0xe4\nJul 11 15:39:29 wangchen kernel:  [\u003cc0172a7f\u003e] __find_get_block+0xf8/0x122\nJul 11 15:39:29 wangchen kernel:  [\u003cc0172a7f\u003e] __find_get_block+0xf8/0x122\nJul 11 15:39:29 wangchen kernel:  [\u003ceea5d563\u003e] journal_cancel_revoke+0xda/0x110 [jbd]\nJul 11 15:39:29 wangchen kernel:  [\u003cc0263501\u003e] ip_setsockopt+0xa9/0x9ee\nJul 11 15:39:29 wangchen kernel:  [\u003ceea5d563\u003e] journal_cancel_revoke+0xda/0x110 [jbd]\nJul 11 15:39:29 wangchen kernel:  [\u003ceea5a70c\u003e] do_get_write_access+0x2df/0x313 [jbd]\nJul 11 15:39:29 wangchen kernel:  [\u003ceea69287\u003e] __ext3_get_inode_loc+0xcf/0x271 [ext3]\nJul 11 15:39:29 wangchen kernel:  [\u003ceea743c7\u003e] __ext3_journal_dirty_metadata+0x13/0x32 [ext3]\nJul 11 15:39:29 wangchen kernel:  [\u003cc0116434\u003e] __wake_up+0xf/0x15\nJul 11 15:39:29 wangchen kernel:  [\u003ceea5a424\u003e] journal_stop+0x1bd/0x1c6 [jbd]\nJul 11 15:39:29 wangchen kernel:  [\u003ceea703a7\u003e] __ext3_journal_stop+0x19/0x34 [ext3]\nJul 11 15:39:29 wangchen kernel:  [\u003cc014291e\u003e] get_page_from_freelist+0x94/0x369\nJul 11 15:39:29 wangchen kernel:  [\u003cc01408f2\u003e] filemap_fault+0x1ac/0x2fe\nJul 11 15:39:29 wangchen kernel:  [\u003cc01a605e\u003e] security_sk_alloc+0xd/0xf\nJul 11 15:39:29 wangchen kernel:  [\u003cc023edea\u003e] sk_prot_alloc+0x36/0x78\nJul 11 15:39:29 wangchen kernel:  [\u003cc0240037\u003e] sk_alloc+0x3a/0x40\nJul 11 15:39:29 wangchen kernel:  [\u003cc0276062\u003e] raw_hash_sk+0x46/0x4e\nJul 11 15:39:29 wangchen kernel:  [\u003cc0166aff\u003e] d_alloc+0x1b/0x157\nJul 11 15:39:29 wangchen kernel:  [\u003cc023e4d1\u003e] sock_common_setsockopt+0x12/0x16\nJul 11 15:39:29 wangchen kernel:  [\u003cc023cb1e\u003e] sys_setsockopt+0x6f/0x8e\nJul 11 15:39:29 wangchen kernel:  [\u003cc023e105\u003e] sys_socketcall+0x15c/0x19e\nJul 11 15:39:29 wangchen kernel:  [\u003cc0103611\u003e] sysenter_past_esp+0x6a/0x99\nJul 11 15:39:29 wangchen kernel:  [\u003cc0290000\u003e] unix_poll+0x69/0x78\nJul 11 15:39:29 wangchen kernel:  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nJul 11 15:39:29 wangchen kernel: Code: 83 e0 01 00 00 85 c0 75 1f 53 53 68 12 81 31 c0 e8 3c 30 ed ff ba 3f 0e 00 00 b8 b9 7f 31 c0 83 c4 0c 5b e9 f5 26 ed ff 48 74 04 \u003c0f\u003e 0b eb fe 89 d8 e8 21 ff ff ff 89 d8 e8 62 ea ff ff c7 83 e0 \nJul 11 15:39:29 wangchen kernel: EIP: [\u003cc024636b\u003e] rollback_registered+0x61/0xe3 SS:ESP 0068:ed8e7c3c\nJul 11 15:39:29 wangchen kernel: ---[ end trace c311acf85d169786 ]---\n\u003d\u003d\u003d\n\nSigned-off-by: Wang Chen \u003cwangchen@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d607032db0ccd7274bee348df3214f6f52b24816",
      "tree": "3870d689a346589604ff25e0c359debd3b0ca914",
      "parents": [
        "7af3db78a99f47b9ff40b8cb0bb08160ad6a3d6b"
      ],
      "author": {
        "name": "Wang Chen",
        "email": "wangchen@cn.fujitsu.com",
        "time": "Mon Jul 14 20:55:26 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 20:55:26 2008 -0700"
      },
      "message": "ipv4: Check return of dev_set_allmulti\n\nallmulti might overflow.\nCommit: \"netdevice: Fix promiscuity and allmulti overflow\" in net-next makes\ndev_set_promiscuity/allmulti return error number if overflow happened.\n\nHere, we check the positive increment for allmulti to get error return.\n\nPS: For unwinding tunnel creating, we let ipip-\u003eioctl() to handle it.\n\nSigned-off-by: Wang Chen \u003cwangchen@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2aec609fb45e84d65bc8eabc7b650bbecb1cc179",
      "tree": "eb3e8a79604113392d0ee74b19dbc1dfce579c11",
      "parents": [
        "4c8894980010536915c4f5513ee180e3614aeca9",
        "9076689ab07974a6f5d230fc241448f7a77e9078"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 20:23:54 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 20:23:54 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tnet/netfilter/nf_conntrack_proto_tcp.c\n"
    },
    {
      "commit": "2e655571c618434c24ac2ca989374fdd84470d6d",
      "tree": "bf339af1fa392043afa9780d8f08e25ac6358a70",
      "parents": [
        "3d8ea1fd7001f39b5cc0ad2ff51696292ea3cfbf"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Thu Jul 10 16:52:52 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 10 16:52:52 2008 -0700"
      },
      "message": "ipv4: fib_trie: Fix lookup error return\n\nIn commit a07f5f508a4d9728c8e57d7f66294bf5b254ff7f \"[IPV4] fib_trie: style\ncleanup\", the changes to check_leaf() and fn_trie_lookup() were wrong - where\nfn_trie_lookup() would previously return a negative error value from\ncheck_leaf(), it now returns 0.\n \nNow fn_trie_lookup() doesn\u0027t appear to care about plen, so we can revert\ncheck_leaf() to returning the error value.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nTested-by: William Boughton \u003cbill@boughton.de\u003e\nAcked-by: Stephen Heminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3d8ea1fd7001f39b5cc0ad2ff51696292ea3cfbf",
      "tree": "3bdbd8c55e0dd16e01ff8585aa417e10d2119f44",
      "parents": [
        "4edc2f3416438a05b83a677ae7b1a78b3ca22bb9"
      ],
      "author": {
        "name": "Milton Miller",
        "email": "miltonm@bga.com",
        "time": "Thu Jul 10 16:51:32 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 10 16:51:32 2008 -0700"
      },
      "message": "tcp: correct kcalloc usage\n\nkcalloc is supposed to be called with the count as its first argument and\nthe element size as the second.\n\nSigned-off-by: Milton Miller \u003cmiltonm@bga.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "252815b0cfe711001eff0327872209986b36d490",
      "tree": "84919cc1b91c8954c859127b8bd652400a1cc3b1",
      "parents": [
        "6b69fe0c73c0f5a8dacf8f889db3cc9adee53649"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Jul 09 15:06:45 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 09 15:06:45 2008 -0700"
      },
      "message": "netfilter: nf_nat_snmp_basic: fix a range check in NAT for SNMP\n\nFix a range check in netfilter IP NAT for SNMP to always use a big enough size\nvariable that the compiler won\u0027t moan about comparing it to ULONG_MAX/8 on a\n64-bit platform.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "81c684d12ddc05bba4953e36e9cdd5939dde344b",
      "tree": "397ffc2a3e00f07d1cdda8707cf36bf3ca43268a",
      "parents": [
        "2c693610fe923764fe41b846fb86938a2010da6e"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jul 08 03:05:28 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 03:05:28 2008 -0700"
      },
      "message": "ipv4: remove flush_mutex from ipv4_sysctl_rtcache_flush\n\nIt is possible to avoid locking at all in ipv4_sysctl_rtcache_flush by\ndefining local ctl_table on the stack.\n\nThe patch is based on the suggestion from Eric W. Biederman.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b11c16beb92112885edccc79e17d39c5d218f441",
      "tree": "fff5ff2ef32a33a71a1b68ab4a8588fc74747632",
      "parents": [
        "d2789312cc6d875462d1d248e07a8a9caf8a6ae3"
      ],
      "author": {
        "name": "Russ Dill",
        "email": "Russ.Dill@gmail.com",
        "time": "Tue Jul 08 02:35:27 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 02:35:27 2008 -0700"
      },
      "message": "netfilter: Get rid of refrences to no longer existant Fast NAT.\n\nGet rid of refrences to no longer existant Fast NAT.\n\nIP_ROUTE_NAT support was removed in August of 2004, but references to Fast\nNAT were left in a couple of config options.\n\nSigned-off-by: Russ Dill \u003cRuss.Dill@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ea2aca084ba82aaf7c148d04914ceed8758ce08a",
      "tree": "dcb3f4f849cf48deac2dd3bafd5c2cd2f0e7dc79",
      "parents": [
        "f3032be921cd126615ce3bfd7084e3d319f3f892",
        "c5a78ac00c400df29645e59938700301efb371d0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 05 23:08:07 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 05 23:08:07 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tDocumentation/feature-removal-schedule.txt\n\tdrivers/net/wan/hdlc_fr.c\n\tdrivers/net/wireless/iwlwifi/iwl-4965.c\n\tdrivers/net/wireless/iwlwifi/iwl3945-base.c\n"
    },
    {
      "commit": "0283328e2360bbf3081e97f1b720dd4c4dbae111",
      "tree": "d0734e59c0900b3389ddcf469950715e60f537b4",
      "parents": [
        "629ca23c331ec75ac87b016debbb3c4d2fe62650"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sat Jul 05 21:18:48 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 05 21:18:48 2008 -0700"
      },
      "message": "MIB: add struct net to UDP_INC_STATS_BH\n\nTwo special cases here - one is rxrpc - I put init_net there\nexplicitly, since we haven\u0027t touched this part yet. The second\nplace is in __udp4_lib_rcv - we already have a struct net there,\nbut I have to move its initialization above to make it ready\nat the \"drop\" label.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "629ca23c331ec75ac87b016debbb3c4d2fe62650",
      "tree": "491b70f7b51ac43cd706564f741366f9f05ccf13",
      "parents": [
        "4ce2417bfb3c7b1c5ed449782f4d86bafd7f1b69"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sat Jul 05 21:18:07 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 05 21:18:07 2008 -0700"
      },
      "message": "MIB: add struct net to UDP_INC_STATS_USER\n\nNothing special - all the places already have a struct sock\nat hands, so use the sock_net() net.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "32cb5b4e035e3d7b52f1e9de87920645a00e5234",
      "tree": "54c26b95e4083e9ed6bb4593a2f940829779979b",
      "parents": [
        "e84f84f276473dcc673f360e8ff3203148bdf0e2"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Sat Jul 05 19:06:12 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 05 19:06:12 2008 -0700"
      },
      "message": "netns: selective flush of rt_cache\n\ndst cache is marked as expired on the per/namespace basis by previous\npath. Right now we have to implement selective cache shrinking. This\nprocedure has been ported from older OpenVz codebase.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e84f84f276473dcc673f360e8ff3203148bdf0e2",
      "tree": "c7ea9b10807acef5fb9c636d2b8b74204d32a37e",
      "parents": [
        "b00180defdeeac8e07e3dc02e53e7395d42bbd19"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Sat Jul 05 19:04:32 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 05 19:04:32 2008 -0700"
      },
      "message": "netns: place rt_genid into struct net\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "b00180defdeeac8e07e3dc02e53e7395d42bbd19"
}
