)]}'
{
  "log": [
    {
      "commit": "4136cd523eb0c0bd53173e16fd7406d31d05824f",
      "tree": "8a6b73d066e88eff6736e32863fdad4501717d6c",
      "parents": [
        "5da621f1c514b8a39c6f7112becb97262ae76900"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Feb 07 17:58:20 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 07 17:58:20 2008 -0800"
      },
      "message": "[IPV4]: route: fix crash ip_route_input\n\nip_route_me_harder() may call ip_route_input() with skbs that don\u0027t\nhave skb-\u003edev set for skbs rerouted in LOCAL_OUT and TCP resets\ngenerated by the REJECT target, resulting in a crash when dereferencing\nskb-\u003edev-\u003end_net. Since ip_route_input() has an input device argument,\nit seems correct to use that one anyway.\n\nBug introduced in b5921910a1 (Routing cache virtualization).\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "29e75252da20f3ab9e132c68c9aed156b87beae6",
      "tree": "affd152c959eede937b50f6054a303a388a88545",
      "parents": [
        "174ce0483198b9dffd712fdd7d53635954fddffe"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Jan 31 17:05:09 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:27 2008 -0800"
      },
      "message": "[IPV4] route cache: Introduce rt_genid for smooth cache invalidation\n\nCurrent ip route cache implementation is not suited to large caches.\n\nWe can consume a lot of CPU when cache must be invalidated, since we\ncurrently need to evict all cache entries, and this eviction is\nsometimes asynchronous. min_delay \u0026 max_delay can somewhat control this\nasynchronism behavior, but whole thing is a kludge, regularly triggering\ninfamous soft lockup messages. When entries are still in use, this also\nconsumes a lot of ram, filling dst_garbage.list.\n\nA better scheme is to use a generation identifier on each entry,\nso that cache invalidation can be performed by changing the table\nidentifier, without having to scan all entries.\nNo more delayed flushing, no more stalling when secret_interval expires.\n\nInvalidated entries will then be freed at GC time (controled by\nip_rt_gc_timeout or stress), or when an invalidated entry is found\nin a chain when an insert is done.\nThus we keep a normal equilibrium.\n\nThis patch :\n- renames rt_hash_rnd to rt_genid (and makes it an atomic_t)\n- Adds a new rt_genid field to \u0027struct rtable\u0027 (filling a hole on 64bit)\n- Checks entry-\u003ert_genid at appropriate places :\n"
    },
    {
      "commit": "e242297055f906e8e225fb95a8edbc88e9052634",
      "tree": "d0fb2d3ba0273bd621681b8de7621ee9b73baf44",
      "parents": [
        "ad1984e844fb6edaa8b9984be23669f4e19168be"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Jan 30 20:07:45 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:27:23 2008 -0800"
      },
      "message": "[NET]: should explicitely initialize atomic_t field in struct dst_ops\n\nAll but one struct dst_ops static initializations miss explicit\ninitialization of entries field.\n\nAs this field is atomic_t, we should use ATOMIC_INIT(0), and not\nrely on atomic_t implementation.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b5921910a1de4ba82add59154976c3dc7352c8c2",
      "tree": "c1de2c3734219548c2883777597247caa5450dc5",
      "parents": [
        "eee80592c3c1f7381c04913d9d3eb6e3c3c87628"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 22 23:50:25 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:13 2008 -0800"
      },
      "message": "[NETNS]: Routing cache virtualization.\n\nBasically, this piece looks relatively easy. Namespace is already\navailable on the dst entry via device and the device is safe to\ndereferrence. Compare it with one of a searcher and skip entry if\nappropriate.\n\nThe only exception is ip_rt_frag_needed. So, add namespace parameter to it.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f206351a50ea86250fabea96b9af8d8f8fc02603",
      "tree": "014148d8b45db1995d98374ec3b30e635f243197",
      "parents": [
        "f1b050bf7a88910f9f00c9c8989c1bf5a67dd140"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 22 22:07:34 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:07 2008 -0800"
      },
      "message": "[NETNS]: Add namespace parameter to ip_route_output_key.\n\nNeeded to propagate it down to the ip_route_output_flow.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f1b050bf7a88910f9f00c9c8989c1bf5a67dd140",
      "tree": "37e8dce4268cb657a75e5074a38db48264f1e42f",
      "parents": [
        "611c183ebcb5af384df3a4ddb391034a1b6ac255"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 22 22:07:10 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:06 2008 -0800"
      },
      "message": "[NETNS]: Add namespace parameter to ip_route_output_flow.\n\nNeeded to propagate it down to the __ip_route_output_key.\n\nSigned_off_by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "611c183ebcb5af384df3a4ddb391034a1b6ac255",
      "tree": "368ec261285af31fcf5a4f61651f01017e6d2692",
      "parents": [
        "b40afd0e5c568aba79a4ae2a963cd2af1f09490d"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 22 22:06:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:05 2008 -0800"
      },
      "message": "[NETNS]: Add namespace parameter to __ip_route_output_key.\n\nThis is only required to propagate it down to the\nip_route_output_slow.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b40afd0e5c568aba79a4ae2a963cd2af1f09490d",
      "tree": "581ff80976c89de63419ce79e2c8a66ee4cde8db",
      "parents": [
        "1ab352768fc73838b062776ca5d1add3876a019f"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 22 22:06:19 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:05 2008 -0800"
      },
      "message": "[NETNS]: Add namespace parameter to ip_route_output_slow.\n\nThis function needs a net namespace to lookup devices, fib tables,\netc. in, so pass it there.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ab352768fc73838b062776ca5d1add3876a019f",
      "tree": "b30bd7744e30e90b6db01b71a5c8b86140538255",
      "parents": [
        "010278ec4cdf404aefc0bbd5e7406674fec95286"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 22 22:04:30 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:04 2008 -0800"
      },
      "message": "[NETNS]: Add namespace parameter to ip_dev_find.\n\nin_dev_find() need a namespace to pass it to fib_get_table(), so add\nan argument.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "010278ec4cdf404aefc0bbd5e7406674fec95286",
      "tree": "11bd9546231f92214289c2db4bd8f2bc94153d27",
      "parents": [
        "64c2d5382954ccf6054424653f4c7f4f04c1ff21"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 22 22:04:04 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:03 2008 -0800"
      },
      "message": "[NETNS]: Add netns parameter to fib_select_default.\n\nCurrently fib_select_default calls fib_get_table() with the\ninit_net. Prepare it to provide a correct namespace to lookup default\nroute.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ecfdc8c5424079393a9b05e8a5aaf5c6873029f6",
      "tree": "e15ed74491e1bcfbfe5cee1d7964e5c334663ea2",
      "parents": [
        "84a885f44961c17a91cae9a9c03e4b3dae5d8d94"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Mon Jan 21 17:35:06 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:10:23 2008 -0800"
      },
      "message": "[NETNS]: Pass correct namespace in ip_rt_get_source.\n\nip_rt_get_source is the infamous place for which dst_ifdown kludges\nhave been implemented. This means that rt-\u003eu.dst.dev can be safely\ndereferrenced obtain nd_net.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "84a885f44961c17a91cae9a9c03e4b3dae5d8d94",
      "tree": "008cdba1ea0e14fdb2b95a74ad8e7998e37c49ae",
      "parents": [
        "86167a377f1c4fb40742302ae7682dd574abde86"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Mon Jan 21 17:34:35 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:10:22 2008 -0800"
      },
      "message": "[NETNS]: Pass correct namespace in ip_route_input_slow.\n\nThe packet on the input path always has a referrence to an input\nnetwork device it is passed from. Extract network namespace from it.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "da0e28cb68a7e22b47c6ae1a5b12cb538c13c69f",
      "tree": "ac5bc308d4532f7cd271ee58c9bba5decf9699bd",
      "parents": [
        "ba93ef746560df597b19bbcee04ce7ed70ebc700"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Mon Jan 21 17:31:55 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:10:19 2008 -0800"
      },
      "message": "[NETNS]: Add netns parameter to fib_lookup.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1e637c74b0f84eaca02b914c0b8c6f67276e9697",
      "tree": "18e42bbac80529c36ac3e6a8e5b68538e0db10df",
      "parents": [
        "96750162b5f7350ec7ba7cf747a6623858d65dd2"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@computergmbh.de",
        "time": "Mon Jan 21 03:18:08 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:44 2008 -0800"
      },
      "message": "[IPV4]: Enable use of 240/4 address space.\n\nThis short patch modifies the IPv4 networking to enable use of the\n240.0.0.0/4 (aka \"class-E\") address space as propsed in the internet\ndraft draft-fuller-240space-00.txt.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@computergmbh.de\u003e\nAcked-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "569d36452ee26c08523cc9f658901c5188640853",
      "tree": "f296ea41b92f655031f9345d3febd8319e5a06ee",
      "parents": [
        "a6501e080c318f8d4467679d17807f42b3a33cd5"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "dlezcano@fr.ibm.com",
        "time": "Fri Jan 18 03:56:57 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:02:46 2008 -0800"
      },
      "message": "[NETNS][DST] dst: pass the dst_ops as parameter to the gc functions\n\nThe garbage collection function receive the dst_ops structure as\nparameter. This is useful for the next incoming patchset because it\nwill need the dst_ops (there will be several instances) and the\nnetwork namespace pointer (contained in the dst_ops).\n\nThe protocols which do not take care of the namespaces will not be\nimpacted by this change (expect for the function signature), they do\njust ignore the parameter.\n\nSigned-off-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6b175b26c1048d331508940ad3516ead1998084f",
      "tree": "810b0a18cee4d87c573274fdfd4a59fc624cfed2",
      "parents": [
        "8ad4942cd5bdad4143f7aa1d1bd4f7b2526c19c5"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Jan 10 03:25:28 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:01:27 2008 -0800"
      },
      "message": "[NETNS]: Add netns parameter to inet_(dev_)add_type.\n\nThe patch extends the inet_addr_type and inet_dev_addr_type with the\nnetwork namespace pointer. That allows to access the different tables\nrelatively to the network namespace.\n\nThe modification of the signature function is reported in all the\ncallers of the inet_addr_type using the pointer to the well known\ninit_net.\n\nAcked-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nAcked-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cb7928a528264a69b29b6001b490b64607ed0557",
      "tree": "250a296f668275eb628e6dd1f83c221f0afae422",
      "parents": [
        "f0b5a0dcf125ce43855961ef4f965a91112bea23"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Wed Jan 09 00:18:24 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:01:07 2008 -0800"
      },
      "message": "[IPV4]: Remove unsupported DNAT (RTCF_NAT and RTCF_NAT) in IPV4\n\n- The DNAT (Destination NAT) is not implemented in IPV4.\n\n- This patch remove the code which checks these flags\nin net/ipv4/arp.c and net/ipv4/route.c.\n\nThe RTCF_NAT and RTCF_NAT should stay in the header (linux/in_route.h)\nbecause they are used in DECnet.\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b790cedd24a7f7d1639072b3faf35f1f56cb38ea",
      "tree": "b39d755577be2cc822b5340ba5e4d77a45a6b4a7",
      "parents": [
        "9cb5734e5b9b26097c7fa28a9c6426a204cc15e3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Dec 21 01:49:07 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:59:57 2008 -0800"
      },
      "message": "[INET]: Avoid an integer divide in rt_garbage_collect()\n\nSince \u0027goal\u0027 is a signed int, compiler may emit an integer divide\nto compute goal/2.\n\nUsing a right shift is OK here and less expensive.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f97c1e0c6ebdb606c97b6cb5e837c6110ac5a961",
      "tree": "2af3da0114614a127099f9ab2ef706f676faa376",
      "parents": [
        "21cf2253ebcf070bc307e0b56d696a2519c75cb4"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Dec 16 13:45:43 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:58:15 2008 -0800"
      },
      "message": "[IPV4] net/ipv4: Use ipv4_is_\u003ctype\u003e\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "586f12115264b767ea6a48ce081ca25a39c1e3dd",
      "tree": "48bb41f07d4dc2a1e0d9f9d71286594d3b9800fa",
      "parents": [
        "9355bbd685bf705a7f7bd6470b92ca0562c7a661"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Dec 16 13:32:48 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:58:12 2008 -0800"
      },
      "message": "[IPV4]: Switch users of ipv4_devconf(_all) to use the pernet one\n\nThese are scattered over the code, but almost all the\n\"critical\" places already have the proper struct net\nat hand except for snmp proc showing function and routing\nrtnl handler.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bb72845e699d3c84e5f861b51db686107a51dea5",
      "tree": "a4a84343cbcc96e86c83954dc82f2a5ee0ce787d",
      "parents": [
        "7233b9f33e72ca477034ff5cf901c89efba3a5bc"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed Dec 12 18:48:58 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:42 2008 -0800"
      },
      "message": "[IPSEC]: Make callers of xfrm_lookup to use XFRM_LOOKUP_WAIT\n\nThis patch converts all callers of xfrm_lookup that used an\nexplicit value of 1 to indiciate blocking to use the new flag\nXFRM_LOOKUP_WAIT.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5a3e55d68ec5baac578bf32ba67607088c763657",
      "tree": "9e8f9dfae66c8a85735122ece8a9c85cdb5c31c4",
      "parents": [
        "b84a2189c4e1835c51fd6b974a0497be9bc4ba87"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Fri Dec 07 00:38:10 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:44 2008 -0800"
      },
      "message": "[NET]: Multiple namespaces in the all dst_ifdown routines.\n\nMove dst entries to a namespace loopback to catch refcounting leaks.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ff1cc202e9a7dbd9f54d1bce5adb44283497185",
      "tree": "f96bc57c92bd111931a26abf95f0c0828a0d17de",
      "parents": [
        "107f163428b846d7cef68cb6f436788bb2f6c2e1"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Dec 05 21:15:05 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:36 2008 -0800"
      },
      "message": "[IPV4] ROUTE: Convert rt_hash_lock_init() macro into function\n\nThere\u0027s no need in having this function exist in a form\nof macro. Properly formatted function looks much better.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "107f163428b846d7cef68cb6f436788bb2f6c2e1",
      "tree": "d5cc806a1f71471b8dbe67a4a107ed840f757ad2",
      "parents": [
        "78c686e9faff05f1194e892d5b1273ce24021ff6"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Dec 05 21:14:28 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:36 2008 -0800"
      },
      "message": "[IPV4] ROUTE: Clean up proc files creation.\n\nThe rt_cache, stats/rt_cache and rt_acct(optional) files\ncreation looks a bit messy. Clean this out and join them\nto other proc-related functions under the proper ifdef.\n\nThe struct net * argument in a new function will help net\nnamespaces patches look nicer.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "78c686e9faff05f1194e892d5b1273ce24021ff6",
      "tree": "4ac7916385f7f88657bafd1cf30abbdfc00457b7",
      "parents": [
        "f4d900a2cae94256f56be7769734100c7054bf00"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Dec 05 21:13:48 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:35 2008 -0800"
      },
      "message": "[IPV4] ROUTE: Collect proc-related functions together\n\nThe net/ipv4/route.c file declares some entries for proc\nto dump some routing info. The reading functions are\nscattered over this file - collect them together.\n\nBesides, remove a useless IP_RT_ACCT_CPU macro.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "beb659bd8c9f2ccc8195779383f71088f936bf6e",
      "tree": "0d07cc0a6e4525720537d08e7f905245f016136a",
      "parents": [
        "42a73808ed4f30b739eb52bcbb33a02fe62ceef5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Mon Nov 19 22:43:37 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:33 2008 -0800"
      },
      "message": "[PATCH] IPV4 : Move ip route cache flush (secret_rebuild) from softirq to workqueue\n\nEvery 600 seconds (ip_rt_secret_interval), a softirq flush of the\nwhole ip route cache is triggered. On loaded machines, this can starve\nsoftirq for many seconds and can eventually crash.\n\nThis patch moves this flush to a workqueue context, using the worker\nwe intoduced in commit 39c90ece7565f5c47110c2fa77409d7a9478bd5b (IPV4:\nConvert rt_check_expire() from softirq processing to workqueue.)\n\nAlso, immediate flushes (echo 0 \u003e/proc/sys/net/ipv4/route/flush) are\nusing rt_do_flush() helper function, wich take attention to\nrescheduling.\n\nNext step will be to handle delayed flushes\n(\"echo -1 \u003e/proc/sys/net/ipv4/route/flush\" or \"ip route flush cache\")\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "97c53cacf00d1f5aa04adabfebcc806ca8b22b10",
      "tree": "6b7223df312aa27a5017c4d7c4d1e500a33ed8d8",
      "parents": [
        "b854272b3c732316676e9128f7b9e6f1e1ff88b0"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Mon Nov 19 22:26:51 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:25 2008 -0800"
      },
      "message": "[NET]: Make rtnetlink infrastructure network namespace aware (v3)\n\nAfter this patch none of the netlink callback support anything\nexcept the initial network namespace but the rtnetlink infrastructure\nnow handles multiple network namespaces.\n\nChanges from v2:\n- IPv6 addrlabel processing\n\nChanges from v1:\n- no need for special rtnl_unlock handling\n- fixed IPv6 ndisc\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b854272b3c732316676e9128f7b9e6f1e1ff88b0",
      "tree": "c90c74b9ec068453881f1173da4c57d6bb00a7d9",
      "parents": [
        "ad5d20a63940fcfb40af76ba06148f36d5d0b433"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Sat Dec 01 00:21:31 2007 +1100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:24 2008 -0800"
      },
      "message": "[NET]: Modify all rtnetlink methods to only work in the initial namespace (v2)\n\nBefore I can enable rtnetlink to work in all network namespaces I need\nto be certain that something won\u0027t break.  So this patch deliberately\ndisables all of the rtnletlink methods in everything except the\ninitial network namespace.  After the methods have been audited this\nextra check can be disabled.\n\nChanges from v1:\n- added IPv6 addrlabel protection\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "8dbde28d9711475adfe0e9c88505e38743cdc2a7",
      "tree": "0f41aade985a5626ece9c2007fde14c1ced2a065",
      "parents": [
        "68f8353b480e5f2e136c38a511abdbb88eaa8ce2"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Nov 16 03:32:10 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:08 2008 -0800"
      },
      "message": "[NET]: NET_CLS_ROUTE : convert ip_rt_acct to per_cpu variables\n\nip_rt_acct needs 4096 bytes per cpu to perform some accounting.\nIt is actually allocated as a single huge array [4096*NR_CPUS]\n(rounded up to a power of two)\n\nConverting it to a per cpu variable is wanted to :\n - Save space on machines were num_possible_cpus() \u003c NR_CPUS\n - Better NUMA placement (each cpu gets memory on its node)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "862b82c6f960cc61274d370aa78ce1112f92a83e",
      "tree": "51e252e1525dd7d02a695d428890a4c37fae2442",
      "parents": [
        "ef76bc23ef2acf20c8f7f841a542d8ab74c827c6"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Nov 13 21:43:11 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:53:48 2008 -0800"
      },
      "message": "[IPSEC]: Merge most of the output path\n\nAs part of the work on asynchrnous cryptographic operations, we need\nto be able to resume from the spot where they occur.  As such, it\nhelps if we isolate them to one spot.\n\nThis patch moves most of the remaining family-specific processing into\nthe common output code.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "352e512c32b634768303a43768245a0363cebbe7",
      "tree": "97509ac130ecbe2084808271ccc459918a9d5fc1",
      "parents": [
        "b4ce92775c2e7ff9cf79cca4e0a19c8c5fd6287b"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Nov 13 21:34:06 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:53:37 2008 -0800"
      },
      "message": "[NET]: Eliminate duplicate copies of dst_discard\n\nWe have a number of copies of dst_discard scattered around the place\nwhich all do the same thing, namely free a packet on the input or\noutput paths.\n\nThis patch deletes all of them except dst_discard and points all the\nusers to it.\n\nThe only non-trivial bit is decnet where it returns an error.\nHowever, conceptually this is identical to the blackhole functions\nused in IPv4 and IPv6 which do not return errors.  So they should\neither all return errors or all return zero.  For now I\u0027ve stuck with\nthe majority and picked zero as the return value.\n\nIt doesn\u0027t really matter in practice since few if any driver would\nreact differently depending on a zero return value or NET_RX_DROP.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b24b8a247ff65c01b252025926fe564209fae4fc",
      "tree": "8a9e0ea1e24b4733d8b9433d41877659505e9da4",
      "parents": [
        "a92aa318b4b369091fd80433c80e62838db8bc1c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jan 23 21:20:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:53:35 2008 -0800"
      },
      "message": "[NET]: Convert init_timer into setup_timer\n\nMany-many code in the kernel initialized the timer-\u003efunction\nand  timer-\u003edata together with calling init_timer(timer). There\nis already a helper for this. Use it for networking code.\n\nThe patch is HUGE, but makes the code 130 lines shorter\n(98 insertions(+), 228 deletions(-)).\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0bcceadceb0907094ba4e40bf9a7cd9b080f13fb",
      "tree": "6cec2343354c5a22107eb53da276ab744519033a",
      "parents": [
        "9cd40029423701c376391da59d2c6469672b4bed"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Jan 10 03:55:57 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 10 03:55:57 2008 -0800"
      },
      "message": "[IPV4] ROUTE: fix rcu_dereference() uses in /proc/net/rt_cache\n\nIn rt_cache_get_next(), no need to guard seq-\u003eprivate by a\nrcu_dereference() since seq is private to the thread running this\nfunction. Reading seq.private once (as guaranted bu rcu_dereference())\nor several time if compiler really is dumb enough wont change the\nresult.\n\nBut we miss real spots where rcu_dereference() are needed, both in\nrt_cache_get_first() and rt_cache_get_next()\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d8c9283089287341c85a0a69de32c2287a990e71",
      "tree": "e504124cb4825357eed1665d988c3295b4649030",
      "parents": [
        "2b2b2e35b71e5be8bc06cc0ff38df15dfedda19b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Mon Jan 07 21:52:14 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 08 23:30:16 2008 -0800"
      },
      "message": "[IPV4] ROUTE: ip_rt_dump() is unecessary slow\n\nI noticed \"ip route list cache x.y.z.t\" can be *very* slow.\n\nWhile strace-ing -T it I also noticed that first part of route cache\nis fetched quite fast :\n\nrecvmsg(3, {msg_name(12)\u003d{sa_family\u003dAF_NETLINK, pid\u003d0, groups\u003d00000000}, msg_iov(1)\u003d[{\"p\\0\\0\\0\\30\\0\\2\\0\\254i\\202\nGXm\\0\\0\\2  \\0\\376\\0\\0\\2\\0\\2\\0\"..., 16384}], msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 3772 \u003c0.000047\u003e\nrecvmsg(3, {msg_name(12)\u003d{sa_family\u003dAF_NETLINK, pid\u003d0, groups\u003d00000000}, msg_iov(1)\u003d[{\"\\234\\0\\0\\0\\30\\0\\2\\0\\254i\\\n202GXm\\0\\0\\2  \\0\\376\\0\\0\\1\\0\\2\"..., 16384}], msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 3736 \u003c0.000042\u003e\nrecvmsg(3, {msg_name(12)\u003d{sa_family\u003dAF_NETLINK, pid\u003d0, groups\u003d00000000}, msg_iov(1)\u003d[{\"\\204\\0\\0\\0\\30\\0\\2\\0\\254i\\\n202GXm\\0\\0\\2  \\0\\376\\0\\0\\1\\0\\2\"..., 16384}], msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 3740 \u003c0.000055\u003e\nrecvmsg(3, {msg_name(12)\u003d{sa_family\u003dAF_NETLINK, pid\u003d0, groups\u003d00000000}, msg_iov(1)\u003d[{\"\\234\\0\\0\\0\\30\\0\\2\\0\\254i\\\n202GXm\\0\\0\\2  \\0\\376\\0\\0\\1\\0\\2\"..., 16384}], msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 3712 \u003c0.000043\u003e\nrecvmsg(3, {msg_name(12)\u003d{sa_family\u003dAF_NETLINK, pid\u003d0, groups\u003d00000000}, msg_iov(1)\u003d[{\"\\204\\0\\0\\0\\30\\0\\2\\0\\254i\\\n202GXm\\0\\0\\2  \\0\\376\\0\\0\\1\\0\\2\"..., 16384}], msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 3732 \u003c0.000053\u003e\nrecvmsg(3, {msg_name(12)\u003d{sa_family\u003dAF_NETLINK, pid\u003d0, groups\u003d00000000}, msg_iov(1)\u003d[{\"p\\0\\0\\0\\30\\0\\2\\0\\254i\\202\nGXm\\0\\0\\2  \\0\\376\\0\\0\\2\\0\\2\\0\"..., 16384}], msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 3708 \u003c0.000052\u003e\nrecvmsg(3, {msg_name(12)\u003d{sa_family\u003dAF_NETLINK, pid\u003d0, groups\u003d00000000}, msg_iov(1)\u003d[{\"p\\0\\0\\0\\30\\0\\2\\0\\254i\\202\nGXm\\0\\0\\2  \\0\\376\\0\\0\\2\\0\\2\\0\"..., 16384}], msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 3680 \u003c0.000041\u003e\n\nwhile the part at the end of the table is more expensive:\n\nrecvmsg(3, {msg_name(12)\u003d{sa_family\u003dAF_NETLINK, pid\u003d0, groups\u003d00000000}, msg_iov(1)\u003d[{\"\\204\\0\\0\\0\\30\\0\\2\\0\\254i\\202GXm\\0\\0\\2  \\0\\376\\0\\0\\1\\0\\2\"..., 16384}], msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 3656 \u003c0.003857\u003e\nrecvmsg(3, {msg_name(12)\u003d{sa_family\u003dAF_NETLINK, pid\u003d0, groups\u003d00000000}, msg_iov(1)\u003d[{\"\\204\\0\\0\\0\\30\\0\\2\\0\\254i\\202GXm\\0\\0\\2  \\0\\376\\0\\0\\1\\0\\2\"..., 16384}], msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 3772 \u003c0.003891\u003e\nrecvmsg(3, {msg_name(12)\u003d{sa_family\u003dAF_NETLINK, pid\u003d0, groups\u003d00000000}, msg_iov(1)\u003d[{\"p\\0\\0\\0\\30\\0\\2\\0\\254i\\202GXm\\0\\0\\2  \\0\\376\\0\\0\\2\\0\\2\\0\"..., 16384}], msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 3712 \u003c0.003765\u003e\nrecvmsg(3, {msg_name(12)\u003d{sa_family\u003dAF_NETLINK, pid\u003d0, groups\u003d00000000}, msg_iov(1)\u003d[{\"p\\0\\0\\0\\30\\0\\2\\0\\254i\\202GXm\\0\\0\\2  \\0\\376\\0\\0\\2\\0\\2\\0\"..., 16384}], msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 3700 \u003c0.003879\u003e\nrecvmsg(3, {msg_name(12)\u003d{sa_family\u003dAF_NETLINK, pid\u003d0, groups\u003d00000000}, msg_iov(1)\u003d[{\"p\\0\\0\\0\\30\\0\\2\\0\\254i\\202GXm\\0\\0\\2  \\0\\376\\0\\0\\2\\0\\2\\0\"..., 16384}], msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 3676 \u003c0.003797\u003e\nrecvmsg(3, {msg_name(12)\u003d{sa_family\u003dAF_NETLINK, pid\u003d0, groups\u003d00000000}, msg_iov(1)\u003d[{\"p\\0\\0\\0\\30\\0\\2\\0\\254i\\202GXm\\0\\0\\2  \\0\\376\\0\\0\\2\\0\\2\\0\"..., 16384}], msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 3724 \u003c0.003856\u003e\nrecvmsg(3, {msg_name(12)\u003d{sa_family\u003dAF_NETLINK, pid\u003d0, groups\u003d00000000}, msg_iov(1)\u003d[{\"\\234\\0\\0\\0\\30\\0\\2\\0\\254i\\202GXm\\0\\0\\2  \\0\\376\\0\\0\\1\\0\\2\"..., 16384}], msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 3736 \u003c0.003848\u003e\n\nThe following patch corrects this performance/latency problem,\nremoving quadratic behavior.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "56c99d0415e8b778c200f115b198c126243ec351",
      "tree": "0e8c15e26681fbcaf5127c8238950c2c5c58a6ac",
      "parents": [
        "7f53878dc2618bf7c01e2135bd271ac01bd85dc9"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Dec 06 02:19:07 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Dec 07 01:07:38 2007 -0800"
      },
      "message": "[IPV4]: Remove prototype of ip_rt_advice\n\nip_rt_advice has been gone, so no need to keep prototype and debug message.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7f53878dc2618bf7c01e2135bd271ac01bd85dc9",
      "tree": "9a0f0d7dcb2aba668f423b2f5392ab5ec290ec8f",
      "parents": [
        "ca46f9c834913fc5d5c196d70673375cdaba6b56"
      ],
      "author": {
        "name": "Mitsuru Chinen",
        "email": "mitch@linux.vnet.ibm.com",
        "time": "Fri Dec 07 01:07:24 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 07 01:07:24 2007 -0800"
      },
      "message": "[IPv4]: Reply net unreachable ICMP message\n\nIPv4 stack doesn\u0027t reply any ICMP destination unreachable message\nwith net unreachable code when IP detagrams are being discarded\nbecause of no route could be found in the forwarding path.\nIncidentally, IPv6 stack replies such ICMPv6 message in the similar\nsituation.\n\nSigned-off-by: Mitsuru Chinen \u003cmitch@linux.vnet.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "483b23ffa3a5f44767038b0a676d757e0668437e",
      "tree": "0d3e90fba6499af90077e01ba3c4da48a7c9b1d8",
      "parents": [
        "b242e891c218162cfbae064b1a9136cdbed5ee53"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Nov 16 02:29:24 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Nov 18 18:47:38 2007 -0800"
      },
      "message": "[NET]: Corrects a bug in ip_rt_acct_read()\n\nIt seems that stats of cpu 0 are counted twice, since\nfor_each_possible_cpu() is looping on all possible cpus, including 0\n\nBefore percpu conversion of ip_rt_acct, we should also remove the\nassumption that CPU 0 is online (or even possible)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d90bf5a976793edfa88d3bb2393f0231eb8ce1e5",
      "tree": "c664096ffb1f34413ef57e906b38a255bf57edd0",
      "parents": [
        "66ba886254edbbd9442d30f1eef6f6fb0145027d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Nov 14 16:14:05 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 14 16:14:05 2007 -0800"
      },
      "message": "[NET]: rt_check_expire() can take a long time, add a cond_resched()\n\nOn commit 39c90ece7565f5c47110c2fa77409d7a9478bd5b:\n\n\t[IPV4]: Convert rt_check_expire() from softirq processing to workqueue.\n\nwe converted rt_check_expire() from softirq to workqueue, allowing the\nfunction to perform all work it was supposed to do.\n\nWhen the IP route cache is big, rt_check_expire() can take a long time\nto run.  (default settings : 20% of the hash table is scanned at each\ninvocation)\n\nAdding cond_resched() helps giving cpu to higher priority tasks if\nnecessary.\n\nUsing a \"if (need_resched())\" test before calling \"cond_resched();\" is\nnecessary to avoid spending too much time doing the resched check.\n(My tests gave a time reduction from 88 ms to 25 ms per\nrt_check_expire() run on my i686 test machine)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "03f49f345749abc08bc84b835433c94eea6e972b",
      "tree": "8fad6fef152adaa473e2ab3a824cb04fe98b3bf1",
      "parents": [
        "b1667609cd9a98ce32559e06f36fca54c775a51f"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sat Nov 10 21:28:34 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 10 21:28:34 2007 -0800"
      },
      "message": "[NET]: Make helper to get dst entry and \"use\" it\n\nThere are many places that get the dst entry, increase the\n__use counter and set the \"lastuse\" time stamp.\n\nMake a helper for this.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b1667609cd9a98ce32559e06f36fca54c775a51f",
      "tree": "4e3c5aa7add5c67434f3123723be0aff5fb6f9c2",
      "parents": [
        "fbd52eb2bd17bd3468974aa2fdce140f0cd32fc7"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sat Nov 10 21:26:41 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 10 21:26:41 2007 -0800"
      },
      "message": "[IPV4]: Remove bugus goto-s from ip_route_input_slow\n\nBoth places look like\n\n        if (err \u003d\u003d XXX) \n               goto yyy;\n   done:\n\nwhile both yyy targets look like\n\n        err \u003d XXX;\n        goto done;\n\nso this is ok to remove the above if-s.\n\nyyy labels are used in other places and are not removed.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf7732e4cc14b56d593ff53352673e1fd5e3ba52",
      "tree": "3479e278b72f9d535a58066bc2a26238806252ce",
      "parents": [
        "39699037a5c94d7cd1363dfe48a50c78c643fd9a"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Oct 10 02:29:29 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:55:33 2007 -0700"
      },
      "message": "[NET]: Make core networking code use seq_open_private\n\nThis concerns the ipv4 and ipv6 code mostly, but also the netlink\nand unix sockets.\n\nThe netlink code is an example of how to use the __seq_open_private()\ncall - it saves the net namespace on this private.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cfcabdcc2d5a810208e5bb3974121b7ed60119aa",
      "tree": "1aed711eeecc5a303b57f1fc47e1b5746e8a72c2",
      "parents": [
        "de83c058af25aa97ed4864abab11e90e8dead6e2"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Tue Oct 09 01:59:42 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:48 2007 -0700"
      },
      "message": "[NET]: sparse warning fixes\n\nFix a bunch of sparse warnings. Mostly about 0 used as\nNULL pointer, and shadowed variable declarations.\nOne notable case was that hash size should have been unsigned.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2774c7aba6c97a2535be3309a2209770953780b3",
      "tree": "9327c795707f6d723c6395c31e1c060e70b5e0db",
      "parents": [
        "0cc217e16cb8ca8ef2544363571fce94259900e0"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Sep 26 22:10:56 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:49 2007 -0700"
      },
      "message": "[NET]: Make the loopback device per network namespace.\n\nThis patch makes loopback_dev per network namespace.  Adding\ncode to create a different loopback device for each network\nnamespace and adding the code to free a loopback device\nwhen a network namespace exits.\n\nThis patch modifies all users the loopback_dev so they\naccess it as init_net.loopback_dev, keeping all of the\ncode compiling and working.  A later pass will be needed to\nupdate the users to use something other than the initial network\nnamespace.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "de3cb747ffac5f2a4a6bb156e7e2fd5229e688e5",
      "tree": "fe79764b8093843934c9b9f82f573e7a92cef406",
      "parents": [
        "556829657397b9b05baec6691ead4e22ee8d1567"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "dlezcano@fr.ibm.com",
        "time": "Tue Sep 25 19:16:28 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:14 2007 -0700"
      },
      "message": "[NET]: Dynamically allocate the loopback device, part 1.\n\nThis patch replaces all occurences to the static variable\nloopback_dev to a pointer loopback_dev. That provides the\nmindless, trivial, uninteressting change part for the dynamic\nallocation for the loopback.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nAcked-By: Kirill Korotaev \u003cdev@sw.ru\u003e\nAcked-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "39c90ece7565f5c47110c2fa77409d7a9478bd5b",
      "tree": "220bf734ed470024901226675550501d45192f0e",
      "parents": [
        "dac24ab396fc92985060d5cb3c467d2d0ffc0c20"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sat Sep 15 10:55:54 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:25 2007 -0700"
      },
      "message": "[IPV4]: Convert rt_check_expire() from softirq processing to workqueue.\n\nOn loaded/big hosts, rt_check_expire() if of litle use, because it\ngenerally breaks out of its main loop because of a jiffies change.\n\nIt can take a long time (read : timer invocations) to actually\nscan the whole hash table, freeing unused entries.\n\nConverting it to use a workqueue instead of softirq is a nice\nmove because we can allow rt_check_expire() to do the scan\nit is supposed to do, without hogging the CPU.\n\nThis has an impact on the average number of entries in cache,\nreducing ram usage. Cache is more responsive to parameter\nchanges (/proc/sys/net/ipv4/route/gc_timeout and\n/proc/sys/net/ipv4/route/gc_interval)\n\nNote: Maybe the default value of gc_interval (60 seconds)\nis too high, since this means we actually need 5 (300/60)\ninvocations to scan the whole table.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "881d966b48b035ab3f3aeaae0f3d3f9b584f45b2",
      "tree": "c579d59a4107cbbe9e2b85939bc0d496b815c887",
      "parents": [
        "b4b510290b056b86611757ce1175a230f1080f53"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Sep 17 11:56:21 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:10 2007 -0700"
      },
      "message": "[NET]: Make the device list and device lookups per namespace.\n\nThis patch makes most of the generic device layer network\nnamespace safe.  This patch makes dev_base_head a\nnetwork namespace variable, and then it picks up\na few associated variables.  The functions:\ndev_getbyhwaddr\ndev_getfirsthwbytype\ndev_get_by_flags\ndev_get_by_name\n__dev_get_by_name\ndev_get_by_index\n__dev_get_by_index\ndev_ioctl\ndev_ethtool\ndev_load\nwireless_process_ioctl\n\nwere modified to take a network namespace argument, and\ndeal with it.\n\nvlan_ioctl_set and brioctl_set were modified so their\nhooks will receive a network namespace argument.\n\nSo basically anthing in the core of the network stack that was\naffected to by the change of dev_base was modified to handle\nmultiple network namespaces.  The rest of the network stack was\nsimply modified to explicitly use \u0026init_net the initial network\nnamespace.  This can be fixed when those components of the network\nstack are modified to handle multiple network namespaces.\n\nFor now the ifindex generator is left global.\n\nFundametally ifindex numbers are per namespace, or else\nwe will have corner case problems with migration when\nwe get that far.\n\nAt the same time there are assumptions in the network stack\nthat the ifindex of a network device won\u0027t change.  Making\nthe ifindex number global seems a good compromise until\nthe network stack can cope with ifindex changes when\nyou change namespaces, and the like.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "457c4cbc5a3dde259d2a1f15d5f9785290397267",
      "tree": "a2ceee88780cbce27433b9a4434b3e9251efd81a",
      "parents": [
        "07feaebfcc10cd35e745c7073667935246494bee"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Sep 12 12:01:34 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:06 2007 -0700"
      },
      "message": "[NET]: Make /proc/net per network namespace\n\nThis patch makes /proc/net per network namespace.  It modifies the global\nvariables proc_net and proc_net_stat to be per network namespace.\nThe proc_net file helpers are modified to take a network namespace argument,\nand all of their callers are fixed to pass \u0026init_net for that argument.\nThis ensures that all of the /proc/net files are only visible and\nusable in the initial network namespace until the code behind them\nhas been updated to be handle multiple network namespaces.\n\nMaking /proc/net per namespace is necessary as at least some files\nin /proc/net depend upon the set of network devices which is per\nnetwork namespace, and even more files in /proc/net have contents\nthat are relevant to a single network namespace.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1bcabbdb0bdfe8b15b05150a7857646430aaa7f8",
      "tree": "6a6534c8ac22ab69498c85dc02d07ef1206e2e11",
      "parents": [
        "4487b2f657a4d204c35a7afaa45fc8569c9069ca"
      ],
      "author": {
        "name": "Mariusz Kozlowski",
        "email": "m.kozlowski@tuxland.pl",
        "time": "Wed Aug 01 21:54:27 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Aug 02 19:42:27 2007 -0700"
      },
      "message": "[IPV4] route.c: mostly kmalloc + memset conversion to k[cz]alloc\n\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "4839c52b01ca91be1c62761e08fb3deb3881e857",
      "tree": "21bc1e568bc76b7556816d995fdf6b3304511eab",
      "parents": [
        "6b25d30bf112370a12d05c3c0fd43732985dab01"
      ],
      "author": {
        "name": "Philippe De Muyter",
        "email": "phdm@macqel.be",
        "time": "Mon Jul 09 15:32:57 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:19:04 2007 -0700"
      },
      "message": "[IPV4]: Make ip_tos2prio const.\n\nSigned-off-by: Philippe De Muyter \u003cphdm@macqel.be\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e06e7c615877026544ad7f8b309d1a3706410383",
      "tree": "eb087b49279e6db492039a5d684ca9acb13265a3",
      "parents": [
        "4eb6bf6bfb580afaf1e1a1d30cba17a078530cf4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Jun 10 17:22:39 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:05:57 2007 -0700"
      },
      "message": "[IPV4]: The scheduled removal of multipath cached routing support.\n\nWith help from Chris Wedgwood.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "42f811b8bcdf6695bf74de580b1daf53445e8949",
      "tree": "c7c9dd321c63eb24c5d41488b47b7178c6c9b572",
      "parents": [
        "8d76527e728d00d1cf9d5dd663caffb2dcf05ae6"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jun 04 23:34:44 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Jun 07 13:39:13 2007 -0700"
      },
      "message": "[IPV4]: Convert IPv4 devconf to an array\n\nThis patch converts the ipv4_devconf config members (everything except\nsysctl) to an array.  This allows easier manipulation which will be\nneeded later on to provide better management of default config values.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "14e50e57aedb2a89cf79b77782879769794cab7b",
      "tree": "46cbdab9c8007cea0821294c9d397214b38ea4c8",
      "parents": [
        "04efb8787e4d8a7b21a61aeb723de33154311256"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu May 24 18:17:54 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu May 24 18:17:54 2007 -0700"
      },
      "message": "[XFRM]: Allow packet drops during larval state resolution.\n\nThe current IPSEC rule resolution behavior we have does not work for a\nlot of people, even though technically it\u0027s an improvement from the\n-EAGAIN buisness we had before.\n\nRight now we\u0027ll block until the key manager resolves the route.  That\nworks for simple cases, but many folks would rather packets get\nsilently dropped until the key manager resolves the IPSEC rules.\n\nWe can\u0027t tell these folks to \"set the socket non-blocking\" because\nthey don\u0027t have control over the non-block setting of things like the\nsockets used to resolve DNS deep inside of the resolver libraries in\nlibc.\n\nWith that in mind I coded up the patch below with some help from\nHerbert Xu which provides packet-drop behavior during larval state\nresolution, controllable via sysctl and off by default.\n\nThis lays the framework to either:\n\n1) Make this default at some point or...\n\n2) Move this logic into xfrm{4,6}_policy.c and implement the\n   ARP-like resolution queue we\u0027ve all been dreaming of.\n   The idea would be to queue packets to the policy, then\n   once the larval state is resolved by the key manager we\n   re-resolve the route and push the packets out.  The\n   packets would timeout if the rule didn\u0027t get resolved\n   in a certain amount of time.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6c5d736af6bc71cebc017e4001ec5efff1ee116",
      "tree": "96241c8e1f117898d3ca86f86a57bc1a17ee9143",
      "parents": [
        "d739437207064cdcea8f9c81442284106cbcb67f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri May 18 02:07:50 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri May 18 02:07:50 2007 -0700"
      },
      "message": "[IPV4]: Remove IPVS icmp hack from route.c for now.\n\nRevert: 2d771cd86d4c3af26f34a7bcdc1b87696824cad9\n\nThis is dangerous if enabled and a better solution to the\nproblem is being worked on.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2d771cd86d4c3af26f34a7bcdc1b87696824cad9",
      "tree": "dcc026c42253c82d95167e22e658e163f1963db6",
      "parents": [
        "fa0b2d1d2196dd46527a8d028797e2bca5930a92"
      ],
      "author": {
        "name": "Janusz Krzysztofik",
        "email": "jkrzyszt@tis.icnet.pl",
        "time": "Mon Mar 26 18:03:44 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:15 2007 -0700"
      },
      "message": "[IPV4] LVS: Allow to send ICMP unreachable responses when real-servers are removed\n\nthis is a small patch by Janusz Krzysztofik to ip_route_output_slow()\nthat allows VIP-less LVS linux director to generate packets\noriginating \u003eFrom VIP if sysctl_ip_nonlocal_bind is set.\n\nIn a nutshell, the intention is for an LVS linux director to be able\nto send ICMP unreachable responses to end-users when real-servers are\nremoved.\n\nhttp://archive.linuxvirtualserver.org/html/lvs-users/2007-01/msg00106.html\n\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "63f3444fb9a54c024d55f1205f8b94e7d2786595",
      "tree": "41cde0c702a2b4400a34f02380eb3baf1cc72a2b",
      "parents": [
        "9d9e6a5819230b5a5cc036f213135cb123ab1e50"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Mar 22 11:55:17 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:08 2007 -0700"
      },
      "message": "[IPv4]: Use rtnl registration interface\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eddc9ec53be2ecdbf4efe0efd4a83052594f0ac0",
      "tree": "4a38ab4dbd9d61fdf5a5ea6ed61463e0b9e33ba7",
      "parents": [
        "e023dd643798c4f06c16466af90b4d250e4b8bd7"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Apr 20 22:47:35 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:10 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce ip_hdr(), remove skb-\u003enh.iph\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f690808e17925fc45217eb22e8670902ecee5c1b",
      "tree": "ba677dd86988f4c77a728cc7408c21967e59400c",
      "parents": [
        "6b2bedc3a659ba228a93afc8e3f008e152abf18a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Mon Mar 12 14:34:29 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:03 2007 -0700"
      },
      "message": "[NET]: make seq_operations const\n\nThe seq_file operations stuff can be marked constant to\nget it out of dirty cache.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1d2bbe1cd6c7bbdc6d532cefebb66c7efb789ce",
      "tree": "03a715961ba576a11cbc0e91c5d465e4c4d95d82",
      "parents": [
        "57effc70a5be9f7804e9a99964eb7265367effca"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 10 20:45:18 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:46 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_reset_network_header(skb)\n\nFor the common, open coded \u0027skb-\u003enh.raw \u003d skb-\u003edata\u0027 operation, so that we can\nlater turn skb-\u003enh.raw into a offset, reducing the size of struct sk_buff in\n64bit land while possibly keeping it as a pointer on 32bit.\n\nThis one touches just the most simple case, next will handle the slightly more\n\"complex\" cases.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "98e399f82ab3a6d863d1d4a7ea48925cc91c830e",
      "tree": "5f84043aeec1ec27c2e8e6cc25b5d2e6c3d07343",
      "parents": [
        "31713c333ddbb66d694829082620b69b71c4b09a"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 19 15:33:04 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:41 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_mac_header()\n\nFor the places where we need a pointer to the mac header, it is still legal to\ntouch skb-\u003emac.raw directly if just adding to, subtracting from or setting it\nto another layer header.\n\nThis one also converts some more cases to skb_reset_mac_header() that my\nregex missed as it had no spaces before nor after \u0027\u003d\u0027, ugh.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "459a98ed881802dee55897441bc7f77af614368e",
      "tree": "b81f76632d8f2e21eb91ec3d885091a98398d93e",
      "parents": [
        "4c13eb6657fe9ef7b4dc8f1a405c902e9e5234e0"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 19 15:30:44 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:32 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_reset_mac_header(skb)\n\nFor the common, open coded \u0027skb-\u003emac.raw \u003d skb-\u003edata\u0027 operation, so that we can\nlater turn skb-\u003emac.raw into a offset, reducing the size of struct sk_buff in\n64bit land while possibly keeping it as a pointer on 32bit.\n\nThis one touches just the most simple case, next will handle the slightly more\n\"complex\" cases.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d729f72dca9406025bcfa9c1f660d71d9ef0ff5",
      "tree": "69a3ca50c6e266853676a545a113f13f254ae535",
      "parents": [
        "39df232f1a9ba48d41c68ee7d4046756e709cf91"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sun Mar 04 16:12:44 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:32 2007 -0700"
      },
      "message": "[NET]: Convert xtime.tv_sec to get_seconds()\n\nWhere appropriate, convert references to xtime.tv_sec to the\nget_seconds() helper function.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cd354f1ae75e6466a7e31b727faede57a1f89ca5",
      "tree": "09a2da1672465fefbc7fe06ff4e6084f1dd14c6b",
      "parents": [
        "3fc605a2aa38899c12180ca311f1eeb61a6d867e"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Wed Feb 14 00:33:14 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 14 08:09:54 2007 -0800"
      },
      "message": "[PATCH] remove many unneeded #includes of sched.h\n\nAfter Al Viro (finally) succeeded in removing the sched.h #include in module.h\nrecently, it makes sense again to remove other superfluous sched.h includes.\nThere are quite a lot of files which include it but don\u0027t actually need\nanything defined in there.  Presumably these includes were once needed for\nmacros that used to live in sched.h, but moved to other header files in the\ncourse of cleaning it up.\n\nTo ease the pain, this time I did not fiddle with any header files and only\nremoved #includes from .c-files, which tend to cause less trouble.\n\nCompile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,\narm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,\nallmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all\nconfigs in arch/arm/configs on arm.  I also checked that no new warnings were\nintroduced by the patch (actually, some warnings are removed that were emitted\nby unnecessarily included header files).\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a32144e9d7b4e21341174b1a83b82a82353be86",
      "tree": "6f08560b341418fc9934f56f6162a95f5b5d8aec",
      "parents": [
        "00977a59b951207d38380c75f03a36829950265c"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:35 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:46 2007 -0800"
      },
      "message": "[PATCH] mark struct file_operations const 7\n\nMany struct file_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "093c2ca4167cf66f69020329d14138da0da8599b",
      "tree": "7bae584ac848923867037324197068c869b62a46",
      "parents": [
        "75ce7ceaa1221858c0163e75d19eb8a423a212ff"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Feb 09 16:19:26 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Feb 10 23:20:38 2007 -0800"
      },
      "message": "[IPV4]: Convert ipv4 route to use the new dst_entry \u0027next\u0027 pointer\n\nThis patch removes the rt_next pointer from \u0027struct rtable.u\u0027 union,\nand renames u.rt_next to u.dst_rt_next.\n\nIt also moves \u0027struct flowi\u0027 right after \u0027struct dst_entry\u0027 to prepare\nthe gain on lookups.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e905a9edab7f4f14f9213b52234e4a346c690911",
      "tree": "9e52a5f47eec47c5685c347ff7af22290a10305b",
      "parents": [
        "642656518b2e64fd59d9bbd15b6885cac5fe99b1"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Fri Feb 09 23:24:47 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Feb 10 23:19:39 2007 -0800"
      },
      "message": "[NET] IPV4: Fix whitespace errors.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "26932566a42d46aee7e5d526cb34fba9380cad10",
      "tree": "3991d9209ddf2454ba4c71daccdc33951811dcf1",
      "parents": [
        "2cf6c36cb46d69057db2ebae0d8ec352e065f48b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 31 23:16:40 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Feb 08 12:38:41 2007 -0800"
      },
      "message": "[NETLINK]: Don\u0027t BUG on undersized allocations\n\nCurrently netlink users BUG when the allocated skb for an event\nnotification is undersized. While this is certainly a kernel bug,\nits not critical and crashing the kernel is too drastic, especially\nwhen considering that these errors have appeared multiple times in\nthe past and it BUGs even if no listeners are present.\n\nThis patch replaces BUG by WARN_ON and changes the notification\nfunctions to inform potential listeners of undersized allocations\nusing a unique error code (EMSGSIZE).\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "14fb8a764786e37ac26a2175638115f21980e5a3",
      "tree": "eeb7d81d53a557ab827a735e8c6d6c5901633a0c",
      "parents": [
        "a9fc00cca8327dba3ec2a6c727f4b5b1c449f2a2"
      ],
      "author": {
        "name": "Li Yewang",
        "email": "lyw@nanjing-fnst.com",
        "time": "Mon Dec 18 00:26:35 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 18 00:26:35 2006 -0800"
      },
      "message": "[IPV4]: Fix BUG of ip_rt_send_redirect()\n\nFix the redirect packet of the router if the jiffies wraparound.\n\nSigned-off-by: Li Yewang \u003clyw@nanjing-fnst.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1f29bcd739972f71f2fd5d5d265daf3e1208fa5e",
      "tree": "96e20e4d0a077d813d8625d6919aba9bd0b5ed13",
      "parents": [
        "98d7340c360993fdd703609ff7462051e03cc2fb"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Dec 10 02:19:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:55:41 2006 -0800"
      },
      "message": "[PATCH] sysctl: remove unused \"context\" param\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b6651f1bf2453d593478aa88af267f057fd73e2",
      "tree": "a5454f81737d7fb162c10b314c3458f1919e509a",
      "parents": [
        "170b828a31bbeaee3a80a05acefe3596e38f09e0"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Dec 04 19:59:00 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Dec 06 18:38:43 2006 -0800"
      },
      "message": "[XFRM]: Use output device disable_xfrm for forwarded packets\n\nCurrently the behaviour of disable_xfrm is inconsistent between\nlocally generated and forwarded packets. For locally generated\npackets disable_xfrm disables the policy lookup if it is set on\nthe output device, for forwarded traffic however it looks at the\ninput device. This makes it impossible to disable xfrm on all\ndevices but a dummy device and use normal routing to direct\ntraffic to that device.\n\nAlways use the output device when checking disable_xfrm.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e3703b3de1f049b38733ba520e5038f23063068e",
      "tree": "3566516bc8b87c8c8d78b0c3287761c8e2f49a2b",
      "parents": [
        "4e9b82693542003b028c8494e9e3c49615b91ce7"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Mon Nov 27 09:27:07 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:30:44 2006 -0800"
      },
      "message": "[RTNETLINK]: Add rtnl_put_cacheinfo() to unify some code\n\nIPv4, IPv6, and DECNet all use struct rta_cacheinfo in a similiar\nway, therefore rtnl_put_cacheinfo() is added to reuse code.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "714e85be3557222bc25f69c252326207c900a7db",
      "tree": "cb59a6d0a94245dc8575507386af1be31dd7fad9",
      "parents": [
        "252e33467a3b016f20dd8df12269cef3b167f21e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 14 20:51:49 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:50 2006 -0800"
      },
      "message": "[IPV6]: Assorted trivial endianness annotations.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "47dcf0cb1005e86d0eea780f2984b2e7490f63cd",
      "tree": "1a56767a77e219fab54ab1daf34342745f6d62a8",
      "parents": [
        "82e91ffef60e6eba9848fe149ce1eecd2b5aef12"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Nov 09 15:20:38 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:21:39 2006 -0800"
      },
      "message": "[NET]: Rethink mark field in struct flowi\n\nNow that all protocols have been made aware of the mark\nfield it can be moved out of the union thus simplyfing\nits usage.\n\nThe config options in the IPv4/IPv6/DECnet subsystems\nto enable respectively disable mark based routing only\nobfuscate the code with ifdefs, the cost for the\nadditional comparison in the flow key is insignificant,\nand most distributions have all these options enabled\nby default anyway. Therefore it makes sense to remove\nthe config options and enable mark based routing by\ndefault.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "82e91ffef60e6eba9848fe149ce1eecd2b5aef12",
      "tree": "9ccc6a518a1f678ae15cfb3a59c05127286cff96",
      "parents": [
        "0afc46c4683df512eef34a71a85065dc555c2af2"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Nov 09 15:19:14 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:21:38 2006 -0800"
      },
      "message": "[NET]: Turn nfmark into generic mark\n\nnfmark is being used in various subsystems and has become\nthe defacto mark field for all kinds of packets. Therefore\nit makes sense to rename it to `mark\u0027 and remove the\ndependency on CONFIG_NETFILTER.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8238b218ec883adb44d710960a031c76105274cd",
      "tree": "09880b229d0090298f30bf0168a4702bbc0e918a",
      "parents": [
        "42b6785eeb40fe3e9dab9981b6e3231a77c7c2f6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Oct 12 00:49:15 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Oct 12 00:49:15 2006 -0700"
      },
      "message": "[NET]: Do not memcmp() over pad bytes of struct flowi.\n\nThey are not necessarily initialized to zero by the compiler,\nfor example when using run-time initializers of automatic\non-stack variables.\n\nNoticed by Eric Dumazet and Patrick McHardy.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "17fb2c64394a2d5106540d69fc83c183ee7c206e",
      "tree": "cfc528dd1dde8a711c63b9b05b2e6d2370d5b2ba",
      "parents": [
        "e448515c79c3785eae225c25e8cd5b90b470d0a6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 26 22:15:25 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 28 17:54:16 2006 -0700"
      },
      "message": "[IPV4]: RTA_{DST,SRC,GATEWAY,PREFSRC} annotated\n\nthese are passed net-endian; use be32 netlink accessors\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e448515c79c3785eae225c25e8cd5b90b470d0a6",
      "tree": "193578af763e2664df698352f59cb69ba68def62",
      "parents": [
        "00012e5bb9527022cbc843c5d372b282dbe6c4af"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 26 22:15:01 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 28 17:54:15 2006 -0700"
      },
      "message": "[IPV4] net/ipv4/route.c: trivial endianness annotations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d9c9df8c9368f4102324e8c3923edae83974602b",
      "tree": "11b1df675c261c5fe9ea84e954de276905d6ec40",
      "parents": [
        "a61ced5d1c2e773620d7855ea2009d770c10a6e6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 26 21:28:14 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 28 17:54:09 2006 -0700"
      },
      "message": "[IPV4]: fib_validate_source() annotations\n\nannotated arguments and inferred net-endian variables in callers\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a61ced5d1c2e773620d7855ea2009d770c10a6e6",
      "tree": "ca9d49774eb4740a60e5338d4da51af1c8c862d6",
      "parents": [
        "011a92610826bdeec4b80ab423958d4c512639f6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 26 21:27:54 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 28 17:54:08 2006 -0700"
      },
      "message": "[IPV4]: inet_select_addr() annotations\n\nargument and return value are net-endian.  Annotated function and inferred\nnet-endian variables in callers.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8c7bc84085135d5cc87e9fc6802d3c7bbbb40ef5",
      "tree": "9411e9f05014223c84c9e18de09e8a734507846c",
      "parents": [
        "f7655229c06d041323b40bd6eb9f95ca0ce95506"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 26 21:26:19 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 28 17:54:04 2006 -0700"
      },
      "message": "[IPV4]: annotate rt_hash_code() users\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f7655229c06d041323b40bd6eb9f95ca0ce95506",
      "tree": "55dd35d7a70a8e2041b79f76f9122d89b1c1d2c4",
      "parents": [
        "9e12bb22e32389b41222c9d9fb55724fed83a038"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 26 21:25:43 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 28 17:54:03 2006 -0700"
      },
      "message": "[IPV4]: ip_rt_redirect() annotations\n\nThe first 4 arguments of ip_rt_redirect() are net-endian.  Annotated.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9e12bb22e32389b41222c9d9fb55724fed83a038",
      "tree": "8961158286de30363fe3a4c2be25d1d4c89168b2",
      "parents": [
        "046d033148e6936ee2466d38214cf0743a210f39"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 26 21:25:20 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 28 17:54:02 2006 -0700"
      },
      "message": "[IPV4]: ip_route_input() annotations\n\nip_route_input() takes net-endian source and destination address.\n* Annotated as such.\n* arguments of its invocations annotated where needed.\n* local helpers getting the same values passed to by it (ip_route_input_mc(),\nip_route_input_slow(), ip_handle_martian_source(), ip_mkroute_input(),\nip_mkroute_input_def(), __mkroute_input()) annotated\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e5d679f33900c71d1a76ba07c5b04055abd34480",
      "tree": "fb581f7156870056dbb91feaab9d3dd22fdcf61e",
      "parents": [
        "ff5dfe736dd9f6c74b206aa77c0465dfd503bdb9"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Aug 26 19:25:52 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 15:18:19 2006 -0700"
      },
      "message": "[NET]: Use SLAB_PANIC\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d889ce3b29e55b91257964b4c9aac70b91fedd91",
      "tree": "6d9250959b3cf33ceae6fcd90f34a12315bddb1c",
      "parents": [
        "be403ea1856f1428b5912b42184acbba808c41d6"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Aug 17 18:15:44 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 14:55:06 2006 -0700"
      },
      "message": "[IPv4]: Convert route get to new netlink api\n\nFixes various unvalidated netlink attributes causing memory\ncorruptions when left empty by userspace applications.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "be403ea1856f1428b5912b42184acbba808c41d6",
      "tree": "53b7ae4a3d07dd6bcf84f01963aaa32dba2b3a45",
      "parents": [
        "4e902c57417c4c285b98ba2722468d1c3ed83d1b"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Aug 17 18:15:17 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 14:55:05 2006 -0700"
      },
      "message": "[IPv4]: Convert FIB dumping to use new netlink api\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2942e90050569525628a9f34e0daaa9b661b49cc",
      "tree": "fc6acc11514e64ff9efc31bdc1bb458232206642",
      "parents": [
        "f8d8fda54a1bfcf8cf829e44c494b2b4582819aa"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Tue Aug 15 00:30:25 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 14:54:48 2006 -0700"
      },
      "message": "[RTNETLINK]: Use rtnl_unicast() for rtnetlink unicasts\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9e762a4a89b302cb3b26a1f9bb33eff459eaeca9",
      "tree": "4be606cc6bfe097beac3aeeea32b4adc107409b7",
      "parents": [
        "2dfe55b47e3d66ded5a84caf71e0da5710edf48b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Aug 10 23:09:48 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 14:54:25 2006 -0700"
      },
      "message": "[NET]: Introduce RTA_TABLE/FRA_TABLE attributes\n\nIntroduce RTA_TABLE route attribute and FRA_TABLE routing rule attribute\nto hold 32 bit routing table IDs. Usespace compatibility is provided by\ncontinuing to accept and send the rtm_table field, but because of its\nlimited size it can only carry the low 8 bits of the table ID. This\nimplies that if larger IDs are used, _all_ userspace programs using them\nneed to use RTA_TABLE.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d1502de27c46b365b5c86e17d173083d3d6c9ac",
      "tree": "e2fa9cebe61e08aaf65d0457c48347cc67716609",
      "parents": [
        "8b5cc5ef40c83c6ea4c90b203bb2c8b17edfa11b"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Mon Aug 07 20:44:22 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 07 20:44:22 2006 -0700"
      },
      "message": "[IPV4]: Limit rt cache size properly.\n\nFrom: Kirill Korotaev \u003cdev@sw.ru\u003e\n\nDuring OpenVZ stress testing we found that UDP traffic with random src\ncan generate too much excessive rt hash growing leading finally to OOM\nand kernel panics.\n\nIt was found that for 4GB i686 system (having 1048576 total pages and\n  225280 normal zone pages) kernel allocates the following route hash:\nsyslog: IP route cache hash table entries: 262144 (order: 8, 1048576\nbytes) \u003d\u003e ip_rt_max_size \u003d 4194304 entries, i.e.  max rt size is\n4194304 * 256b \u003d 1Gb of RAM \u003e normal_zone\n\nAttached the patch which removes HASH_HIGHMEM flag from\nalloc_large_system_hash() call.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d71740c56a9058acc4378504a356d543ff1308b",
      "tree": "f8be30892b75e7194b121d76adb9847d069f1759",
      "parents": [
        "792d1932e319ff8ba01361e7d151b1794c55c31f"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Jul 30 20:43:36 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Aug 02 13:38:21 2006 -0700"
      },
      "message": "[NET]: Core net changes to generate netevents\n\nGenerate netevents for:\n- neighbour changes\n- routing redirects\n- pmtu changes\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: Steve Wise \u003cswise@opengridcomputing.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6205120044bb75ca06019491d1aa0e727fdd35be",
      "tree": "6e770ddc5a4ac3ff44977fde863046921394863a",
      "parents": [
        "a0f1ccfd8d37457a6d8a9e01acebeefcdfcc306e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:05 2006 -0700"
      },
      "message": "[PATCH] lockdep: fix RT_HASH_LOCK_SZ\n\nOn lockdep we have a quite big spinlock_t, so keep the size down.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8a25d5debff2daee280e83e09d8c25d67c26a972",
      "tree": "3bccfef9acb66fc62863bfd6c16493c5e8c8e394",
      "parents": [
        "4ea2176dfa714882e88180b474e4cbcd888b70af"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:04 2006 -0700"
      },
      "message": "[PATCH] lockdep: prove spinlock rwlock locking correctness\n\nUse the lock validator framework to prove spinlock and rwlock locking\ncorrectness.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "bfe5d834195b3089b8846577311340376cc0f450",
      "tree": "52470de0fe87ff8372700e3472735cd5c14cee9d",
      "parents": [
        "6ceab8a936c302c0cea2bfe55617c76e2f5746fa"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Sun Jun 25 05:47:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:01 2006 -0700"
      },
      "message": "[PATCH] Define __raw_get_cpu_var and use it\n\nThere are several instances of per_cpu(foo, raw_smp_processor_id()), which\nis semantically equivalent to __get_cpu_var(foo) but without the warning\nthat smp_processor_id() can give if CONFIG_DEBUG_PREEMPT is enabled.  For\nthose architectures with optimized per-cpu implementations, namely ia64,\npowerpc, s390, sparc64 and x86_64, per_cpu() turns into more and slower\ncode than __get_cpu_var(), so it would be preferable to use __get_cpu_var\non those platforms.\n\nThis defines a __raw_get_cpu_var(x) macro which turns into per_cpu(x,\nraw_smp_processor_id()) on architectures that use the generic per-cpu\nimplementation, and turns into __get_cpu_var(x) on the architectures that\nhave an optimized per-cpu implementation.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d2c962b8530b84f4e035df8ade7e35f353a57cbe",
      "tree": "5cd3e1a27642f59caea6dd8dbfd3c5461a972e0c",
      "parents": [
        "c19f7a9e1ac45b57375d51f033b02deca50f4d3f"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Mon Apr 17 17:27:11 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 17 17:27:11 2006 -0700"
      },
      "message": "[IPV4]: ip_route_input panic fix\n\nThis fixes http://bugzilla.kernel.org/show_bug.cgi?id\u003d6388\nThe bug is caused by ip_route_input dereferencing skb-\u003enh.protocol of\nthe dummy skb passed dow from inet_rtm_getroute (Thanks Thomas for seeing\nit). It only happens if the route requested is for a multicast IP\naddress.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f912042256c12b0927438122594f5379b364f5d",
      "tree": "c11949814057b356d5896e7f025ec15132dbff78",
      "parents": [
        "dd7ba3b8b15f9c65366986d723ae83254d8d78b7"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Apr 10 22:52:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:31 2006 -0700"
      },
      "message": "[PATCH] for_each_possible_cpu: network codes\n\nfor_each_cpu() actually iterates across all possible CPUs.  We\u0027ve had mistakes\nin the past where people were using for_each_cpu() where they should have been\niterating across only online or present CPUs.  This is inefficient and\npossibly buggy.\n\nWe\u0027re renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the\nfuture.\n\nThis patch replaces for_each_cpu with for_each_possible_cpu under /net\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cef2685e0053945ea0f3c02297386b040f486ea7",
      "tree": "869c11f64c5e2259342c228c80e93cbbbf8e4fc1",
      "parents": [
        "b8059eadf9f4dc24bd72da71daa832a9a9899fb4"
      ],
      "author": {
        "name": "Ilia Sotnikov",
        "email": "hostcc@gmail.com",
        "time": "Sat Mar 25 01:38:55 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 25 01:38:55 2006 -0800"
      },
      "message": "[IPV4]: Aggregate route entries with different TOS values\n\nWhen we get an ICMP need-to-frag message, the original TOS value in the\nICMP payload cannot be used as a key to look up the routes to update.\nThis is because the TOS field may have been modified by routers on the\nway.  Similarly, ip_rt_redirect should also ignore the TOS as the router\nthat gave us the message may have modified the TOS value.\n\nThe patch achieves this objective by aggregating entries with different\nTOS values (but are otherwise identical) into the same bucket.  This\nmakes it easy to update them at the same time when an ICMP message is\nreceived.\n\nIn future we should use a twin-hashing scheme where teh aggregation\noccurs at the entry level.  That is, the TOS goes back into the hash\nfor normal lookups while ICMP lookups will end up with a node that\ngives us a list that contains all other route entries that differ\nonly by TOS.\n\nSigned-off-by: Ilia Sotnikov \u003chostcc@gmail.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "85259878499d6c428cba191bb4e415a250dcd75a",
      "tree": "6b9c1592f66886917b6ec09dd55f9c52eb850561",
      "parents": [
        "42cf93cd464e0df3c85d298c647411bae6d99e6e"
      ],
      "author": {
        "name": "Suresh Bhogavilli",
        "email": "sbhogavilli@verisign.com",
        "time": "Tue Feb 21 13:42:22 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Feb 23 16:10:52 2006 -0800"
      },
      "message": "[IPV4]: Fix garbage collection of multipath route entries\n\nWhen garbage collecting route cache entries of multipath routes\nin rt_garbage_collect(), entries were deleted from the hash bucket\n\u0027i\u0027 while holding a spin lock on bucket \u0027k\u0027 resulting in a system\nhang.  Delete entries, if any, from bucket \u0027k\u0027 instead.\n\nSigned-off-by: Suresh Bhogavilli \u003csbhogavilli@verisign.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dbd2915ce87e811165da0717f8e159276ebb803e",
      "tree": "81214471e4f7510d4231020cacf2a52cf43d7715",
      "parents": [
        "7eb9b2f56c9812d03ac63031869bcc42151067b1"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Jan 17 21:58:01 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 17 22:46:49 2006 -0800"
      },
      "message": "[IPV4]: RT_CACHE_STAT_INC() warning fix\n\nBUG: using smp_processor_id() in preemptible [00000001] code: rpc.statd/2408\n\nAnd it _is_ a bug, but I guess we don\u0027t care enough to add preempt_disable().\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2f970d83576cf4938fd75551c465050f6a16c33c",
      "tree": "7bb43aabfbd8afdab49549e4d56c0a15015d5995",
      "parents": [
        "8243126c5e29030bf1a3fb75187a513966dcba62"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Jan 17 02:54:36 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 02:54:36 2006 -0800"
      },
      "message": "[IPV4]: rt_cache_stat can be statically defined\n\nUsing __get_cpu_var(obj) is slightly faster than per_cpu_ptr(obj, \nraw_smp_processor_id()).\n\n1) Smaller code and memory use\nFor static and small objects, DEFINE_PER_CPU(type, object) is preferred over a \nalloc_percpu() : Better and smaller code to access them, and no extra memory \n(storing the pointer, and the percpu array of pointers)\n\nx86_64 code before patch\n\nmov    1237577(%rip),%rax        # ffffffff803e5990 \u003crt_cache_stat\u003e\nnot    %rax  # part of per_cpu machinery\nmov    %gs:0x3c,%edx # get cpu number\nmovslq %edx,%rdx # extend 32 bits cpu number to 64 bits\nmov    (%rax,%rdx,8),%rax # get the pointer for this cpu\nincl   0x38(%rax)\n\nx86_64 code after patch\n\nmov    $per_cpu__rt_cache_stat,%rdx\nmov    %gs:0x48,%rax # get percpu data offset\nincl   0x38(%rax,%rdx,1)\n\n2) False sharing avoidance for SMP :\nFor a small NR_CPUS, the array of per cpu pointers allocated in alloc_percpu() \ncan be \u003c\u003d 32 bytes. This let slab code gives a part of a cache line. If the \nother part of this 64 bytes (or 128 bytes) cache line is used by a mostly \nwritten object, we can have false sharing and expensive per_cpu_ptr() operations.\n\nSize of rt_cache_stat is 64 bytes, so this patch is not a danger of a too big \nincrease of bss (in UP mode) or static per_cpu data for SMP \n(PERCPU_ENOUGH_ROOM is currently 32768 bytes)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9b5b5cff9a6655dbb6d2e2be365bb95eec3950eb",
      "tree": "80517910c731fc48512ba9c31aa823575db405b3",
      "parents": [
        "fb29644994744a63bc57186cefa79534b5d9b5a9"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Nov 29 16:21:38 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 29 16:21:38 2005 -0800"
      },
      "message": "[NET]: Add const markers to various variables.\n\nthe patch below marks various variables const in net/; the goal is to\nmove them to the .rodata section so that they can\u0027t false-share\ncachelines with things that get written to, as well as potentially\nhelping gcc a bit with optimisations.  (these were found using a gcc\npatch to warn about such variables)\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "18955cfcb2a5d75a08e0cb297f13ccfb6904de48"
}
