)]}'
{
  "log": [
    {
      "commit": "e87cc4728f0e2fb663e592a1141742b1d6c63256",
      "tree": "b8219696d37f0c8d0521d5853560b97fc96dc667",
      "parents": [
        "3a3bfb61e64476ff1e4ac3122cb6dec9c79b795c"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun May 13 21:56:26 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 15 13:45:03 2012 -0400"
      },
      "message": "net: Convert net_ratelimit uses to net_\u003clevel\u003e_ratelimited\n\nStandardize the net core ratelimited logging functions.\n\nCoalesce formats, align arguments.\nChange a printk then vprintk sequence to use printf extension %pV.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "06eb4eafbdc0796d741d139a44f1253278da8611",
      "tree": "fbdb44317130c371928154c9e6903e699fe2b995",
      "parents": [
        "32ed53b83ea5ec26a4dba90e18f5e0ff6c71eb48",
        "f68e556e23d1a4176b563bcb25d8baf2c5313f91"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 10 14:30:45 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 10 14:30:45 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "f3756b79e8f76cb92830383c215deba146fe0a26",
      "tree": "107c0e99681a0b26b2e750b3fc7a0b01ba1404aa",
      "parents": [
        "e549a6b3a5acff66f0427091e44f814943a26a86"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 01 20:39:02 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 02 04:33:43 2012 -0400"
      },
      "message": "ipv4: Stop using NLA_PUT*().\n\nThese macros contain a hidden goto, and are thus extremely error\nprone and make code hard to audit.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "058bd4d2a4ff0aaa4a5381c67e776729d840c785",
      "tree": "4d1ea864a8740676c7e7c5a03cdaa67fc5f29418",
      "parents": [
        "43db362d3adda9e0a915ddb9a8d1a41186e19179"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Mar 11 18:36:11 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 11 23:42:51 2012 -0700"
      },
      "message": "net: Convert printks to pr_\u003clevel\u003e\n\nUse a more current kernel messaging style.\n\nConvert a printk block to print_hex_dump.\nCoalesce formats, align arguments.\nUse %s, __func__ instead of embedding function names.\n\nSome messages that were prefixed with \u003cfoo\u003e_close are\nnow prefixed with \u003cfoo\u003e_fini.  Some ah4 and esp messages\nare now not prefixed with \"ip \".\n\nThe intent of this patch is to later add something like\n  #define pr_fmt(fmt) \"IPv4: \" fmt.\nto standardize the output messages.\n\nText size is trivially reduced. (x86-32 allyesconfig)\n\n$ size net/ipv4/built-in.o*\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n 887888\t  31558\t 249696\t1169142\t 11d6f6\tnet/ipv4/built-in.o.new\n 887934\t  31558\t 249800\t1169292\t 11d78c\tnet/ipv4/built-in.o.old\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf778b00e96df6d64f8e21b8395d1f8a859ecdc7",
      "tree": "4cc157d564bd65d687bdf722af3202e9e277ea98",
      "parents": [
        "9ee6045f09a7875ebe55b9942b232a19076b157b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jan 12 04:41:32 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 12 12:26:56 2012 -0800"
      },
      "message": "net: reintroduce missing rcu_assign_pointer() calls\n\ncommit a9b3cd7f32 (rcu: convert uses of rcu_assign_pointer(x, NULL) to\nRCU_INIT_POINTER) did a lot of incorrect changes, since it did a\ncomplete conversion of rcu_assign_pointer(x, y) to RCU_INIT_POINTER(x,\ny).\n\nWe miss needed barriers, even on x86, when y is not NULL.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCC: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e92036a6516d07f61d4c214970a35ff05b919c25",
      "tree": "661be2f3cd9d894019c4607f7c46be77fbc9c847",
      "parents": [
        "115d2a3de2fd7d501369b0091c5c485a72ed90ed"
      ],
      "author": {
        "name": "RongQing.Li",
        "email": "roy.qing.li@gmail.com",
        "time": "Wed Nov 23 23:10:52 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 29 18:32:33 2011 -0500"
      },
      "message": "ipv4: remove useless codes in ipmr_device_event()\n\nCommit 7dc00c82 added a \u0027notify\u0027 parameter for vif_delete() to\ndistinguish whether to unregister the device.\n\nWhen notify\u003d1 means we does not need to unregister the device,\nso calling unregister_netdevice_many is useless.\n\nSigned-off-by: RongQing.Li \u003croy.qing.li@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bc3b2d7fb9b014d75ebb79ba371a763dbab5e8cf",
      "tree": "b0fd4e724bdb1c0a1783616614ae5a9dec1cfa5c",
      "parents": [
        "d9b9384215e17c68d7b6bd05d6fa409e5d4140d7"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri Jul 15 11:47:34 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:30:30 2011 -0400"
      },
      "message": "net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules\n\nThese files are non modular, but need to export symbols using\nthe macros now living in export.h -- call out the include so\nthat things won\u0027t break when we remove the implicit presence\nof module.h from everywhere.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "33d480ce6d43326e2541fd79b3548858a174ec3c",
      "tree": "c938ee8c07a2e0f33178069b55439a54188f38fa",
      "parents": [
        "cd28ca0a3dd17c68d24b839602a0e6268ad28b5d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Aug 11 19:30:52 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 12 02:55:28 2011 -0700"
      },
      "message": "net: cleanup some rcu_dereference_raw\n\nRCU api had been completed and rcu_access_pointer() or\nrcu_dereference_protected() are better than generic\nrcu_dereference_raw()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a9b3cd7f323b2e57593e7215362a7b02fc933e3a",
      "tree": "eba1741956aef3015d5b1a07253bf93c4c1bc7df",
      "parents": [
        "76f793e3a47139d340185cbc1a314740c09b13d3"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Aug 01 16:19:00 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 02 04:29:23 2011 -0700"
      },
      "message": "rcu: convert uses of rcu_assign_pointer(x, NULL) to RCU_INIT_POINTER\n\nWhen assigning a NULL value to an RCU protected pointer, no barrier\nis needed. The rcu_assign_pointer, used to handle that but will soon\nchange to not handle the special case.\n\nConvert all rcu_assign_pointer of NULL value.\n\n//smpl\n@@ expression P; @@\n\n- rcu_assign_pointer(P, NULL)\n+ RCU_INIT_POINTER(P, NULL)\n\n// \u003c/smpl\u003e\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b0fe4a31849063fcac0bdc93716ca92615e93f57",
      "tree": "440cba41924eb7f32a3f1506715c6fc50663d98a",
      "parents": [
        "f6226dec5081f55bf7820b74a9acb7b20a8930a5"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Sat Jul 23 02:00:41 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 23 20:05:31 2011 -0700"
      },
      "message": "ipv4: use RT_TOS after some rt_tos conversions\n\nrt_tos was changed to iph-\u003etos but it must be filtered by RT_TOS\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c7ac8679bec9397afe8918f788cbcef88c38da54",
      "tree": "c152712de4c997ea79252ef9ac72aaedb8f88c18",
      "parents": [
        "929dd047720785f099e12113780b3d7914ce6d9f"
      ],
      "author": {
        "name": "Greg Rose",
        "email": "gregory.v.rose@intel.com",
        "time": "Fri Jun 10 01:27:09 2011 +0000"
      },
      "committer": {
        "name": "Jeff Kirsher",
        "email": "jeffrey.t.kirsher@intel.com",
        "time": "Thu Jun 09 20:38:07 2011 -0700"
      },
      "message": "rtnetlink: Compute and store minimum ifinfo dump size\n\nThe message size allocated for rtnl ifinfo dumps was limited to\na single page.  This is not enough for additional interface info\navailable with devices that support SR-IOV and caused a bug in\nwhich VF info would not be displayed if more than approximately\n40 VFs were created per interface.\n\nImplement a new function pointer for the rtnl_register service that will\ncalculate the amount of data required for the ifinfo dump and allocate\nenough data to satisfy the request.\n\nSigned-off-by: Greg Rose \u003cgregory.v.rose@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\n"
    },
    {
      "commit": "9a1b9496cd2b013f74885218947fa7120d53e74c",
      "tree": "a48d2fdf14a7445a15a7553ef8b7a8732b5bcac1",
      "parents": [
        "dd927a2694ee412b440284dd72dd8e32caada3fc"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 04 12:18:54 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 04 12:18:54 2011 -0700"
      },
      "message": "ipv4: Pass explicit saddr/daddr args to ipmr_get_route().\n\nThis eliminates the need to use rt-\u003ert_{src,dst}.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "31e4543db29fb85496a122b965d6482c8d1a2bfe",
      "tree": "3e49d61a1202e1b3c8c71e422f3fd8e4f2616d01",
      "parents": [
        "f1390160ddcd64a3cfd48b3280d0a616a31b9520"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 03 20:25:42 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 03 20:25:42 2011 -0700"
      },
      "message": "ipv4: Make caller provide on-stack flow key to ip_route_output_ports().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "417da66fa9d2f14b1a90b04095413b87907d8183",
      "tree": "a116f41ccc3d0d0341efdfc8c0c35eac7cddcf27",
      "parents": [
        "57a503c61db077b923e23f36050c02166a4a1db2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 03 19:42:43 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 03 19:42:43 2011 -0700"
      },
      "message": "ipv4: Rework ipmr_rt_fib_lookup() flow key initialization.\n\nUse information from the skb as much as possible, currently\nthis means daddr, saddr, and TOS.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b71d1d426d263b0b6cb5760322efebbfc89d4463",
      "tree": "226ca7390bd6187ec9139d2ccedd26fd94d8e57a",
      "parents": [
        "5f8629c526b4f7e529a6d27bbd802c0dc7fcc357"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Apr 22 04:53:02 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 22 11:04:14 2011 -0700"
      },
      "message": "inet: constify ip headers and in6_addr\n\nAdd const qualifiers to structs iphdr, ipv6hdr and in6_addr pointers\nwhere possible, to make code intention more obvious.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "da91981bee8de20bcd06ee0dbddd53d62d23b1bd",
      "tree": "4c99ba1fa3a44614b434626b7ebfe1f4ce677e93",
      "parents": [
        "9ade22861f922344788321e374c542c92bc049b6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 02:04:50 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:49 2011 -0800"
      },
      "message": "ipv4: Use flowi4 in ipmr code.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1d28f42c1bd4bb2363d88df74d0128b4da135b4a",
      "tree": "cb2e652fe79a2bc307e871bc2d3fa51cc8051e45",
      "parents": [
        "ca116922afa8cc5ad46b00c0a637b1cde5ca478a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 00:29:39 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:44 2011 -0800"
      },
      "message": "net: Put flowi_* prefix on AF independent members of struct flowi\n\nI intend to turn struct flowi into a union of AF specific flowi\nstructs.  There will be a common structure that each variant includes\nfirst, much like struct sock_common.\n\nThis is the first step to move in that direction.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "78fbfd8a653ca972afe479517a40661bfff6d8c3",
      "tree": "9dccc5c16bf269d53d8499064ec95a998e84c646",
      "parents": [
        "1561747ddf9d28185548687b11aae7074d6129c4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 00:00:52 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:42 2011 -0800"
      },
      "message": "ipv4: Create and use route lookup helpers.\n\nThe idea here is this minimizes the number of places one has to edit\nin order to make changes to how flows are defined and used.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee3f1aaf930b7cfbf3d34eff1e5e076393227e90",
      "tree": "814621b53a1a26f00acd05e83f4b7be297abd607",
      "parents": [
        "bd33acc3cc525972ac779067e98efb26516c5b94"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 14:06:20 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 14:06:20 2011 -0800"
      },
      "message": "ipv4: Lookup multicast routes by rtable using helper.\n\nCreate a common helper for this operation, since we do\nit identically in three spots.\n\nSuggested by Eric Dumazet.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5e2b61f78411be25f0b84f97d5b5d312f184dfd1",
      "tree": "6a5faa5fb7a2242bebacba4cdb5722b988d3e909",
      "parents": [
        "1018b5c01636c7c6bda31a719bda34fc631db29a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:47:09 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:55:31 2011 -0800"
      },
      "message": "ipv4: Remove flowi from struct rtable.\n\nThe only necessary parts are the src/dst addresses, the\ninterface indexes, the TOS, and the mark.\n\nThe rest is unnecessary bloat, which amounts to nearly\n50 bytes on 64-bit.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b23dd4fe42b455af5c6e20966b7d6959fa8352ea",
      "tree": "bf97323eae9a8d084170e573ff2c0c40bc72c3cd",
      "parents": [
        "452edd598f60522c11f7f88fdbab27eb36509d1a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:31:35 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:31:35 2011 -0800"
      },
      "message": "ipv4: Make output route lookup return rtable directly.\n\nInstead of on the stack.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ca6b8bb097c8e0ab6bce4fa04584074dee17c0d9",
      "tree": "4d4892f421fbe0edfb03fab640521d01c8540c52",
      "parents": [
        "0033d5ad27a6db33a55ff39951d3ec61a8c13b89"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 03 17:24:28 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 03 17:24:28 2011 -0800"
      },
      "message": "net: Support compat SIOCGETVIFCNT ioctl in ipv4.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0033d5ad27a6db33a55ff39951d3ec61a8c13b89",
      "tree": "4312ad7fb4821ccd38a4a0aba64b6bb560d53733",
      "parents": [
        "9690c636ac118b6662f28308bee817343d9932d8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 03 17:21:31 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 03 17:21:31 2011 -0800"
      },
      "message": "net: Fix bug in compat SIOCGETSGCNT handling.\n\nCommit 709b46e8d90badda1898caea50483c12af178e96 (\"net: Add compat\nioctl support for the ipv4 multicast ioctl SIOCGETSGCNT\") added the\ncorrect plumbing to handle SIOCGETSGCNT properly.\n\nHowever, whilst definiting a proper \"struct compat_sioc_sg_req\" it\nisn\u0027t actually used in ipmr_compat_ioctl().\n\nCorrect this oversight.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "709b46e8d90badda1898caea50483c12af178e96",
      "tree": "799b57704dda3684777fb57a6e413dabac78858c",
      "parents": [
        "13ad17745c2cbd437d9e24b2d97393e0be11c439"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sat Jan 29 16:15:56 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 30 01:14:38 2011 -0800"
      },
      "message": "net: Add compat ioctl support for the ipv4 multicast ioctl SIOCGETSGCNT\n\nSIOCGETSGCNT is not a unique ioctl value as it it maps tio SIOCPROTOPRIVATE +1,\nwhich unfortunately means the existing infrastructure for compat networking\nioctls is insufficient.  A trivial compact ioctl implementation would conflict\nwith:\n\nSIOCAX25ADDUID\nSIOCAIPXPRISLT\nSIOCGETSGCNT_IN6\nSIOCGETSGCNT\nSIOCRSSCAUSE\nSIOCX25SSUBSCRIP\nSIOCX25SDTEFACILITIES\n\nTo make this work I have updated the compat_ioctl decode path to mirror the\nthe normal ioctl decode path.  I have added an ipv4 inet_compat_ioctl function\nso that I can have ipv4 specific compat ioctls.   I have added a compat_ioctl\nfunction into struct proto so I can break out ioctls by which kind of ip socket\nI am using.  I have added a compat_raw_ioctl function because SIOCGETSGCNT only\nworks on raw sockets.  I have added a ipmr_compat_ioctl that mirrors the normal\nipmr_ioctl.\n\nThis was necessary because unfortunately the struct layout for the SIOCGETSGCNT\nhas unsigned longs in it so changes between 32bit and 64bit kernels.\n\nThis change was sufficient to run a 32bit ip multicast routing daemon on a\n64bit kernel.\n\nReported-by: Bill Fenner \u003cfenner@aristanetworks.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5811662b15db018c740c57d037523683fd3e6123",
      "tree": "f820610a6024799a26699f22dc9a4ef5dee07978",
      "parents": [
        "dd68ad2235b4625e0dc928b2b4c614d265f976d3"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Fri Nov 12 18:43:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 17 12:27:45 2010 -0800"
      },
      "message": "net: use the macros defined for the members of flowi\n\nUse the macros defined for the members of flowi to clean the code up.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c753796769e4fb0cd813b6e5801b3c01f4681d4f",
      "tree": "f137ec0b76593a2aa1a6a263bcc1e4cf82bdf7b5",
      "parents": [
        "ed1deb7021b4dfee1d544b91edff4ef92f5c3b54"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 11 17:07:48 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 11 17:07:48 2010 -0800"
      },
      "message": "ipv4: Make rt-\u003efl.iif tests lest obscure.\n\nWhen we test rt-\u003efl.iif against zero, we\u0027re seeing if it\u0027s\nan output or an input route.\n\nMake that explicit with some helper functions.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a8cb16dd9cb571c45bb479a1e4721ce11220a216",
      "tree": "103313a0d315877c734834140652f6bdb5a2602e",
      "parents": [
        "a8c9486b816f74d4645144db9e8fa2f711c1fc4b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 01 16:15:29 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 03 21:50:53 2010 -0700"
      },
      "message": "ipmr: cleanups\n\nVarious code style cleanups\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a8c9486b816f74d4645144db9e8fa2f711c1fc4b",
      "tree": "950214451e4bb2172cd9beb8f27a415664f77909",
      "parents": [
        "4c9687098f245601e9d94178715ee03afbcc6f80"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 01 16:15:08 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 03 21:50:53 2010 -0700"
      },
      "message": "ipmr: RCU protection for mfc_cache_array\n\nUse RCU \u0026 RTNL protection for mfc_cache_array[]\n\nipmr_cache_find() is called under rcu_read_lock();\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4c9687098f245601e9d94178715ee03afbcc6f80",
      "tree": "00e08d50538ffbf8a85a481cef351034c5a2174a",
      "parents": [
        "55747a0a73ea74a25fcebb0731e8d3f13fe8c09d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 01 16:15:01 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 03 21:50:52 2010 -0700"
      },
      "message": "ipmr: RCU conversion of mroute_sk\n\nUse RCU and RTNL to protect (struct mr_table)-\u003emroute_sk\n\nReaders use RCU, writers use RTNL.\n\nip_ra_control() already use an RCU grace period before\nip_ra_destroy_rcu(), so we dont need synchronize_rcu() in\nmrtsock_destruct()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "55747a0a73ea74a25fcebb0731e8d3f13fe8c09d",
      "tree": "ad041d4c50fab573499e49b48f73e9a198bd7164",
      "parents": [
        "ddcb4541e917780ef7ccc68dd8df18ca0bc055d0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 01 16:14:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 03 21:50:52 2010 -0700"
      },
      "message": "ipmr: __pim_rcv() is called under rcu_read_lock\n\nNo need to get a reference on reg_dev and release it, we are in a\nrcu_read_lock() protected section.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "95ae6b228f814fc0528d0506ee9f18ac333d6851",
      "tree": "d5287f3dee478e1bd5fa79e63192447c5bc91e92",
      "parents": [
        "9e0064a5456fd75fd7c70f6f3692c7f732f91a65"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 15 04:04:31 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 15 22:06:05 2010 -0700"
      },
      "message": "ipv4: ip_ptr cleanups\n\ndev-\u003eip_ptr is protected by rtnl and rcu.\n\nYet some places dont use appropriate primitives and/or locking rules.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "11fe883936980fe242869d671092a466cf1db3e3",
      "tree": "14ff24e81eb4326e94eb5aa6432a1dd55cef5ece",
      "parents": [
        "70d4bf6d467a330ccc947df9b2608e329d9e7708",
        "573201f36fd9c7c6d5218cdcd9948cee700b277d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 20 18:25:24 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 20 18:25:24 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/vhost/net.c\n\tnet/bridge/br_device.c\n\nFix merge conflict in drivers/vhost/net.c with guidance from\nStephen Rothwell.\n\nRevert the effects of net-2.6 commit 573201f36fd9c7c6d5218cdcd9948cee700b277d\nsince net-next-2.6 has fixes that make bridge netpoll work properly thus\nwe don\u0027t need it disabled.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e40dbc51fbcc3281bb52ecf0f5bec693d36e2aea",
      "tree": "7950aa0bb0e2a338eed7d948c77cd62ec96bf0d8",
      "parents": [
        "b0f77d0eae0c58a5a9691a067ada112ceeae2d00"
      ],
      "author": {
        "name": "Ben Greear",
        "email": "greearb@candelatech.com",
        "time": "Thu Jul 15 13:22:33 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 15 22:38:43 2010 -0700"
      },
      "message": "ipmr: Don\u0027t leak memory if fib lookup fails.\n\nThis was detected using two mcast router tables.  The\npimreg for the second interface did not have a specific\nmrule, so packets received by it were handled by the\ndefault table, which had nothing configured.\n\nThis caused the ipmr_fib_lookup to fail, causing\nthe memory leak.\n\nSigned-off-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62522d36d74a843e78d17f2dffc90468c6762803",
      "tree": "d9d21de6724425c1b0ba12991e0865556aeda6b4",
      "parents": [
        "a71fba97295db924c0b90266e9833e5059fead24",
        "e79aa8671033535c2e9ffc0a68010ae49ed5734c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 11 13:32:31 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 11 13:32:31 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "d8d1f30b95a635dbd610dcc5eb641aca8f4768cf",
      "tree": "71424d82a96facd5fcf05cc769ef2ba52b584aeb",
      "parents": [
        "592fcb9dfafaa02dd0edc207bf5d3a0ee7a1f8df"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Thu Jun 10 23:31:35 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 10 23:31:35 2010 -0700"
      },
      "message": "net-next: remove useless union keyword\n\nremove useless union keyword in rtable, rt6_info and dn_route.\n\nSince there is only one member in a union, the union keyword isn\u0027t useful.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "035320d54758e21227987e3aae0d46e7a04f4ddc",
      "tree": "9ad66a45ab0b0d903ebcbe435894d1fb9d5d78f5",
      "parents": [
        "3fd7fa4a89f0b85b9b33e922f15a2289c0fb8499"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Jun 06 23:48:40 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 07 02:57:14 2010 -0700"
      },
      "message": "ipmr: dont corrupt lists\n\nipmr_rules_exit() and ip6mr_rules_exit() free a list of items, but\nforget to properly remove these items from list. List head is not\nchanged and still points to freed memory.\n\nThis can trigger a fault later when icmpv6_sk_exit() is called.\n\nFix is to either reinit list, or use list_del() to properly remove items\nfrom list before freeing them.\n\nbugzilla report : https://bugzilla.kernel.org/show_bug.cgi?id\u003d16120\n\nIntroduced by commit d1db275dd3f6e4 (ipv6: ip6mr: support multiple\ntables) and commit f0ad0860d01e (ipv4: ipmr: support multiple tables)\n\nReported-by: Alex Zhavnerchik \u003calex.vizor@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed0f160ad674407adb3aba499444f71c83289c63",
      "tree": "39cff780164f55d6cda23018431ab553c4477f9e",
      "parents": [
        "d938a702e5ce8909ea68be97566150507bfea4df"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed May 26 00:38:56 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 26 00:38:56 2010 -0700"
      },
      "message": "ipmr: off by one in __ipmr_fill_mroute()\n\nThis fixes a smatch warning:\n\tnet/ipv4/ipmr.c +1917 __ipmr_fill_mroute(12) error: buffer overflow\n\t\u0027(mrt)-\u003evif_table\u0027 32 \u003c\u003d 32\n\nThe ipv6 version had the same issue.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f8965467f366fd18f01feafb5db10512d7b4422c",
      "tree": "3706a9cd779859271ca61b85c63a1bc3f82d626e",
      "parents": [
        "a26272e5200765691e67d6780e52b32498fdb659",
        "2ec8c6bb5d8f3a62a79f463525054bae1e3d4487"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:04:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:04:44 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1674 commits)\n  qlcnic: adding co maintainer\n  ixgbe: add support for active DA cables\n  ixgbe: dcb, do not tag tc_prio_control frames\n  ixgbe: fix ixgbe_tx_is_paused logic\n  ixgbe: always enable vlan strip/insert when DCB is enabled\n  ixgbe: remove some redundant code in setting FCoE FIP filter\n  ixgbe: fix wrong offset to fc_frame_header in ixgbe_fcoe_ddp\n  ixgbe: fix header len when unsplit packet overflows to data buffer\n  ipv6: Never schedule DAD timer on dead address\n  ipv6: Use POSTDAD state\n  ipv6: Use state_lock to protect ifa state\n  ipv6: Replace inet6_ifaddr-\u003edead with state\n  cxgb4: notify upper drivers if the device is already up when they load\n  cxgb4: keep interrupts available when the ports are brought down\n  cxgb4: fix initial addition of MAC address\n  cnic: Return SPQ credit to bnx2x after ring setup and shutdown.\n  cnic: Convert cnic_local_flags to atomic ops.\n  can: Fix SJA1000 command register writes on SMP systems\n  bridge: fix build for CONFIG_SYSFS disabled\n  ARCNET: Limit com20020 PCI ID matches for SOHARD cards\n  ...\n\nFix up various conflicts with pcmcia tree drivers/net/\n{pcmcia/3c589_cs.c, wireless/orinoco/orinoco_cs.c and\nwireless/orinoco/spectrum_cs.c} and feature removal\n(Documentation/feature-removal-schedule.txt).\n\nAlso fix a non-content conflict due to pm_qos_requirement getting\nrenamed in the PM tree (now pm_qos_request) in net/mac80211/scan.c\n"
    },
    {
      "commit": "f39d01be4c59a61a08d0cb53f615e7016b85d339",
      "tree": "6777590e3ff2ddf4df1d38444ba7d692cd463b7b",
      "parents": [
        "54291263519ac2c9bdda68b23b02fef3808deed4",
        "7db82437cfcac4bdfe79a6323eb554fdfa271623"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (44 commits)\n  vlynq: make whole Kconfig-menu dependant on architecture\n  add descriptive comment for TIF_MEMDIE task flag declaration.\n  EEPROM: max6875: Header file cleanup\n  EEPROM: 93cx6: Header file cleanup\n  EEPROM: Header file cleanup\n  agp: use NULL instead of 0 when pointer is needed\n  rtc-v3020: make bitfield unsigned\n  PCI: make bitfield unsigned\n  jbd2: use NULL instead of 0 when pointer is needed\n  cciss: fix shadows sparse warning\n  doc: inode uses a mutex instead of a semaphore.\n  uml: i386: Avoid redefinition of NR_syscalls\n  fix \"seperate\" typos in comments\n  cocbalt_lcdfb: correct sections\n  doc: Change urls for sparse\n  Powerpc: wii: Fix typo in comment\n  i2o: cleanup some exit paths\n  Documentation/: it\u0027s -\u003e its where appropriate\n  UML: Fix compiler warning due to missing task_struct declaration\n  UML: add kernel.h include to signal.c\n  ...\n"
    },
    {
      "commit": "3fa21e07e6acefa31f974d57fba2b6920a7ebd1a",
      "tree": "4254644ef2579e9ac96db6ec0535b5e4231fd18e",
      "parents": [
        "b60b6592baa69c43a5a0f55d6300a7feaab15338"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon May 17 23:08:21 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 17 23:23:14 2010 -0700"
      },
      "message": "net: Remove unnecessary returns from void function()s\n\nThis patch removes from net/ (but not any netfilter files)\nall the unnecessary return; statements that precede the\nlast closing brace of void functions.\n\nIt does not remove the returns that are immediately\npreceded by a label as gcc doesn\u0027t like that.\n\nDone via:\n$ grep -rP --include\u003d*.[ch] -l \"return;\\n}\" net/ | \\\n  xargs perl -i -e \u0027local $/ ; while (\u003c\u003e) { s/\\n[ \\t\\n]+return;\\n}/\\n}/g; print; }\u0027\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d19d56ddc88e7895429ef118db9c83c7bbe3ce6a",
      "tree": "c0db76f3527c88c95a8793c871f62d628fb3fd1d",
      "parents": [
        "de213e5eedecdfb1b1eea7e6be28bc64cac5c078"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon May 17 22:36:55 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 17 22:36:55 2010 -0700"
      },
      "message": "net: Introduce skb_tunnel_rx() helper\n\nskb rxhash should be cleared when a skb is handled by a tunnel before\nbeing delivered again, so that correct packet steering can take place.\n\nThere are other cleanups and accounting that we can factorize in a new\nhelper, skb_tunnel_rx()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "278554bd6579206921f5d8a523649a7a57f8850d",
      "tree": "4e6c527daf0910e455b3aa72e2c96b0479e430be",
      "parents": [
        "5a147e8bf982f9dd414c1dd751fe02c1942506b2",
        "cea0d767c29669bf89f86e4aee46ef462d2ebae8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 12 00:05:35 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 12 00:05:35 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tDocumentation/feature-removal-schedule.txt\n\tdrivers/net/wireless/ath/ar9170/usb.c\n\tdrivers/scsi/iscsi_tcp.c\n\tnet/ipv4/ipmr.c\n"
    },
    {
      "commit": "1e4b1057121bc756b91758a434b504d2010f6088",
      "tree": "b016cf2c728289c7e36d9e4e488f30ab0bd0ae6e",
      "parents": [
        "3b254c54ec46eb022cb26ee6ab37fae23f5f7d6a",
        "3ee943728fff536edaf8f59faa58aaa1aa7366e3"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon May 10 18:39:28 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon May 10 18:39:28 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 of /repos/git/net-next-2.6\n\nConflicts:\n\tnet/bridge/br_device.c\n\tnet/bridge/br_forward.c\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "bbd725435ddb1cac732f7a8c23c21ff67f24c60f",
      "tree": "fcce588f4d79a384aa961e6c1f354d4eab8231a1",
      "parents": [
        "ccc2d97cb7c798e785c9f198de243e2b59f7073b"
      ],
      "author": {
        "name": "Andreas Meissner",
        "email": "andreas.meissner@sphairon.com",
        "time": "Mon May 10 04:47:49 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 10 04:47:49 2010 -0700"
      },
      "message": "IPv4: unresolved multicast route cleanup\n\nFixes the expiration timer for unresolved multicast route entries.\nIn case new multicast routing requests come in faster than the \nexpiration timeout occurs (e.g. zap through multicast TV streams), the \ntimer is prevented from being called at time for already existing entries.\n\nAs the single timer is resetted to default whenever a new entry is made, \nthe timeout for existing unresolved entires are missed and/or not \nupdated. As a consequence new requests are denied when the limit of \nunresolved entries has been reached because old entries live longer than \nthey are supposed to.\n\nThe solution is to reset the timer only for the first unresolved entry \nin the multicast routing cache. All other timers are already set and \nupdated correctly within the timer function itself by now.\n\nSigned-off by: Andreas Meissner \u003candreas.meissner@sphairon.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cb6a4e461fb427689920472bd7335f926d521747",
      "tree": "2c3fb3312590aabcc8cfd5f7ded10c197bf83661",
      "parents": [
        "25239cee7e8732dbdc9f5d324f1c22a3bdec1d1f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Apr 26 16:02:08 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Apr 26 16:22:50 2010 +0200"
      },
      "message": "net: ipmr: add support for dumping routing tables over netlink\n\nThe ipmr /proc interface (ip_mr_cache) can\u0027t be extended to dump routes\nfrom any tables but the main table in a backwards compatible fashion since\nthe output format ends in a variable amount of output interfaces.\n\nIntroduce a new netlink interface to dump multicast routes from all tables,\nsimilar to the netlink interface for regular routes.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "25239cee7e8732dbdc9f5d324f1c22a3bdec1d1f",
      "tree": "c3f36730571a7eb185abcd973b2f4c9616bd8096",
      "parents": [
        "3d0c9c4eb2dbdcc461be4084abd87a9a9e70f713"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Apr 26 16:02:05 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Apr 26 16:13:54 2010 +0200"
      },
      "message": "net: rtnetlink: decouple rtnetlink address families from real address families\n\nDecouple rtnetlink address families from real address families in socket.h to\nbe able to add rtnetlink interfaces to code that is not a real address family\nwithout increasing AF_MAX/NPROTO.\n\nThis will be used to add support for multicast route dumping from all tables\nas the proc interface can\u0027t be extended to support anything but the main table\nwithout breaking compatibility.\n\nThis partialy undoes the patch to introduce independant families for routing\nrules and converts ipmr routing rules to a new rtnetlink family. Similar to\nthat patch, values up to 127 are reserved for real address families, values\nabove that may be used arbitrarily.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "3d0c9c4eb2dbdcc461be4084abd87a9a9e70f713",
      "tree": "3a71a67a1f40afd7afbe0389259eb27d23fbfa36",
      "parents": [
        "8c52d509e84bbf26cffb8b6e75b399689af67885"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Apr 26 16:02:04 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Apr 26 16:02:04 2010 +0200"
      },
      "message": "net: fib_rules: mark arguments to fib_rules_register const and __net_initdata\n\nfib_rules_register() duplicates the template passed to it without modification,\nmark the argument as const. Additionally the templates are only needed when\ninstantiating a new namespace, so mark them as __net_initdata, which means\nthey can be discarded when CONFIG_NET_NS\u003dn.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "6c9468e9eb1252eaefd94ce7f06e1be9b0b641b1",
      "tree": "797676a336b050bfa1ef879377c07e541b9075d6",
      "parents": [
        "4cb3ca7cd7e2cae8d1daf5345ec99a1e8502cf3f",
        "c81eddb0e3728661d1585fbc564449c94165cc36"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "0eae88f31ca2b88911ce843452054139e028771f",
      "tree": "90f50197d8e1e50e3621e9c525bd4ca2634fe368",
      "parents": [
        "cb903bf4ee2d6e53210e2174d363e10698112042"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Apr 20 19:06:52 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 19:06:52 2010 -0700"
      },
      "message": "net: Fix various endianness glitches\n\nSparse can help us find endianness bugs, but we need to make some\ncleanups to be able to more easily spot real bugs.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62910554656cdcd6b6f84a5154c4155aae4ca231",
      "tree": "dcf14004f6fd2ef7154362ff948bfeba0f3ea92d",
      "parents": [
        "22265a5c3c103cf8c50be62e6c90d045eb649e6d",
        "ab9304717f7624c41927f442e6b6d418b2d8b3e4"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Apr 20 16:02:01 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Apr 20 16:02:01 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 of /repos/git/net-next-2.6\n\nConflicts:\n\tDocumentation/feature-removal-schedule.txt\n\tnet/ipv6/netfilter/ip6t_REJECT.c\n\tnet/netfilter/xt_limit.c\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "8de53dfbf9a0a0f7538c005137059c5c021476e1",
      "tree": "51fbba0b36a24feac02fa76d4deaecfcdece7c7f",
      "parents": [
        "b0ebb739a8f68039f03e80b3476b204fe5adf0d7"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Apr 15 13:29:28 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Apr 15 13:31:29 2010 +0200"
      },
      "message": "ipv4: ipmr: fix NULL pointer deref during unres queue destruction\n\nFix an oversight in ipmr_destroy_unres() - the net pointer is\nunconditionally initialized to NULL, resulting in a NULL pointer\ndereference later on.\n\nFix by adding a net pointer to struct mr_table and using it in\nipmr_destroy_unres().\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "b0ebb739a8f68039f03e80b3476b204fe5adf0d7",
      "tree": "45921e2969657f6a35fbac751218ea78e1f3be9b",
      "parents": [
        "66496d4973dcb848d163805fa6b485850b7555e3"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Apr 15 13:29:28 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Apr 15 13:31:29 2010 +0200"
      },
      "message": "ipv4: ipmr: fix invalid cache resolving when adding a non-matching entry\n\nThe patch to convert struct mfc_cache to list_heads (ipv4: ipmr: convert\nstruct mfc_cache to struct list_head) introduced a bug when adding new\ncache entries that don\u0027t match any unresolved entries.\n\nThe unres queue is searched for a matching entry, which is then resolved.\nWhen no matching entry is present, the iterator points to the head of the\nlist, but is treated as a matching entry. Use a seperate variable to\nindicate that a matching entry was found.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "f0ad0860d01e47a3ffd220564c5c653b3afbe962",
      "tree": "91b69423f472b934daa2c18ae3b7ba065b7c7898",
      "parents": [
        "0c12295a741d3186987f96f518cfbdaf01abb087"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Apr 13 05:03:23 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 13 14:49:34 2010 -0700"
      },
      "message": "ipv4: ipmr: support multiple tables\n\nThis patch adds support for multiple independant multicast routing instances,\nnamed \"tables\".\n\nUserspace multicast routing daemons can bind to a specific table instance by\nissuing a setsockopt call using a new option MRT_TABLE. The table number is\nstored in the raw socket data and affects all following ipmr setsockopt(),\ngetsockopt() and ioctl() calls. By default, a single table (RT_TABLE_DEFAULT)\nis created with a default routing rule pointing to it. Newly created pimreg\ndevices have the table number appended (\"pimregX\"), with the exception of\ndevices created in the default table, which are named just \"pimreg\" for\ncompatibility reasons.\n\nPackets are directed to a specific table instance using routing rules,\nsimilar to how regular routing rules work. Currently iif, oif and mark\nare supported as keys, source and destination addresses could be supported\nadditionally.\n\nExample usage:\n\n- bind pimd/xorp/... to a specific table:\n\nuint32_t table \u003d 123;\nsetsockopt(fd, IPPROTO_IP, MRT_TABLE, \u0026table, sizeof(table));\n\n- create routing rules directing packets to the new table:\n\n# ip mrule add iif eth0 lookup 123\n# ip mrule add oif eth0 lookup 123\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c12295a741d3186987f96f518cfbdaf01abb087",
      "tree": "e71d0f5e5193870318e86cd519edf728b1e2a079",
      "parents": [
        "862465f2e7e90975e7bf0ecfbb171dd3adedd950"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Apr 13 05:03:22 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 13 14:49:34 2010 -0700"
      },
      "message": "ipv4: ipmr: move mroute data into seperate structure\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "862465f2e7e90975e7bf0ecfbb171dd3adedd950",
      "tree": "281c43f90130cc23eb581c702afaf4ab226dbff5",
      "parents": [
        "d658f8a0e63b6476148162aa7a3ffffc58dcad52"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Apr 13 05:03:21 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 13 14:49:33 2010 -0700"
      },
      "message": "ipv4: ipmr: convert struct mfc_cache to struct list_head\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d658f8a0e63b6476148162aa7a3ffffc58dcad52",
      "tree": "25087c18eb91bbe040cf5c9b5e1710d35e37328f",
      "parents": [
        "e258beb22f4d3ea3dc88586ffc9c990d0eb03380"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Apr 13 05:03:20 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 13 14:49:33 2010 -0700"
      },
      "message": "ipv4: ipmr: remove net pointer from struct mfc_cache\n\nNow that cache entries in unres_queue don\u0027t need to be distinguished by their\nnetwork namespace pointer anymore, we can remove it from struct mfc_cache\nadd pass the namespace as function argument to the functions that need it.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e258beb22f4d3ea3dc88586ffc9c990d0eb03380",
      "tree": "7bd4dc984757894cbfb355189e9172a4a566596c",
      "parents": [
        "f74e49b5613206fb18468bdc9509a1db746aa01b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Apr 13 05:03:19 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 13 14:49:32 2010 -0700"
      },
      "message": "ipv4: ipmr: move unres_queue and timer to per-namespace data\n\nThe unres_queue is currently shared between all namespaces. Following patches\nwill additionally allow to create multiple multicast routing tables in each\nnamespace. Having a single shared queue for all these users seems to excessive,\nmove the queue and the cleanup timer to the per-namespace data to unshare it.\n\nAs a side-effect, this fixes a bug in the seq file iteration functions: the\nfirst entry returned is always from the current namespace, entries returned\nafter that may belong to any namespace.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "f77f13e22df4a40d237697df496152c8c37f3f2b",
      "tree": "beccbb0214078d68027f7a17b57be556292475bd",
      "parents": [
        "5239c4ff4ae9e810ba761518ad71b463f0ccbf3c"
      ],
      "author": {
        "name": "Gilles Espinasse",
        "email": "g.esp@free.fr",
        "time": "Mon Mar 29 15:41:47 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 29 15:41:47 2010 +0200"
      },
      "message": "Fix comment and Kconfig typos for \u0027require\u0027 and \u0027fragment\u0027\n\nSigned-off-by: Gilles Espinasse \u003cg.esp@free.fr\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "7438189baa0a2fe30084bdc97e3d540ebc5444f3",
      "tree": "6627b63b785df9175e04a0ce1b49d5eea8ea0777",
      "parents": [
        "e7d481a6f3c13041446b7bb8f98ab861460076a3"
      ],
      "author": {
        "name": "Nicolas Dichtel",
        "email": "nicolas.dichtel@dev.6wind.com",
        "time": "Thu Mar 25 23:45:35 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 27 08:33:21 2010 -0700"
      },
      "message": "net: ipmr/ip6mr: prevent out-of-bounds vif_table access\n\nWhen cache is unresolved, c-\u003emf[6]c_parent is set to 65535 and\nminvif, maxvif are not initialized, hence we must avoid to\nparse IIF and OIF.\nA second problem can happen when the user dumps a cache entry\nwhere a VIF, that was referenced at creation time, has been\nremoved.\n\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9bbc768aa911a3ef336272eaa6d220abfba8ce50",
      "tree": "2c2d421e273eb78f3b1d4533b3a8b0654bcd45c0",
      "parents": [
        "713aefa3fb3929ce36305d4d1b7b4059d87ed115"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Tue Mar 23 04:07:29 2010 +0100"
      },
      "committer": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Thu Mar 25 16:00:30 2010 +0100"
      },
      "message": "netfilter: ipv4: use NFPROTO values for NF_HOOK invocation\n\nThe semantic patch that was used:\n// \u003csmpl\u003e\n@@\n@@\n(NF_HOOK\n|NF_HOOK_COND\n|nf_hook\n)(\n-PF_INET,\n+NFPROTO_IPV4,\n ...)\n// \u003c/smpl\u003e\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\n"
    },
    {
      "commit": "a50436f2cd6e85794f7e1aad795ca8302177b896",
      "tree": "522ac0b3ac330fb53d4ee9147f7565b27b482085",
      "parents": [
        "ea93fd9456ad32cd85b2d7914b58c6313cc40c9e"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Mar 17 06:04:14 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 19 22:47:22 2010 -0700"
      },
      "message": "net: ipmr/ip6mr: fix potential out-of-bounds vif_table access\n\nmfc_parent of cache entries is used to index into the vif_table and is\ninitialised from mfcctl-\u003emfcc_parent. This can take values of to 2^16-1,\nwhile the vif_table has only MAXVIFS (32) entries. The same problem\naffects ip6mr.\n\nRefuse invalid values to fix a potential out-of-bounds access. Unlike\nthe other validity checks, this is checked in ipmr_mfc_add() instead of\nthe setsockopt handler since its unused in the delete path and might be\nuninitialized.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9f0beba9f90847db7ba6ed894f7c87b6038a5bce",
      "tree": "33245112ba66fdb1c886da7663b5bba439e17879",
      "parents": [
        "a77ff709dd30a263f8154b05a8514b46098b42ba"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Feb 17 01:19:32 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 17 13:27:10 2010 -0800"
      },
      "message": "ipmr: remove useless checks from ipmr_device_event\n\nThe net being checked there is dev_net(dev) and thus this if\nis always false.\n\nFits both net and net-next trees.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a2bfbc072e279ff81e6b336acff612b9bc2e5281",
      "tree": "89cfe21911e1539e1b7f89d8a10d42abecba2a18",
      "parents": [
        "5c427ff9e4cc61625d48172ea082ae99e21eea6a",
        "82b3cc1a2f5e46300a9dec4a8cc8106dc20a4c23"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 17 00:05:02 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 17 00:05:02 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/can/Kconfig\n"
    },
    {
      "commit": "d0490cfdf440fded2c292cfb8bb9272fc9ef6943",
      "tree": "6230f8a577136ca2d82d9d00cb36cf8b5a8ae3c3",
      "parents": [
        "b8a623bf836ccfab09a5a6daf62116f455082e6e"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed Nov 11 02:03:54 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 13 19:56:54 2009 -0800"
      },
      "message": "ipmr: missing dev_put() on error path in vif_add()\n\nThe other error paths in front of this one have a dev_put() but this one\ngot missed.\n\nFound by smatch static checker.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by: Wang Chen \u003cellre923@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d17fa6fa81d9be6d2dc69aedfabecf904210cbf4",
      "tree": "36513dfe8637c6ef87d2837948c7f64ad2b96d8f",
      "parents": [
        "cf4432f550a0fe4e08e7cd522568cfbae754582c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Oct 28 05:21:38 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 29 01:13:49 2009 -0700"
      },
      "message": "ipmr: Optimize multiple unregistration\n\nSpeedup module unloading by factorizing synchronize_rcu() calls\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c720c7e8383aff1cb219bddf474ed89d850336e3",
      "tree": "4f12337e6690fccced376db9f501eaf98614a65e",
      "parents": [
        "988ade6b8e27e79311812f83a87b5cea11fabcd7"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Oct 15 06:30:45 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 18 18:52:53 2009 -0700"
      },
      "message": "inet: rename some inet_sock fields\n\nIn order to have better cache layouts of struct sock (separate zones\nfor rx/tx paths), we need this preliminary patch.\n\nGoal is to transfert fields used at lookup time in the first\nread-mostly cache line (inside struct sock_common) and move sk_refcnt\nto a separate cache line (only written by rx path)\n\nThis patch adds inet_ prefix to daddr, rcv_saddr, dport, num, saddr,\nsport and id fields. This allows a future patch to define these\nfields as macros, like sk_refcnt, without name clashes.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee5e81f00051b5c373c8de16e3604fd6d3be699e",
      "tree": "f10ed0120d1669cf903752c3595fbb4b213795f5",
      "parents": [
        "7bb5fdc2fb021e32703ed1ff0269876bde1fa962"
      ],
      "author": {
        "name": "Ilia K",
        "email": "mail4ilia@gmail.com",
        "time": "Wed Sep 16 05:53:07 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 07 00:48:41 2009 -0700"
      },
      "message": "add vif using local interface index instead of IP\n\nWhen routing daemon wants to enable forwarding of multicast traffic it\nperforms something like:\n\n       struct vifctl vc \u003d {\n               .vifc_vifi  \u003d 1,\n               .vifc_flags \u003d 0,\n               .vifc_threshold \u003d 1,\n               .vifc_rate_limit \u003d 0,\n               .vifc_lcl_addr \u003d ip, /* \u003c--- ip address of physical\ninterface, e.g. eth0 */\n               .vifc_rmt_addr.s_addr \u003d htonl(INADDR_ANY),\n         };\n       setsockopt(fd, IPPROTO_IP, MRT_ADD_VIF, \u0026vc, sizeof(vc));\n\nThis leads (in the kernel) to calling  vif_add() function call which\nsearch the (physical) device using assigned IP address:\n       dev \u003d ip_dev_find(net, vifc-\u003evifc_lcl_addr.s_addr);\n\nThe current API (struct vifctl) does not allow to specify an\ninterface other way than using it\u0027s IP, and if there are more than a\nsingle interface with specified IP only the first one will be found.\n\nThe attached patch (against 2.6.30.4) allows to specify an interface\nby its index, instead of IP address:\n\n       struct vifctl vc \u003d {\n               .vifc_vifi  \u003d 1,\n               .vifc_flags \u003d VIFF_USE_IFINDEX,   /* NEW */\n               .vifc_threshold \u003d 1,\n               .vifc_rate_limit \u003d 0,\n               .vifc_lcl_ifindex \u003d if_nametoindex(\"eth0\"),   /* NEW */\n               .vifc_rmt_addr.s_addr \u003d htonl(INADDR_ANY),\n         };\n       setsockopt(fd, IPPROTO_IP, MRT_ADD_VIF, \u0026vc, sizeof(vc));\n\nSigned-off-by: Ilia K. \u003cmail4ilia@gmail.com\u003e\n\n\u003d\u003d\u003d modified file \u0027include/linux/mroute.h\u0027\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b7058842c940ad2c08dd829b21e5c92ebe3b8758",
      "tree": "5fe78d599fc345ca0bcd4b083b79095a54b2921b",
      "parents": [
        "eb1cf0f8f7a9e5a6d573d5bd72c015686a042db0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 30 16:12:20 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 30 16:12:20 2009 -0700"
      },
      "message": "net: Make setsockopt() optlen be unsigned.\n\nThis provides safety against negative optlen at the type\nlevel instead of depending upon (sometimes non-trivial)\nchecks against this sprinkled all over the the place, in\neach and every implementation.\n\nBased upon work done by Arjan van de Ven and feedback\nfrom Linus Torvalds.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "32613090a96dba2ca2cc524c8d4749d3126fdde5",
      "tree": "5e0e5f9097aca737e8a7356eb1b72e53539cda0b",
      "parents": [
        "e4c57d0f964cdbe278ed6b3bf632138fe575267e"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 14 12:21:47 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 14 17:03:01 2009 -0700"
      },
      "message": "net: constify struct net_protocol\n\nRemove long removed \"inet_protocol_base\" declaration.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6fef4c0c8eeff7de13007a5f56113475444a253d",
      "tree": "216bafb88ab84c5e0a048598cd6c05f7eb8f438d",
      "parents": [
        "dc1f8bf68b311b1537cb65893430b6796118498a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Aug 31 19:50:41 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 01 01:13:07 2009 -0700"
      },
      "message": "netdev: convert pseudo-devices to netdev_tx_t\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ed106549d17474ca17a16057f4c0ed4eba5a7ca",
      "tree": "b98c09081509b3a9757339b6b66779e4126dfa29",
      "parents": [
        "0e8635a8e1f2d4a9e1bfc6c3b21419a5921e674f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jun 23 06:03:08 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 05 19:16:04 2009 -0700"
      },
      "message": "net: use NETDEV_TX_OK instead of 0 in ndo_start_xmit() functions\n\nThis patch is the result of an automatic spatch transformation to convert\nall ndo_start_xmit() return values of 0 to NETDEV_TX_OK.\n\nSome occurences are missed by the automatic conversion, those will be\nhandled in a seperate patch.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "403dbb97f654cd59b87999fe1b64d29bf90b3a2a",
      "tree": "c8d4ea1152288792f5e6bde54e79497dcfd44a9e",
      "parents": [
        "e61a4b634a15c11725eac8e66b457ba411168c7f"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Sun Jun 14 03:16:13 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 14 03:16:13 2009 -0700"
      },
      "message": "PIM-SM: namespace changes\n\nIPv4:\n  - make PIM register vifs netns local\n  - set the netns when a PIM register vif is created\n  - make PIM available in all network namespaces (if CONFIG_IP_PIMSM_V2)\n    by adding the protocol handler when multicast routing is initialized\n\nIPv6:\n  - make PIM register vifs netns local\n  - make PIM available in all network namespaces (if CONFIG_IPV6_PIMSM_V2)\n    by adding the protocol handler when multicast routing is initialized\n\nSigned-off-by: Tom Goff \u003cthomas.goff@boeing.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "adf30907d63893e4208dfe3f5c88ae12bc2f25d5",
      "tree": "0f07542bb95de2ad537540868aba6cf87a86e17d",
      "parents": [
        "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:19:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:04 2009 -0700"
      },
      "message": "net: skb-\u003edst accessors\n\nDefine three accessors to get/set dst attached to a skb\n\nstruct dst_entry *skb_dst(const struct sk_buff *skb)\n\nvoid skb_dst_set(struct sk_buff *skb, struct dst_entry *dst)\n\nvoid skb_dst_drop(struct sk_buff *skb)\nThis one should replace occurrences of :\ndst_release(skb-\u003edst)\nskb-\u003edst \u003d NULL;\n\nDelete skb-\u003edst field\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a",
      "tree": "3e368d9a78f87eb9dd7ff9e57f4aab3f4a96e3b1",
      "parents": [
        "dfbf97f3ac980b69dfbc41c83a208211a38443e8"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:14:27 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:02 2009 -0700"
      },
      "message": "net: skb-\u003ertable accessor\n\nDefine skb_rtable(const struct sk_buff *skb) accessor to get rtable from skb\n\nDelete skb-\u003ertable field\n\nSetting rtable is not allowed, just set dst instead as rtable is an alias.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "69ebbf58f3dff9fb4e5240e472b5869fa869dae1",
      "tree": "9c7fd47a42581615b5e70290c0f76fedd8e459c4",
      "parents": [
        "12207e498b9b8f9f0c946db079ad17c7ca16cdf3"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Feb 06 23:46:51 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 06 23:46:51 2009 -0800"
      },
      "message": "ipmr: use goto to common label instead of opencoding\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4feb88e5c694bfe414cbc3ce0e383f7f7038f90b",
      "tree": "418140ffc541223205b921b9995b981a5cfbc2dd",
      "parents": [
        "f6bb451476be53d456e73bcfd82356afd680bbb0"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:23 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:41 2009 -0800"
      },
      "message": "netns: ipmr: enable namespace support in ipv4 multicast routing code\n\nThis last patch makes the appropriate changes to use and propagate the\nnetwork namespace where needed in IPv4 multicast routing code.\n\nThis consists mainly in replacing all the remaining init_net occurences\nwith current netns pointer retrieved from sockets, net devices or\nmfc_caches depending on the routines\u0027 contexts.\n\nSome routines receive a new \u0027struct net\u0027 parameter to propagate the current\nnetns:\n* vif_add/vif_delete\n* ipmr_new_tunnel\n* mroute_clean_tables\n* ipmr_cache_find\n* ipmr_cache_report\n* ipmr_cache_unresolved\n* ipmr_mfc_add/ipmr_mfc_delete\n* ipmr_get_route\n* rt_fill_info (in route.c)\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6bb451476be53d456e73bcfd82356afd680bbb0",
      "tree": "2b82f1523dbf4e0adfdfb214388b64df3ecacc99",
      "parents": [
        "6c5143dbcfe50ac722965dc7d096abbeeec8bb33"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:22 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:41 2009 -0800"
      },
      "message": "netns: ipmr: declare ipmr /proc/net entries per-namespace\n\nDeclare IPv4 multicast forwarding /proc/net entries per-namespace:\n/proc/net/ip_mr_vif\n/proc/net/ip_mr_cache\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6c5143dbcfe50ac722965dc7d096abbeeec8bb33",
      "tree": "b9a78f7a700ec6a82ed05cd46e65f7c9ba2cbf60",
      "parents": [
        "6f9374a9342e896c68df7cf7c0b039ab5cca994c"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:21 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:40 2009 -0800"
      },
      "message": "netns: ipmr: declare reg_vif_num per-namespace\n\nPreliminary work to make IPv4 multicast routing netns-aware.\n\nDeclare variable \u0027reg_vif_num\u0027 per-namespace, move into struct netns_ipv4.\n\nAt the moment, this variable is only referenced in init_net.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f9374a9342e896c68df7cf7c0b039ab5cca994c",
      "tree": "ba03b8e9e70b0ae5f581444afb9a9ae43e579091",
      "parents": [
        "1e8fb3b6a4ac6c5e486298d88289038456957545"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:20 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:40 2009 -0800"
      },
      "message": "netns: ipmr: declare mroute_do_assert and mroute_do_pim per-namespace\n\nPreliminary work to make IPv4 multicast routing netns-aware.\n\nDeclare IPv multicast routing variables \u0027mroute_do_assert\u0027 and\n\u0027mroute_do_pim\u0027 per-namespace in struct netns_ipv4.\n\nAt the moment, these variables are only referenced in init_net.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1e8fb3b6a4ac6c5e486298d88289038456957545",
      "tree": "ff2c02ed95edcf510e553c15c8abd476cdc6d669",
      "parents": [
        "2bb8b26c3ea8bde1943dc5cd4dda2dc9f48fb281"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:19 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:39 2009 -0800"
      },
      "message": "netns: ipmr: declare counter cache_resolve_queue_len per-namespace\n\nPreliminary work to make IPv4 multicast routing netns-aware.\n\nDeclare variable cache_resolve_queue_len per-namespace: move it into\nstruct netns_ipv4.\n\nThis variable counts the number of unresolved cache entries queued in the\nlist mfc_unres_queue. This list is kept global to all netns as the number\nof entries per namespace is limited to 10 (hardcoded in routine\nipmr_cache_unresolved).\nEntries belonging to different namespaces in mfc_unres_queue will be\nidentified by matching the mfc_net member introduced previously in\nstruct mfc_cache.\n\nKeeping this list global to all netns, also allows us to keep a single\ntimer (ipmr_expire_timer) to handle their expiration.\nIn some places cache_resolve_queue_len value was tested for arming\nor deleting the timer. These tests were equivalent to testing\nmfc_unres_queue value instead and are replaced in this patch.\n\nAt the moment, cache_resolve_queue_len is only referenced in init_net.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2bb8b26c3ea8bde1943dc5cd4dda2dc9f48fb281",
      "tree": "dacd8256827d6539ff79162cbf8fad2873835126",
      "parents": [
        "5c0a66f5f3c9c59e2c341400048e2cff768e67a9"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:18 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:38 2009 -0800"
      },
      "message": "netns: ipmr: dynamically allocate mfc_cache_array\n\nPreliminary work to make IPv4 multicast routing netns-aware.\n\nDynamically allocate IPv4 multicast forwarding cache, mfc_cache_array,\nand move it to struct netns_ipv4.\n\nAt the moment, mfc_cache_array is only referenced in init_net.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5c0a66f5f3c9c59e2c341400048e2cff768e67a9",
      "tree": "937c8e34fee423d57bff1cd6dd2bc1f4e80eee44",
      "parents": [
        "cf958ae377ee2545ae70cf48d38e7eb4308c27ea"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:17 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:36 2009 -0800"
      },
      "message": "netns: ipmr: store netns in struct mfc_cache\n\nThis patch stores into struct mfc_cache the network namespace each\nmfc_cache belongs to. The new member is mfc_net.\n\nmfc_net is assigned at cache allocation and doesn\u0027t change during\nthe rest of the cache entry life.\nA new net parameter is added to ipmr_cache_alloc/ipmr_cache_alloc_unres.\n\nThis will help to retrieve the current netns around the IPv4 multicast\nrouting code.\n\nAt the moment, all mfc_cache are allocated in init_net.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf958ae377ee2545ae70cf48d38e7eb4308c27ea",
      "tree": "f304ea66b789f4287968fcaa57831cd4fa8e2576",
      "parents": [
        "70a269e6c9c9b38b1a37dce068c59e9a912f8578"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:16 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:34 2009 -0800"
      },
      "message": "netns: ipmr: dynamically allocate vif_table\n\nPreliminary work to make IPv6 multicast routing netns-aware.\n\nDynamically allocate interface table vif_table and move it to\nstruct netns_ipv4, and update MIF_EXISTS() macro.\n\nAt the moment, vif_table is only referenced in init_net.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "70a269e6c9c9b38b1a37dce068c59e9a912f8578",
      "tree": "f39e0615f1a2e6588f620969a1f0a05b616f0b0e",
      "parents": [
        "e35fac80ed0bb878f652cc0f70ca268656d275f7"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:15 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:34 2009 -0800"
      },
      "message": "netns: ipmr: allocate mroute_socket per-namespace.\n\nPreliminary work to make IPv4 multicast routing netns-aware.\n\nMake IPv4 multicast routing mroute_socket per-namespace,\nmoves it into struct netns_ipv4.\n\nAt the moment, mroute_socket is only referenced in init_net.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b1879204dda06a92a4ff55b681c99ee185180003",
      "tree": "3045f326dcff6bb1ca3768803bfc62e98e69c6dc",
      "parents": [
        "c40cf519f0c0f0cb0579d853949ef517a8bb494d"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Tue Dec 16 01:15:11 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 16 01:15:11 2008 -0800"
      },
      "message": "ipmr: merge common code\n\nAlso removes redundant skb-\u003elen \u003c x check which can\u0027t\nbe true once pskb_may_pull(skb, x) succeeded.\n\n$ diff-funcs pim_rcv ipmr.c ipmr.c pim_rcv_v1\n  --- ipmr.c:pim_rcv()\n  +++ ipmr.c:pim_rcv_v1()\n@@ -1,22 +1,27 @@\n-static int pim_rcv(struct sk_buff * skb)\n+int pim_rcv_v1(struct sk_buff * skb)\n {\n-\tstruct pimreghdr *pim;\n+\tstruct igmphdr *pim;\n \tstruct iphdr   *encap;\n \tstruct net_device  *reg_dev \u003d NULL;\n\n \tif (!pskb_may_pull(skb, sizeof(*pim) + sizeof(*encap)))\n \t\tgoto drop;\n\n-\tpim \u003d (struct pimreghdr *)skb_transport_header(skb);\n-\tif (pim-\u003etype !\u003d ((PIM_VERSION\u003c\u003c4)|(PIM_REGISTER)) ||\n-\t    (pim-\u003eflags\u0026PIM_NULL_REGISTER) ||\n-\t    (ip_compute_csum((void *)pim, sizeof(*pim)) !\u003d 0 \u0026\u0026\n-\t     csum_fold(skb_checksum(skb, 0, skb-\u003elen, 0))))\n+\tpim \u003d igmp_hdr(skb);\n+\n+\tif (!mroute_do_pim ||\n+\t    skb-\u003elen \u003c sizeof(*pim) + sizeof(*encap) ||\n+\t    pim-\u003egroup !\u003d PIM_V1_VERSION || pim-\u003ecode !\u003d PIM_V1_REGISTER)\n \t\tgoto drop;\n\n-\t/* check if the inner packet is destined to mcast group */\n \tencap \u003d (struct iphdr *)(skb_transport_header(skb) +\n-\t\t\t\t sizeof(struct pimreghdr));\n+\t\t\t\t sizeof(struct igmphdr));\n+\t/*\n+\t   Check that:\n+\t   a. packet is really destinted to a multicast group\n+\t   b. packet is not a NULL-REGISTER\n+\t   c. packet is not truncated\n+\t */\n \tif (!ipv4_is_multicast(encap-\u003edaddr) ||\n \t    encap-\u003etot_len \u003d\u003d 0 ||\n \t    ntohs(encap-\u003etot_len) + sizeof(*pim) \u003e skb-\u003elen)\n@@ -40,9 +45,9 @@\n \tskb-\u003eip_summed \u003d 0;\n \tskb-\u003epkt_type \u003d PACKET_HOST;\n \tdst_release(skb-\u003edst);\n+\tskb-\u003edst \u003d NULL;\n \treg_dev-\u003estats.rx_bytes +\u003d skb-\u003elen;\n \treg_dev-\u003estats.rx_packets++;\n-\tskb-\u003edst \u003d NULL;\n \tnf_reset(skb);\n \tnetif_rx(skb);\n \tdev_put(reg_dev);\n\n$ codiff net/ipv4/ipmr.o.old net/ipv4/ipmr.o.new\n\nnet/ipv4/ipmr.c:\n  pim_rcv_v1 | -283\n  pim_rcv    | -284\n 2 functions changed, 567 bytes removed\n\nnet/ipv4/ipmr.c:\n  __pim_rcv | +307\n 1 function changed, 307 bytes added\n\nnet/ipv4/ipmr.o.new:\n 3 functions changed, 307 bytes added, 567 bytes removed, diff: -260\n\n(Tested on x86_64).\n\nIt seems that pimlen arg could be left out as well and\neq-sizedness of structs trapped with BUILD_BUG_ON but\nI don\u0027t think that\u0027s more than a cosmetic flaw since there\naren\u0027t that many args anyway.\n\nCompile tested.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\n"
    },
    {
      "commit": "999890b21a8eff7559a140fcbd2cd4b34e685c76",
      "tree": "83f0c7fbb43e562c40cce760666d69de653abcf0",
      "parents": [
        "1ea472e2dedcf23d5f31c63fc790cccfab93c0de"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Wed Dec 03 22:22:16 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 03 22:22:16 2008 -0800"
      },
      "message": "net: /proc/net/ip_mr_cache, display Iif as a signed short\n\nToday, iproute2 fails to show multicast forwarding unresolved cache\nentries while scanning /proc/net/ip_mr_cache.\n\nIndeed, it expects to see -1 in \u0027Iif\u0027 column to identify unresolved\nentries but the kernel outputs 65535. It\u0027s a signed/unsigned issue:\n\n\u0027Iif\u0027, the source interface, is retrieved from member mfc_parent in\nstruct mfc_cache. mfc_parent is a vifi_t: unsigned short, but is\ndisplayed in ipmr_mfc_seq_show() as \"%-3d\", signed integer.\n\nIn unresolevd entries, the 65535 value (0xFFFF) comes from this define:\n#define ALL_VIFS    ((vifi_t)(-1))\n\nThat may explains why the guy who added support for this in iproute2\nthought a -1 should be expected.\n\nI don\u0027t know if this must be fixed in kernel or in iproute2. Who is\nright? What is the correct API? How was it designed originally?\n\nI let you decide if it should goes in the kernel or be fixed in iproute2.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ea472e2dedcf23d5f31c63fc790cccfab93c0de",
      "tree": "1886e87c59bc3efe9edee6f2473d5a2ad5b22e9e",
      "parents": [
        "9de6d99a7559d20f7ababd1cacdc61ee5315f3c1"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Wed Dec 03 22:21:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 03 22:21:47 2008 -0800"
      },
      "message": "net: fix /proc/net/ip_mr_cache display - V2\n\n/proc/net/ip_mr_cache and /proc/net/ip6_mr_cache displays garbage when\nshowing unresolved mfc_cache entries.\n\n[root@qemu tests]# cat /proc/net/ip_mr_cache\nGroup    Origin   Iif     Pkts    Bytes    Wrong Oifs\n014C00EF 010014AC 1         10    10050        0  2:1    3:1\n024C00EF 010014AC 65535      514        2 -559067475\n\nThe first line is correct. It is a resolved cache entry, 10 packets used it...\nThe second line represents an unresolved entry, and the columns Pkts(4th),\nBytes(5th) and Wrong(6th) just show garbage.\n\nIn struct mfc_cache, there\u0027s an union to store data for resolved and\nunresolved cases. And what ipmr_mfc_seq_show() is printing in these \ncolumns for the unresolved entries is some bytes from mfc_cache.mfc_un.res.\nBad.\n(eg. In our case -559067475 is in fact 0xdead4ead which is the spinlock\nmagic from mfc_cache.mfc_un.unres.unresolved.lock.magic).\n\nThis patch replaces the garbage data written in these columns for the\nunresolved entries by \u00270\u0027 (zeros) which is more correct.\nThis change doesn\u0027t break the ABI.\n\nAlso, mfc-\u003emfc_un.res.pkt, mfc-\u003emfc_un.res.bytes, mfc-\u003emfc_un.res.wrong_if\nare unsigned long.\n\nIt applies on top of net-next-2.6.\n\nThe patch for net-2.6 is slightly different because of the NIP6_FMT to\n%pI6 conversion that was made in the seq_printf.\n\nChangelog:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nV2:\n* Instead of breaking the ABI by suppressing the columns that have no\n  meaning for unresolved entries, fill them with 0 values.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "007c3838d9fdcc8fdaea87e4879ec3759f016ed5",
      "tree": "67f09220e48797dc2799a7db6b0b4f5cc8a99ac3",
      "parents": [
        "aa18e9e88c863a58f6ea63eeee0e740be071fdcf"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Nov 20 20:28:35 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 20:28:35 2008 -0800"
      },
      "message": "ipmr: convert ipmr virtual interface to net_device_ops\n\nConvert to new network device ops interface.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ab33d51713d6d60c7677c0d020910a8cb37e513",
      "tree": "546c2ff099b2757e75cf34ddace874f1220f740e",
      "parents": [
        "7be6065b39c3f1cfa796667eac1a2170465acc91",
        "13d428afc007fcfcd6deeb215618f54cf9c0cae6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 16:44:00 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 16:44:00 2008 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/ixgbe/ixgbe_main.c\n\tinclude/net/mac80211.h\n\tnet/phonet/af_phonet.c\n"
    },
    {
      "commit": "5bc3eb7e2f0026f246d939851109df99e8e9f64a",
      "tree": "6da63169e066a07db21cc5268ac97ceb4c366c1c",
      "parents": [
        "54a30c975b6b27c0c9268461b647576b146d39bb"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Nov 19 21:52:05 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 19 22:42:41 2008 -0800"
      },
      "message": "ip: convert to net_device_ops for ioctl\n\nConvert to net_device_ops function table pointer for ioctl.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c3e388964baa00d8c3960f23e8c8a1fb3966759e",
      "tree": "29014a69e1702a641bd782838050db47b7de9c19",
      "parents": [
        "7f0f598a0069d1ab072375965a4b69137233169c"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Wed Nov 19 14:07:41 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 19 14:07:41 2008 -0800"
      },
      "message": "net: fix ip_mr_init() error path\n\nSimilarly to IPv6 ip6_mr_init() (fixed last week), the order of cleanup\noperations in the error/exit section of ip_mr_init() is completely \ninversed. It should be the other way around.\nAlso a del_timer() is missing in the error path.\n\nI should have guessed last week that this same error existed in ipmr.c\ntoo, as ip6mr.c is largely inspired by ipmr.c.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c354e1246348e25c714e6b2973f3257183d06e2c",
      "tree": "4631234b66f374b97c2c60a0701f9e96c54e7416",
      "parents": [
        "09cb105ea78d5644570d52085e2149f784575872"
      ],
      "author": {
        "name": "Jianjun Kong",
        "email": "jianjun@zeuux.org",
        "time": "Mon Nov 03 00:28:02 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 03 00:28:02 2008 -0800"
      },
      "message": "net: clean up net/ipv4/ipmr.c\n\nSigned-off-by: Jianjun Kong \u003cjianjun@zeuux.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "113aa838ec3a235d883f8357d31d90e16c47fc89",
      "tree": "4e25254fb0402aea01074244879f574e213a9f31",
      "parents": [
        "510149e31974fdbb2c00c9bee6c0e2a688e61c85"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 19:01:08 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 13 19:01:08 2008 -0700"
      },
      "message": "net: Rationalise email address: Network Specific Parts\n\nClean up the various different email addresses of mine listed in the code\nto a single current and valid address. As Dave says his network merges\nfor 2.6.28 are now done this seems a good point to send them in where\nthey won\u0027t risk disrupting real changes.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\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": "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": "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": "03d2f897e9fb3218989baa2139a951ce7f5414bf",
      "tree": "2949bdd7fbe49c3754cdc8140d5b67b37f0edd66",
      "parents": [
        "623d1a1af77bd52a389c6eda5920e28eb2ee468b"
      ],
      "author": {
        "name": "Wang Chen",
        "email": "wangchen@cn.fujitsu.com",
        "time": "Thu Jul 03 12:13:36 2008 +0800"
      },
      "committer": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Thu Jul 03 17:51:57 2008 +0900"
      },
      "message": "ipv4: Do cleanup for ip_mr_init\n\nSame as ip6_mr_init(), make ip_mr_init() return errno if fails.\nBut do not do error handling in inet_init(), just print a msg.\n\nSigned-off-by: Wang Chen \u003cwangchen@cn.fujitsu.com\u003e\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    }
  ],
  "next": "0b040829952d84bf2a62526f0e24b624e0699447"
}
