)]}'
{
  "log": [
    {
      "commit": "dbbe68bb12b34f3e450da7a73c20e6fa1f85d63a",
      "tree": "10f8363cbf5e428c0cb5614959e37b67a7e0cfa2",
      "parents": [
        "7b26e5ebd8b27b0126a84ae7f9a42aa8293d6c48",
        "9fc3bbb4a752f108cf096d96640f3b548bbbce6c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 04 11:57:25 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 04 11:57:25 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "9fc3bbb4a752f108cf096d96640f3b548bbbce6c",
      "tree": "ce1f8d7a53c2a93a42e64b4148587cff0132ba6d",
      "parents": [
        "e6f26129ebbb0071016e2526036f42036ccf30e1"
      ],
      "author": {
        "name": "Joel Sing",
        "email": "jsing@google.com",
        "time": "Mon Jan 03 20:24:20 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 04 11:35:12 2011 -0800"
      },
      "message": "ipv4/route.c: respect prefsrc for local routes\n\nThe preferred source address is currently ignored for local routes,\nwhich results in all local connections having a src address that is the\nsame as the local dst address. Fix this by respecting the preferred source\naddress when it is provided for local routes.\n\nThis bug can be demonstrated as follows:\n\n # ifconfig dummy0 192.168.0.1\n # ip route show table local | grep local.*dummy0\n local 192.168.0.1 dev dummy0  proto kernel  scope host  src 192.168.0.1\n # ip route change table local local 192.168.0.1 dev dummy0 \\\n     proto kernel scope host src 127.0.0.1\n # ip route show table local | grep local.*dummy0\n local 192.168.0.1 dev dummy0  proto kernel  scope host  src 127.0.0.1\n\nWe now establish a local connection and verify the source IP\naddress selection:\n\n # nc -l 192.168.0.1 3128 \u0026\n # nc 192.168.0.1 3128 \u0026\n # netstat -ant | grep 192.168.0.1:3128.*EST\n tcp        0      0 192.168.0.1:3128        192.168.0.1:33228 ESTABLISHED\n tcp        0      0 192.168.0.1:33228       192.168.0.1:3128  ESTABLISHED\n\nSigned-off-by: Joel Sing \u003cjsing@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "17f7f4d9fcce8f1b75b5f735569309dee7665968",
      "tree": "14d7e49ca0053a0fcab3c33b5023bf3f90c5c08a",
      "parents": [
        "041110a439e21cd40709ead4ffbfa8034619ad77",
        "d7c1255a3a21e98bdc64df8ccf005a174d7e6289"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 26 22:37:05 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 26 22:37:05 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/ipv4/fib_frontend.c\n"
    },
    {
      "commit": "fc75fc8339e7727167443469027540b283daac71",
      "tree": "f4e4a6b9554b157976d73db9f1ae2e93ddf6e24e",
      "parents": [
        "7a36df8a857edee8cd8967cbe99a85574d22f482"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Dec 22 04:39:39 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Dec 25 20:05:31 2010 -0800"
      },
      "message": "ipv4: dont create routes on down devices\n\nIn ip_route_output_slow(), instead of allowing a route to be created on\na not UPed device, report -ENETUNREACH immediately.\n\n# ip tunnel add mode ipip remote 10.16.0.164 local\n10.16.0.72 dev eth0\n# (Note : tunl1 is down)\n# ping -I tunl1 10.1.2.3\nPING 10.1.2.3 (10.1.2.3) from 192.168.18.5 tunl1: 56(84) bytes of data.\n(nothing)\n# ./a.out tunl1\n# ip tunnel del tunl1\nMessage from syslogd@shelby at Dec 22 10:12:08 ...\n  kernel: unregister_netdevice: waiting for tunl1 to become free.\nUsage count \u003d 3\n\nAfter patch:\n# ping -I tunl1 10.1.2.3\nconnect: Network is unreachable\n\nReported-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nReviewed-by: Octavian Purdila \u003copurdila@ixiacom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6561a3b12d62ed5317e6ac32182d87a03f62c8dc",
      "tree": "2b7318c3532a79dff8912ca4fdcd5d90aa0d8b39",
      "parents": [
        "782615aea84e57dc7f2f922cea823df3de635a78"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 19 21:11:20 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 20 10:37:19 2010 -0800"
      },
      "message": "ipv4: Flush per-ns routing cache more sanely.\n\nFlush the routing cache only of entries that match the\nnetwork namespace in which the purge event occurred.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n"
    },
    {
      "commit": "d33e455337ea2c71d09d7f4367d6ad6dd32b6965",
      "tree": "d1b35b1be5ab73df6f7e57b86a2e68fad2990adf",
      "parents": [
        "9fe146aef44afe5ec677d8150b6ae94e09b773f7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 14 13:01:14 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 14 13:01:14 2010 -0800"
      },
      "message": "net: Abstract default MTU metric calculation behind an accessor.\n\nLike RTAX_ADVMSS, make the default calculation go through a dst_ops\nmethod rather than caching the computation in the routing cache\nentries.\n\nNow dst metrics are pretty much left as-is when new entries are\ncreated, thus optimizing metric sharing becomes a real possibility.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0dbaee3b37e118a96bb7b8eb0d9bbaeeb46264be",
      "tree": "37000c5d7e663e4ae9800a7bcde9934984b8bae9",
      "parents": [
        "cc6f02dd490dac4ad821d5077b934c9b37037cd0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 13 12:52:14 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 13 12:52:14 2010 -0800"
      },
      "message": "net: Abstract default ADVMSS behind an accessor.\n\nMake all RTAX_ADVMSS metric accesses go through a new helper function,\ndst_metric_advmss().\n\nLeave the actual default metric as \"zero\" in the real metric slot,\nand compute the actual default value dynamically via a new dst_ops\nAF specific callback.\n\nFor stacked IPSEC routes, we use the advmss of the path which\npreserves existing behavior.\n\nUnlike ipv4/ipv6, DecNET ties the advmss to the mtu and thus updates\nadvmss on pmtu updates.  This inconsistency in advmss handling\nresults in more raw metric accesses than I wish we ended up with.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "323e126f0c5995f779d7df7fd035f6e8fed8764d",
      "tree": "402c7267a45ae488363bb1ef8e4c786b65b82572",
      "parents": [
        "a02e4b7dae455151c423e2f69ef222c502a321fd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 12 21:55:08 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 12 22:08:17 2010 -0800"
      },
      "message": "ipv4: Don\u0027t pre-seed hoplimit metric.\n\nAlways go through a new ip4_dst_hoplimit() helper, just like ipv6.\n\nThis allowed several simplifications:\n\n1) The interim dst_metric_hoplimit() can go as it\u0027s no longer\n   userd.\n\n2) The sysctl_ip_default_ttl entry no longer needs to use\n   ipv4_doint_and_flush, since the sysctl is not cached in\n   routing cache metrics any longer.\n\n3) ipv4_doint_and_flush no longer needs to be exported and\n   therefore can be marked static.\n\nWhen ipv4_doint_and_flush_strategy was removed some time ago,\nthe external declaration in ip.h was mistakenly left around\nso kill that off too.\n\nWe have to move the sysctl_ip_default_ttl declaration into\nipv4\u0027s route cache definition header net/route.h, because\ncurrently net/ip.h (where the declaration lives now) has\na back dependency on net/route.h\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5170ae824ddf1988a63fb12cbedcff817634c444",
      "tree": "9f1619ca6edd0e8078bfcd9d6123e119b935e43b",
      "parents": [
        "abbf46ae0e4954584eac599bec73502c1c805e9e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 12 21:35:57 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 12 21:35:57 2010 -0800"
      },
      "message": "net: Abstract RTAX_HOPLIMIT metric accesses behind helper.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "defb3519a64141608725e2dac5a5aa9a3c644bae",
      "tree": "2f44985e44aef53a0d99991b9f5c2f0eb6dbf4ad",
      "parents": [
        "84b3cdc38cd2882d7ac3c2ae4b6faf5c199874e3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 08 21:16:57 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 09 10:46:36 2010 -0800"
      },
      "message": "net: Abstract away all dst_entry metrics accesses.\n\nUse helper functions to hide all direct accesses, especially writes,\nto dst_entry metrics values.\n\nThis will allow us to:\n\n1) More easily change how the metrics are stored.\n\n2) Implement COW for metrics.\n\nIn particular this will help us put metrics into the inetpeer\ncache if that is what we end up doing.  We can make the _metrics\nmember a pointer instead of an array, initially have it point\nat the read-only metrics in the FIB, and then on the first set\ngrab an inetpeer entry and point the _metrics member there.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n"
    },
    {
      "commit": "b534ecf1cd26f094497da6ae28a6ab64cdbe1617",
      "tree": "bdf8a55183a38926b8f34f709cb51a4db2f5f6b8",
      "parents": [
        "582a72da9a41be9227dc931d728ae2906880a589"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 30 11:54:19 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 30 11:54:19 2010 -0800"
      },
      "message": "inetpeer: Make inet_getpeer() take an inet_peer_adress_t pointer.\n\nAnd make an inet_getpeer_v4() helper, update callers.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5811662b15db018c740c57d037523683fd3e6123",
      "tree": "f820610a6024799a26699f22dc9a4ef5dee07978",
      "parents": [
        "dd68ad2235b4625e0dc928b2b4c614d265f976d3"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Fri Nov 12 18:43:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 17 12:27:45 2010 -0800"
      },
      "message": "net: use the macros defined for the members of flowi\n\nUse the macros defined for the members of flowi to clean the code up.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c753796769e4fb0cd813b6e5801b3c01f4681d4f",
      "tree": "f137ec0b76593a2aa1a6a263bcc1e4cf82bdf7b5",
      "parents": [
        "ed1deb7021b4dfee1d544b91edff4ef92f5c3b54"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 11 17:07:48 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 11 17:07:48 2010 -0800"
      },
      "message": "ipv4: Make rt-\u003efl.iif tests lest obscure.\n\nWhen we test rt-\u003efl.iif against zero, we\u0027re seeing if it\u0027s\nan output or an input route.\n\nMake that explicit with some helper functions.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "72cdd1d971c0deb1619c5c339270570c43647a78",
      "tree": "15e3c63cf135818ae1b5cbc9d85ef2c48c03804c",
      "parents": [
        "46b13fc5c0f239f36e84665c73087d5fa86bfd86"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Nov 11 07:14:07 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 11 10:29:40 2010 -0800"
      },
      "message": "net: get rid of rtable-\u003eidev\n\nIt seems idev field in struct rtable has no special purpose, but adding\nextra atomic ops.\n\nWe hold refcounts on the device itself (using percpu data, so pretty\ncheap in current kernel).\n\ninfiniband case is solved using dst.dev instead of idev-\u003edev\n\nRemoval of this field means routing without route cache is now using\nshared data, percpu data, and only potential contention is a pair of\natomic ops on struct neighbour per forwarded packet.\n\nAbout 5% speedup on routing test.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Sean Hefty \u003csean.hefty@intel.com\u003e\nCc: Hal Rosenstock \u003chal.rosenstock@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1c31720a74e19bb57f301350a3b03210fa2ba9e3",
      "tree": "053f29ffa53383eb003ac632971f31e1643ef1d9",
      "parents": [
        "c1b60092cf307fef12f793abf7cf8167e26a6ccf"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 25 21:02:07 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 27 11:37:31 2010 -0700"
      },
      "message": "ipv4: add __rcu annotations to routes.c\n\nAdd __rcu annotations to :\n        (struct dst_entry)-\u003ert_next\n        (struct rt_hash_bucket)-\u003echain\n\nAnd use appropriate rcu primitives to reduce sparse warnings if\nCONFIG_SPARSE_RCU_POINTER\u003dy\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27b75c95f10d249574d9c4cb9dab878107faede8",
      "tree": "466656d86aaa395951e12b50903e730203c5f86f",
      "parents": [
        "e6484930d7c73d324bccda7d43d131088da697b9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 15 05:44:11 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 20 03:02:23 2010 -0700"
      },
      "message": "net: avoid RCU for NOCACHE dst\n\nThere is no point using RCU for dst we allocate for a very short time\n(used once).\n\nChange dst_release() to take DST_NOCACHE into account, but also change\nskb_dst_set_noref() to force a refcount increment for such dst.\n\nThis is a _huge_ gain, because we dont waste memory to store xx thousand\nof dsts. Instead of queueing them to RCU, we can free them instantly.\n\nCPU caches can stay hot, re-using same memory blocks to hold temporary\ndsts.\n\nNote : remove unneeded smp_mb__before_atomic_dec(); in dst_release(),\nsince atomic_dec_return() implies a full memory barrier.\n\nStress test, 160.000.000 udp frames sent, IP route cache disabled\n(DDOS).\n\nBefore:\n\nreal    0m38.091s\nuser    0m13.189s\nsys     7m53.018s\n\nAfter:\n\nreal\t0m29.946s\nuser\t0m12.157s\nsys\t7m40.605s\n\nFor reference, if IP route cache was enabled :\n\nreal\t0m32.030s\nuser\t0m10.521s\nsys\t8m15.243s\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27a954bd560f3e385bbed38fde3051fe718b8d75",
      "tree": "83d46eb7d984fd1cd5eaa55c20267a88b4ab9a3a",
      "parents": [
        "a47d60561e111f5009ad0964069cfff77f76dbaa"
      ],
      "author": {
        "name": "Andy Walls",
        "email": "awalls@md.metrocast.net",
        "time": "Sun Oct 17 15:11:22 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 18 07:22:50 2010 -0700"
      },
      "message": "IPv4: route.c: Change checks against 0xffffffff to ipv4_is_lbcast()\n\nChange a few checks against the hardcoded broadcast address,\n0xffffffff, to ipv4_is_lbcast().  Remove some existing checks\nusing ipv4_is_lbcast() that are now obviously superfluous.\n\nSigned-off-by: Andy Walls \u003cawalls@md.metrocast.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc66f95c68b6d4535a0ea2ea15d5cf626e310956",
      "tree": "ac3a7f08ad741a67ff683bf93e5669ddcae95ed7",
      "parents": [
        "0ed8ddf4045fcfcac36bad753dc4046118c603ec"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Oct 08 06:37:34 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 11 13:06:53 2010 -0700"
      },
      "message": "net dst: use a percpu_counter to track entries\n\nstruct dst_ops tracks number of allocated dst in an atomic_t field,\nsubject to high cache line contention in stress workload.\n\nSwitch to a percpu_counter, to reduce number of time we need to dirty a\ncentral location. Place it on a separate cache line to avoid dirtying\nread only fields.\n\nStress test :\n\n(Sending 160.000.000 UDP frames,\nIP route cache disabled, dual E5540 @2.53GHz,\n32bit kernel, FIB_TRIE, SLUB/NUMA)\n\nBefore:\n\nreal    0m51.179s\nuser    0m15.329s\nsys     10m15.942s\n\nAfter:\n\nreal\t0m45.570s\nuser\t0m15.525s\nsys\t9m56.669s\n\nWith a small reordering of struct neighbour fields, subject of a\nfollowing patch, (to separate refcnt from other read mostly fields)\n\nreal\t0m41.841s\nuser\t0m15.261s\nsys\t8m45.949s\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8391d07b80e8da957cd888870e23f8e218438622",
      "tree": "8baab40bff5649b1f777af590f77a79a549b0491",
      "parents": [
        "993284dfff3ba4643f08b592427d0ac758d30156"
      ],
      "author": {
        "name": "Dimitris Michailidis",
        "email": "dm@chelsio.com",
        "time": "Thu Oct 07 14:48:38 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 08 10:51:08 2010 -0700"
      },
      "message": "ipv4: Remove leftover rcu_read_unlock calls from __mkroute_output()\n\nCommit \"fib: RCU conversion of fib_lookup()\" removed rcu_read_lock() from\n__mkroute_output but left a couple of calls to rcu_read_unlock() in there.\nThis causes lockdep to complain that the rcu_read_unlock() call in\n__ip_route_output_key causes a lock inbalance and quickly crashes the\nkernel. The below fixes this for me.\n\nSigned-off-by: Dimitris Michailidis \u003cdm@chelsio.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ebc0ffae5dfb4447e0a431ffe7fe1d467c48bbb9",
      "tree": "395e50547ffccc6b73e04a44190eb4b4f2d2316b",
      "parents": [
        "c2952c314b4fe61820ba8fd6c949eed636140d52"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Oct 05 10:41:36 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 05 20:39:38 2010 -0700"
      },
      "message": "fib: RCU conversion of fib_lookup()\n\nfib_lookup() converted to be called in RCU protected context, no\nreference taken and released on a contended cache line (fib_clntref)\n\nfib_table_lookup() and fib_semantic_match() get an additional parameter.\n\nstruct fib_info gets an rcu_head field, and is freed after an rcu grace\nperiod.\n\nStress test :\n(Sending 160.000.000 UDP frames on same neighbour,\nIP route cache disabled, dual E5540 @2.53GHz,\n32bit kernel, FIB_HASH) (about same results for FIB_TRIE)\n\nBefore patch :\n\nreal\t1m31.199s\nuser\t0m13.761s\nsys\t23m24.780s\n\nAfter patch:\n\nreal\t1m5.375s\nuser\t0m14.997s\nsys\t15m50.115s\n\nBefore patch Profile :\n\n13044.00 15.4% __ip_route_output_key vmlinux\n 8438.00 10.0% dst_destroy           vmlinux\n 5983.00  7.1% fib_semantic_match    vmlinux\n 5410.00  6.4% fib_rules_lookup      vmlinux\n 4803.00  5.7% neigh_lookup          vmlinux\n 4420.00  5.2% _raw_spin_lock        vmlinux\n 3883.00  4.6% rt_set_nexthop        vmlinux\n 3261.00  3.9% _raw_read_lock        vmlinux\n 2794.00  3.3% fib_table_lookup      vmlinux\n 2374.00  2.8% neigh_resolve_output  vmlinux\n 2153.00  2.5% dst_alloc             vmlinux\n 1502.00  1.8% _raw_read_lock_bh     vmlinux\n 1484.00  1.8% kmem_cache_alloc      vmlinux\n 1407.00  1.7% eth_header            vmlinux\n 1406.00  1.7% ipv4_dst_destroy      vmlinux\n 1298.00  1.5% __copy_from_user_ll   vmlinux\n 1174.00  1.4% dev_queue_xmit        vmlinux\n 1000.00  1.2% ip_output             vmlinux\n\nAfter patch Profile :\n\n13712.00 15.8% dst_destroy             vmlinux\n 8548.00  9.9% __ip_route_output_key   vmlinux\n 7017.00  8.1% neigh_lookup            vmlinux\n 4554.00  5.3% fib_semantic_match      vmlinux\n 4067.00  4.7% _raw_read_lock          vmlinux\n 3491.00  4.0% dst_alloc               vmlinux\n 3186.00  3.7% neigh_resolve_output    vmlinux\n 3103.00  3.6% fib_table_lookup        vmlinux\n 2098.00  2.4% _raw_read_lock_bh       vmlinux\n 2081.00  2.4% kmem_cache_alloc        vmlinux\n 2013.00  2.3% _raw_spin_lock          vmlinux\n 1763.00  2.0% __copy_from_user_ll     vmlinux\n 1763.00  2.0% ip_output               vmlinux\n 1761.00  2.0% ipv4_dst_destroy        vmlinux\n 1631.00  1.9% eth_header              vmlinux\n 1440.00  1.7% _raw_read_unlock_bh     vmlinux\n\nReference results, if IP route cache is enabled :\n\nreal\t0m29.718s\nuser\t0m10.845s\nsys\t7m37.341s\n\n25213.00 29.5% __ip_route_output_key   vmlinux\n 9011.00 10.5% dst_release             vmlinux\n 4817.00  5.6% ip_push_pending_frames  vmlinux\n 4232.00  5.0% ip_finish_output        vmlinux\n 3940.00  4.6% udp_sendmsg             vmlinux\n 3730.00  4.4% __copy_from_user_ll     vmlinux\n 3716.00  4.4% ip_route_output_flow    vmlinux\n 2451.00  2.9% __xfrm_lookup           vmlinux\n 2221.00  2.6% ip_append_data          vmlinux\n 1718.00  2.0% _raw_spin_lock_bh       vmlinux\n 1655.00  1.9% __alloc_skb             vmlinux\n 1572.00  1.8% sock_wfree              vmlinux\n 1345.00  1.6% kfree                   vmlinux\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "21a180cda012e1f93e362dd4a9b0bfd3d8c92940",
      "tree": "0e0d10baa3fdcd8ffbc6881076ff1695808dad9d",
      "parents": [
        "c7d4426a98a5f6654cd0b4b33d9dab2e77192c18",
        "51e97a12bef19b7e43199fc153cf9bd5f2140362"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 04 11:56:38 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 04 11:56:38 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/ipv4/Kconfig\n\tnet/ipv4/tcp_timer.c\n"
    },
    {
      "commit": "c7d4426a98a5f6654cd0b4b33d9dab2e77192c18",
      "tree": "0db2524e6f3f742861765dd6aa696a9271767056",
      "parents": [
        "9a7241c21b06c3a3f8ebcf3e347bd68556369da7"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Oct 03 22:17:54 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 03 22:17:54 2010 -0700"
      },
      "message": "net: introduce DST_NOCACHE flag\n\nWhile doing stress tests with IP route cache disabled, and multi queue\ndevices, I noticed a very high contention on one rwlock used in\nneighbour code.\n\nWhen many cpus are trying to send frames (possibly using a high\nperformance multiqueue device) to the same neighbour, they fight for the\nneigh-\u003elock rwlock in order to call neigh_hh_init(), and fight on\nhh-\u003ehh_refcnt (a pair of atomic_inc/atomic_dec_and_test())\n\nBut we dont need to call neigh_hh_init() for dst that are used only\nonce. It costs four atomic operations at least, on two contended cache\nlines, plus the high contention on neigh-\u003elock rwlock.\n\nIntroduce a new dst flag, DST_NOCACHE, that is set when dst was not\ninserted in route cache.\n\nWith the stress test bench, sending 160000000 frames on one neighbour,\nresults are :\n\nBefore patch:\n\nreal\t2m28.406s\nuser\t0m11.781s\nsys\t36m17.964s\n\n\nAfter patch:\n\nreal\t1m26.532s\nuser\t0m12.185s\nsys\t20m3.903s\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0197aa38df2ce550c0bfc96194b07ce6b68af814",
      "tree": "bf7f41be7e701f6e282ed92e8063e69d339554f8",
      "parents": [
        "82efee1499a27c06f5afb11b07db384fdb3f7004"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Sep 30 03:33:58 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 30 21:16:06 2010 -0700"
      },
      "message": "ipv4: rcu conversion in ip_route_output_slow\n\nip_route_output_slow() is enclosed in an rcu_read_lock() protected\nsection, so that no references are taken/released on device, thanks to\n__ip_dev_find() \u0026 dev_get_by_index_rcu()\n\nTested with ip route cache disabled, and a stress test :\n\nBefore patch:\n\nelapsed time :\n\nreal\t1m38.347s\nuser\t0m11.909s\nsys\t23m51.501s\n\nProfile:\n\n13788.00 22.7% ip_route_output_slow [kernel]\n 7875.00 13.0% dst_destroy          [kernel]\n 3925.00  6.5% fib_semantic_match   [kernel]\n 3144.00  5.2% fib_rules_lookup     [kernel]\n 3061.00  5.0% dst_alloc            [kernel]\n 2276.00  3.7% rt_set_nexthop       [kernel]\n 1762.00  2.9% fib_table_lookup     [kernel]\n 1538.00  2.5% _raw_read_lock       [kernel]\n 1358.00  2.2% ip_output            [kernel]\n\nAfter patch:\n\nreal\t1m28.808s\nuser\t0m13.245s\nsys\t20m37.293s\n\n10950.00 17.2% ip_route_output_slow [kernel]\n10726.00 16.9% dst_destroy          [kernel]\n 5170.00  8.1% fib_semantic_match   [kernel]\n 3937.00  6.2% dst_alloc            [kernel]\n 3635.00  5.7% rt_set_nexthop       [kernel]\n 2900.00  4.6% fib_rules_lookup     [kernel]\n 2240.00  3.5% fib_table_lookup     [kernel]\n 1427.00  2.2% _raw_read_lock       [kernel]\n 1157.00  1.8% kmem_cache_alloc     [kernel]\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dd28d1a0b5ecc0f5512f658b1a8fd38bc4f4c98c",
      "tree": "5cee646dfe354803f0b6f7b9ddd11c189c4ee8e3",
      "parents": [
        "e1a5964f0c32a75b17360cfc565d25aaedbff747"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 29 11:53:50 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 30 17:59:30 2010 -0700"
      },
      "message": "ipv4: __mkroute_output() speedup\n\nWhile doing stress tests with a disabled IP route cache, I found\n__mkroute_output() was touching three times in_device atomic refcount.\n\nUse RCU to touch it once to reduce cache line ping pongs.\n\nBefore patch\n\ntime to perform the test\nreal\t1m42.009s\nuser\t0m12.545s\nsys\t25m0.726s\n\nProfile :\n\n16109.00 26.4% ip_route_output_slow   vmlinux\n 7434.00 12.2% dst_destroy            vmlinux\n 3280.00  5.4% fib_rules_lookup       vmlinux\n 3252.00  5.3% fib_semantic_match     vmlinux\n 2622.00  4.3% fib_table_lookup       vmlinux\n 2535.00  4.1% dst_alloc              vmlinux\n 1750.00  2.9% _raw_read_lock         vmlinux\n 1532.00  2.5% rt_set_nexthop         vmlinux\n\nAfter patch\n\nreal\t1m36.503s\nuser\t0m12.977s\nsys\t23m25.608s\n\n14234.00 22.4% ip_route_output_slow   vmlinux\n 8717.00 13.7% dst_destroy            vmlinux\n 4052.00  6.4% fib_rules_lookup       vmlinux\n 3951.00  6.2% fib_semantic_match     vmlinux\n 3191.00  5.0% dst_alloc              vmlinux\n 1764.00  2.8% fib_table_lookup       vmlinux\n 1692.00  2.7% _raw_read_lock         vmlinux\n 1605.00  2.5% rt_set_nexthop         vmlinux\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7e1b33e5ea392dfc984fc63b76ca75acbf249dcd",
      "tree": "00fbab440aabca3123b999da42901a7261203c11",
      "parents": [
        "b3de7559afbb7a8a35b4be975a6adf6c5e3cdca0"
      ],
      "author": {
        "name": "Ulrich Weber",
        "email": "uweber@astaro.com",
        "time": "Mon Sep 27 15:02:18 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 15:02:18 2010 -0700"
      },
      "message": "ipv6: add IPv6 to neighbour table overflow warning\n\nIPv4 and IPv6 have separate neighbour tables, so\nthe warning messages should be distinguishable.\n\n[ Add a suitable message prefix on the ipv4 side as well -DaveM ]\n\nSigned-off-by: Ulrich Weber \u003cuweber@astaro.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "83180af0b0ea166adf8249f4513beb7355f9b4c9",
      "tree": "4e2606d19e0e5be3e1fc1851a0294f163bfa8780",
      "parents": [
        "1b4bf461f05d56ced6d6b8f3b4831adc7076f565"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Sep 23 21:46:03 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 26 19:04:07 2010 -0700"
      },
      "message": "net: fix rcu use in ip_route_output_slow\n\n__in_dev_get_rtnl(dev_out) is called while RTNL is not held, thus\ntriggers a lockdep fault.\n\nAt this point, we only perform a raw test of dev_out-\u003eip_ptr being NULL,\nwe dont need to make sure ip_ptr cant changed right after.\n\nWe can use rcu_dereference_raw() for this.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a02cec2155fbea457eca8881870fd2de1a4c4c76",
      "tree": "cfbfc4b32bfe10f9cd803d46c31607d13f1858f5",
      "parents": [
        "6a08d194ee40806e0ccd5f36ed768e64cbfc979f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 22 20:43:57 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 23 14:33:39 2010 -0700"
      },
      "message": "net: return operator cleanup\n\nChange \"return (EXPR);\" to \"return EXPR;\"\n\nreturn is not a function, parentheses are not required.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e548833df83c3554229eff0672900bfe958b45fd",
      "tree": "85efc4a76dc356593d6d394776aeb845dc580fb6",
      "parents": [
        "cbd9da7be869f676afc204e1a664163778c770bd",
        "053d8f6622701f849fda2ca2c9ae596c13599ba9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 09 22:27:33 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 09 22:27:33 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/mac80211/main.c\n"
    },
    {
      "commit": "ae2688d59b5f861dc70a091d003773975d2ae7fb",
      "tree": "ae674d926ba2069bc712cc1bb25b1c87ea7cc241",
      "parents": [
        "f6b085b69d1cbbd62f49f34e71a3d58cb6d34b7e"
      ],
      "author": {
        "name": "Jianzhao Wang",
        "email": "jianzhao.wang@6wind.com",
        "time": "Wed Sep 08 14:35:43 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 08 14:35:43 2010 -0700"
      },
      "message": "net: blackhole route should always be recalculated\n\nBlackhole routes are used when xfrm_lookup() returns -EREMOTE (error\ntriggered by IKE for example), hence this kind of route is always\ntemporary and so we should check if a better route exists for next\npackets.\nBug has been introduced by commit d11a4dc18bf41719c9f0d7ed494d295dd2973b92.\n\nSigned-off-by: Jianzhao Wang \u003cjianzhao.wang@6wind.com\u003e\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "49e8ab03ebcacd8e37660ffec20c0c46721a2800",
      "tree": "78f17093ffdbf4e2cd788033f113888c472f0d7b",
      "parents": [
        "4da79504b2b41410dd56e9268c9ad403aa65e89c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Aug 19 06:10:45 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 20 00:50:16 2010 -0700"
      },
      "message": "net: build_ehash_secret() and rt_bind_peer() cleanups\n\nNow cmpxchg() is available on all arches, we can use it in\nbuild_ehash_secret() and rt_bind_peer() instead of using spinlocks.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "963bfeeeec913d135c15dc400f2f86cb62655d81",
      "tree": "73a5117b91580637df8c5c7e21ff40656eb93904",
      "parents": [
        "e955cead031177b083fbf18d04a03c06e330a439"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jul 20 22:03:14 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 22 13:46:21 2010 -0700"
      },
      "message": "net: RTA_MARK addition\n\nAdd a new rt attribute, RTA_MARK, and use it in\nrt_fill_info()/inet_rtm_getroute() to support following commands :\n\nip route get 192.168.20.110 mark NUMBER\nip route get 192.168.20.108 from 192.168.20.110 iif eth1 mark NUMBER\nip route list cache [192.168.20.110] mark NUMBER\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4bc2f18ba4f22a90ab593c0a580fc9a19c4777b6",
      "tree": "bb39f427bd468d0e34a73ebc788db726406fa261",
      "parents": [
        "ba80a2522899ea71a5b201bae60bdfd99126af95"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Jul 09 21:22:10 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 12 12:57:54 2010 -0700"
      },
      "message": "net/ipv4: EXPORT_SYMBOL cleanups\n\nCodingStyle cleanups\n\nEXPORT_SYMBOL should immediately follow the symbol declaration.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "317fe0e6c5dc9448bcef41a2e31fecfd3dba7f55",
      "tree": "c2a042e1c8bb96b7fdeadf658309ead1b6e8dabc",
      "parents": [
        "fdb93f8ac39aa5902f3d264edd50dffcabfdd13b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jun 16 04:52:13 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 16 11:55:39 2010 -0700"
      },
      "message": "inetpeer: restore small inet_peer structures\n\nAddition of rcu_head to struct inet_peer added 16bytes on 64bit arches.\n\nThats a bit unfortunate, since old size was exactly 64 bytes.\n\nThis can be solved, using an union between this rcu_head an four fields,\nthat are normally used only when a refcount is taken on inet_peer.\nrcu_head is used only when refcnt\u003d-1, right before structure freeing.\n\nAdd a inet_peer_refcheck() function to check this assertion for a while.\n\nWe can bring back SLAB_HWCACHE_ALIGN qualifier in kmem cache creation.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d8d1f30b95a635dbd610dcc5eb641aca8f4768cf",
      "tree": "71424d82a96facd5fcf05cc769ef2ba52b584aeb",
      "parents": [
        "592fcb9dfafaa02dd0edc207bf5d3a0ee7a1f8df"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Thu Jun 10 23:31:35 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 10 23:31:35 2010 -0700"
      },
      "message": "net-next: remove useless union keyword\n\nremove useless union keyword in rtable, rt6_info and dn_route.\n\nSince there is only one member in a union, the union keyword isn\u0027t useful.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed7865a47d4759e85bbd7bed44bee411d868eaad",
      "tree": "f0d2bd7d1f6c2c9d962baf84d2041a5b8c1c6b64",
      "parents": [
        "9a57a9d291980302b4a3184fbc47dbddac71903e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Jun 07 21:49:44 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 07 21:49:44 2010 -0700"
      },
      "message": "ipv4: avoid two atomic ops in ip_rt_redirect()\n\nin_dev_get() -\u003e __in_dev_get_rcu() in a rcu protected function.\n\n[ Fix build with CONFIG_IP_ROUTE_VERBOSE disabled. -DaveM ]\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4736022844fe694c4ee971fa2b6c1cb38dadbc78",
      "tree": "0eafa36fe68d886c152548bfc367627a57fe4dd5",
      "parents": [
        "bc10502dba37d3b210efd9f3867212298f13b78e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jun 03 04:13:21 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 20:01:51 2010 -0700"
      },
      "message": "ipv4: RCU changes in __mkroute_input()\n\nAvoid two atomic ops on output device refcount\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "96d362202bfc0e5da78ee59b1645296fbca515f4",
      "tree": "ce3cc34d9a75f8c5d91ea9eb711993657d32af77",
      "parents": [
        "b5f7e7554753e2cc3ef3bef0271fdb32027df2ba"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jun 02 19:21:31 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:18:19 2010 -0700"
      },
      "message": "ipv4: RCU conversion of ip_route_input_slow/ip_route_input_mc\n\nAvoid two atomic ops on struct in_device refcount per incoming packet,\nif slow path taken, (or route cache disabled)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b5f7e7554753e2cc3ef3bef0271fdb32027df2ba",
      "tree": "e7908b1ccf1cfef6bdeb7cac4c83f6d2ad2be54e",
      "parents": [
        "8cbccbe76168a0c627d2274e4a322116804db30f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jun 02 12:05:27 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:18:19 2010 -0700"
      },
      "message": "ipv4: add LINUX_MIB_IPRPFILTER snmp counter\n\nChristoph Lameter mentioned that packets could be dropped in input path\nbecause of rp_filter settings, without any SNMP counter being\nincremented. System administrator can have a hard time to track the\nproblem.\n\nThis patch introduces a new counter, LINUX_MIB_IPRPFILTER, incremented\neach time we drop a packet because Reverse Path Filter triggers.\n\n(We receive an IPv4 datagram on a given interface, and find the route to\nsend an answer would use another interface)\n\nnetstat -s | grep IPReversePathFilter\n    IPReversePathFilter: 21714\n\nReported-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27f39c73e63833b4c081a0d681d88b4184a0491d",
      "tree": "49cca2881bcd9212cd99a1e30c83f40a20eefc55",
      "parents": [
        "604c1b1868f16e7b2fc13401d8c9147f167bec0a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed May 19 22:07:23 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 31 00:24:01 2010 -0700"
      },
      "message": "net: Use __this_cpu_inc() in fast path\n\nThis patch saves 224 bytes of text on my machine.\n\n__this_cpu_inc() generates a single instruction, using no scratch\nregisters :\n\n  65 ff 04 25 a8 30 01 00      incl   %gs:0x130a8\n\ninstead of :\n\n  48 c7 c2 80 30 01 00         mov    $0x13080,%rdx\n  65 48 8b 04 25 88 ea 00 00   mov    %gs:0xea88,%rax\n  83 44 10 28 01               addl   $0x1,0x28(%rax,%rdx,1)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "407eadd996dc62a827db85f1d0c286a98fd5d336",
      "tree": "199b695cd045650b939aab61cbb55c31d9165b4e",
      "parents": [
        "7fee226ad2397b635e2fd565a59ca3ae08a164cd"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon May 10 11:32:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 17 17:18:51 2010 -0700"
      },
      "message": "net: implements ip_route_input_noref()\n\nip_route_input() is the version returning a refcounted dst, while\nip_route_input_noref() returns a non refcounted one.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7fee226ad2397b635e2fd565a59ca3ae08a164cd",
      "tree": "0bcd26150ad74ec1a237109de87a3d214a07fc22",
      "parents": [
        "ebda37c27d0c768947e9b058332d7ea798210cf8"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue May 11 23:19:48 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 17 17:18:50 2010 -0700"
      },
      "message": "net: add a noref bit on skb dst\n\nUse low order bit of skb-\u003e_skb_dst to tell dst is not refcounted.\n\nChange _skb_dst to _skb_refdst to make sure all uses are catched.\n\nskb_dst() returns the dst, regardless of noref bit set or not, but\nwith a lockdep check to make sure a noref dst is not given if current\nuser is not rcu protected.\n\nNew skb_dst_set_noref() helper to set an notrefcounted dst on a skb.\n(with lockdep check)\n\nskb_dst_drop() drops a reference only if skb dst was refcounted.\n\nskb_dst_force() helper is used to force a refcount on dst, when skb\nis queued and not anymore RCU protected.\n\nUse skb_dst_force() in __sk_add_backlog(), __dev_xmit_skb() if\n!IFF_XMIT_DST_RELEASE or skb enqueued on qdisc queue, in\nsock_queue_rcv_skb(), in __nf_queue().\n\nUse skb_dst_force() in dev_requeue_skb().\n\nNote: dst_use_noref() still dirties dst, we might transform it\nlater to do one dirtying per jiffies.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3ee943728fff536edaf8f59faa58aaa1aa7366e3",
      "tree": "98ab529c1be1e4cb4b291c9d4c9fc9dba678967e",
      "parents": [
        "e0e33280fedcfa9dd70a54085c4d44d9d53b788f"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Sat May 08 01:57:52 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 08 01:57:52 2010 -0700"
      },
      "message": "ipv4: remove ip_rt_secret timer (v4)\n\nA while back there was a discussion regarding the rt_secret_interval timer.\nGiven that we\u0027ve had the ability to do emergency route cache rebuilds for awhile\nnow, based on a statistical analysis of the various hash chain lengths in the\ncache, the use of the flush timer is somewhat redundant.  This patch removes the\nrt_secret_interval sysctl, allowing us to rely solely on the statistical\nanalysis mechanism to determine the need for route cache flushes.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0eae88f31ca2b88911ce843452054139e028771f",
      "tree": "90f50197d8e1e50e3621e9c525bd4ca2634fe368",
      "parents": [
        "cb903bf4ee2d6e53210e2174d363e10698112042"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Apr 20 19:06:52 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 19:06:52 2010 -0700"
      },
      "message": "net: Fix various endianness glitches\n\nSparse can help us find endianness bugs, but we need to make some\ncleanups to be able to more easily spot real bugs.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "6a2bad70d546cf30a46bc6d9ec0cb9a0891a38eb",
      "tree": "890e8db3cb7c5c8636b10e817b8cdbc5c90e265e",
      "parents": [
        "b35ecb5d404c00f2420221ccbb1bbba1139353a4"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Mar 24 21:51:22 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 26 20:57:35 2010 -0700"
      },
      "message": "ipv4: Restart rt_intern_hash after emergency rebuild (v2)\n\nThe the rebuild changes the genid which in turn is used at\nthe hash calculation. Thus if we don\u0027t restart and go on with\ninserting the rt will happen in wrong chain.\n\n(Fixed Neil\u0027s comment about the index passed into the rt_intern_hash)\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b35ecb5d404c00f2420221ccbb1bbba1139353a4",
      "tree": "f5b1ebf5baae4d37e5ee84932e59a2668724e2b2",
      "parents": [
        "4b97efdf392563bf03b4917a0b5add2df65de39a"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Mar 24 07:43:17 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 26 20:57:35 2010 -0700"
      },
      "message": "ipv4: Cleanup struct net dereference in rt_intern_hash\n\nThere\u0027s no need in getting it 3 times and gcc isn\u0027t smart enough\nto understand this himself.\n\nThis is just a cleanup before the fix (next patch).\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5e016cbf6cffd4a53b7922e0c91b775399d7fe47",
      "tree": "6ad4b48375958de4f4c47e4ac674ec55da42f7f2",
      "parents": [
        "e3a61d47cc37c51834abe537e0ed685829d56ee2"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Sun Mar 21 20:55:13 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 21 20:55:13 2010 -0700"
      },
      "message": "ipv4: Don\u0027t drop redirected route cache entry unless PTMU actually expired\n\nTCP sessions over IPv4 can get stuck if routers between endpoints\ndo not fragment packets but implement PMTU instead, and we are using\nthose routers because of an ICMP redirect.\n\nSetup is as follows\n\n       MTU1    MTU2   MTU1\n    A--------B------C------D\n\nwith MTU1 \u003e MTU2. A and D are endpoints, B and C are routers. B and C\nimplement PMTU and drop packets larger than MTU2 (for example because\nDF is set on all packets). TCP sessions are initiated between A and D.\nThere is packet loss between A and D, causing frequent TCP\nretransmits.\n\nAfter the number of retransmits on a TCP session reaches tcp_retries1,\ntcp calls dst_negative_advice() prior to each retransmit. This results\nin route cache entries for the peer to be deleted in\nipv4_negative_advice() if the Path MTU is set.\n\nIf the outstanding data on an affected TCP session is larger than\nMTU2, packets sent from the endpoints will be dropped by B or C, and\nICMP NEEDFRAG will be returned. A and D receive NEEDFRAG messages and\nupdate PMTU.\n\nBefore the next retransmit, tcp will again call dst_negative_advice(),\ncausing the route cache entry (with correct PMTU) to be deleted. The\nretransmitted packet will be larger than MTU2, causing it to be\ndropped again.\n\nThis sequence repeats until the TCP session aborts or is terminated.\n\nProblem is fixed by removing redirected route cache entries in\nipv4_negative_advice() only if the PMTU is expired.\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d11a4dc18bf41719c9f0d7ed494d295dd2973b92",
      "tree": "654f7abdf27e1aeca25505896ead0e07664ee9fa",
      "parents": [
        "11bc3088373e913f165a8652601c6f8b8dc4aea2"
      ],
      "author": {
        "name": "Timo Teräs",
        "email": "timo.teras@iki.fi",
        "time": "Thu Mar 18 23:20:20 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 19 21:00:41 2010 -0700"
      },
      "message": "ipv4: check rt_genid in dst_check\n\nXfrm_dst keeps a reference to ipv4 rtable entries on each\ncached bundle. The only way to renew xfrm_dst when the underlying\nroute has changed, is to implement dst_check for this. This is\nwhat ipv6 side does too.\n\nThe problems started after 87c1e12b5eeb7b30b4b41291bef8e0b41fc3dde9\n(\"ipsec: Fix bogus bundle flowi\") which fixed a bug causing xfrm_dst\nto not get reused, until that all lookups always generated new\nxfrm_dst with new route reference and path mtu worked. But after the\nfix, the old routes started to get reused even after they were expired\ncausing pmtu to break (well it would occationally work if the rtable\ngc had run recently and marked the route obsolete causing dst_check to\nget called).\n\nSigned-off-by: Timo Teras \u003ctimo.teras@iki.fi\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "858a18a6a2f74e8f0e5b2e9671d4b74694aba708",
      "tree": "ccdb6cff136e02b47803b1fe5cec77821f6c7c9f",
      "parents": [
        "8440853bb70010f2f8edc26cb0f7af60da8b2c5a"
      ],
      "author": {
        "name": "Vitaliy Gusev",
        "email": "vgusev@openvz.org",
        "time": "Tue Mar 16 01:07:51 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 16 14:15:47 2010 -0700"
      },
      "message": "route: Fix caught BUG_ON during rt_secret_rebuild_oneshot()\n\nroute: Fix caught BUG_ON during rt_secret_rebuild_oneshot()\n\nCall rt_secret_rebuild can cause BUG_ON(timer_pending(\u0026net-\u003eipv4.rt_secret_timer)) in\nadd_timer as there is not any synchronization for call rt_secret_rebuild_oneshot()\nfor the same net namespace.\n\nAlso this issue affects to rt_secret_reschedule().\n\nThus use mod_timer enstead.\n\nSigned-off-by: Vitaliy Gusev \u003cvgusev@openvz.org\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9837638727488922727b0cfd438039fa73364183",
      "tree": "608b2cf6415553a06dfc09b6981f816b285622c8",
      "parents": [
        "1515faf2f995add976d4428bbc1583a4a0c81e5f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Mar 08 03:20:00 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 08 10:45:31 2010 -0800"
      },
      "message": "net: fix route cache rebuilds\n\nWe added an automatic route cache rebuilding in commit 1080d709fb9d8cd43\nbut had to correct few bugs. One of the assumption of original patch,\nwas that entries where kept sorted in a given way.\n\nThis assumption is known to be wrong (commit 1ddbcb005c395518 gave an\nexplanation of this and corrected a leak) and expensive to respect.\n\nPaweł Staszewski reported to me one of his machine got its routing cache\ndisabled after few messages like :\n\n[ 2677.850065] Route hash chain too long!\n[ 2677.850080] Adjust your secret_interval!\n[82839.662993] Route hash chain too long!\n[82839.662996] Adjust your secret_interval!\n[155843.731650] Route hash chain too long!\n[155843.731664] Adjust your secret_interval!\n[155843.811881] Route hash chain too long!\n[155843.811891] Adjust your secret_interval!\n[155843.858209] vlan0811: 5 rebuilds is over limit, route caching\ndisabled\n[155843.858212] Route hash chain too long!\n[155843.858213] Adjust your secret_interval!\n\nThis is because rt_intern_hash() might be fooled when computing a chain\nlength, because multiple entries with same keys can differ because of\nTOS (or mark/oif) bits.\n\nIn the rare case the fast algorithm see a too long chain, and before\ntaking expensive path, we call a helper function in order to not count\nduplicates of same routes, that only differ with tos/mark/oif bits. This\nhelper works with data already in cpu cache and is not be very\nexpensive, despite its O(N^2) implementation.\n\nPaweł Staszewski sucessfully tested this patch on his loaded router.\n\nReported-and-tested-by: Paweł Staszewski \u003cpstaszewski@itcare.pl\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "47871889c601d8199c51a4086f77eebd77c29b0b",
      "tree": "40cdcac3bff0ee40cc33dcca61d0577cdf965f77",
      "parents": [
        "c16cc0b464b8876cfd57ce1c1dbcb6f9a6a0bce3",
        "30ff056c42c665b9ea535d8515890857ae382540"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 28 19:23:06 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 28 19:23:06 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tdrivers/firmware/iscsi_ibft.c\n"
    },
    {
      "commit": "a898def29e4119bc01ebe7ca97423181f4c0ea2d",
      "tree": "e6f89d4f4a91fd24507ad600ebb9ad620ec9d9a8",
      "parents": [
        "3120438ad68601f341e61e7cb1323b0e1a6ca367"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Feb 22 17:04:49 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 09:41:03 2010 +0100"
      },
      "message": "net: Add checking to rcu_dereference() primitives\n\nUpdate rcu_dereference() primitives to use new lockdep-based\nchecking. The rcu_dereference() in __in6_dev_get() may be\nprotected either by rcu_read_lock() or RTNL, per Eric Dumazet.\nThe rcu_dereference() in __sk_free() is protected by the fact\nthat it is never reached if an update could change it.  Check\nfor this by using rcu_dereference_check() to verify that the\nstruct sock\u0027s -\u003esk_wmem_alloc counter is zero.\n\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c1266887105-1528-5-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7d720c3e4f0c4fc152a6bf17e24244a3c85412d2",
      "tree": "36e037187ce79acb211702bea22e99c625787757",
      "parents": [
        "2bb4646fce8d09916b351d1a62f98db7cec6fc41"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 16 15:20:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 16 23:05:38 2010 -0800"
      },
      "message": "percpu: add __percpu sparse annotations to net\n\nAdd __percpu sparse annotations to net.\n\nThese annotations are to make sparse consider percpu variables to be\nin a different address space and warn if accessed without going\nthrough percpu accessors.  This patch doesn\u0027t affect normal builds.\n\nThe macro and type tricks around snmp stats make things a bit\ninteresting.  DEFINE/DECLARE_SNMP_STAT() macros mark the target field\nas __percpu and SNMP_UPD_PO_STATS() macro is updated accordingly.  All\nsnmp_mib_*() users which used to cast the argument to (void **) are\nupdated to cast it to (void __percpu **).\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nCc: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nCc: netdev@vger.kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "51c24aaacaea90c8e87f1dec75a2ac7622b593f8",
      "tree": "9f54936c87764bef75e97395cb56b7d1e0df24c6",
      "parents": [
        "4276e47e2d1c85a2477caf0d22b91c4f2377fba8",
        "6be325719b3e54624397e413efd4b33a997e55a3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jan 23 00:31:06 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jan 23 00:31:06 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "0a931acfd19faf13129a22a46c06f330ecc2a4a3",
      "tree": "10746982180bb2db06d6068b6d34a9548ff36490",
      "parents": [
        "d00c362f1b0ff54161e0a42b4554ac621a9ef92d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Jan 17 03:32:50 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 17 19:24:49 2010 -0800"
      },
      "message": "ipv4: don\u0027t remove /proc/net/rt_acct\n\n/proc/net/rt_acct is not created if NET_CLS_ROUTE\u003dn.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "65324144b50bc7022cc9b6ca8f4a536a957019e3",
      "tree": "1e910817f6d4f1ecd821bfd8ce493f81fe4aae60",
      "parents": [
        "ca8d9ea30bc79b2965a1d169dcb2f48f02af4d2d"
      ],
      "author": {
        "name": "Jesper Dangaard Brouer",
        "email": "hawk@comx.dk",
        "time": "Tue Jan 05 05:50:47 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 07 00:59:09 2010 -0800"
      },
      "message": "net: RFC3069, private VLAN proxy arp support\n\nThis is to be used together with switch technologies, like RFC3069,\nthat where the individual ports are not allowed to communicate with\neach other, but they are allowed to talk to the upstream router.  As\ndescribed in RFC 3069, it is possible to allow these hosts to\ncommunicate through the upstream router by proxy_arp\u0027ing.\n\nThis patch basically allow proxy arp replies back to the same\ninterface (from which the ARP request/solicitation was received).\n\nTunable per device via proc \"proxy_arp_pvlan\":\n  /proc/sys/net/ipv4/conf/*/proxy_arp_pvlan\n\nThis switch technology is known by different vendor names:\n - In RFC 3069 it is called VLAN Aggregation.\n - Cisco and Allied Telesyn call it Private VLAN.\n - Hewlett-Packard call it Source-Port filtering or port-isolation.\n - Ericsson call it MAC-Forced Forwarding (RFC Draft).\n\nSigned-off-by: Jesper Dangaard Brouer \u003chawk@comx.dk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d7fc02c7bae7b1cf69269992cf880a43a350cdaa",
      "tree": "a43d56fa72913a1cc98a0bbebe054d08581b3a7c",
      "parents": [
        "ee1262dbc65ce0b6234a915d8432171e8d77f518",
        "28b4d5cc17c20786848cdc07b7ea237a309776bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 07:55:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 07:55:01 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1815 commits)\n  mac80211: fix reorder buffer release\n  iwmc3200wifi: Enable wimax core through module parameter\n  iwmc3200wifi: Add wifi-wimax coexistence mode as a module parameter\n  iwmc3200wifi: Coex table command does not expect a response\n  iwmc3200wifi: Update wiwi priority table\n  iwlwifi: driver version track kernel version\n  iwlwifi: indicate uCode type when fail dump error/event log\n  iwl3945: remove duplicated event logging code\n  b43: fix two warnings\n  ipw2100: fix rebooting hang with driver loaded\n  cfg80211: indent regulatory messages with spaces\n  iwmc3200wifi: fix NULL pointer dereference in pmkid update\n  mac80211: Fix TX status reporting for injected data frames\n  ath9k: enable 2GHz band only if the device supports it\n  airo: Fix integer overflow warning\n  rt2x00: Fix padding bug on L2PAD devices.\n  WE: Fix set events not propagated\n  b43legacy: avoid PPC fault during resume\n  b43: avoid PPC fault during resume\n  tcp: fix a timewait refcnt race\n  ...\n\nFix up conflicts due to sysctl cleanups (dead sysctl_check code and\nCTL_UNNUMBERED removed) in\n\tkernel/sysctl_check.c\n\tnet/ipv4/sysctl_net_ipv4.c\n\tnet/ipv6/addrconf.c\n\tnet/sctp/sysctl.c\n"
    },
    {
      "commit": "a5ee155136b4a8f4ab0e4c9c064b661da475e298",
      "tree": "10c113756ff0dcc860735d96ed141701bffa3476",
      "parents": [
        "5a5b6f6f62ac684a5856121d8cffd3c3253dc890"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Nov 29 15:45:58 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 16:15:50 2009 -0800"
      },
      "message": "net: NETDEV_UNREGISTER_PERNET -\u003e NETDEV_UNREGISTER_BATCH\n\nThe motivation for an additional notifier in batched netdevice\nnotification (rt_do_flush) only needs to be called once per batch not\nonce per namespace.\n\nFor further batching improvements I need a guarantee that the\nnetdevices are unregistered in order allowing me to unregister an all\nof the network devices in a network namespace at the same time with\nthe guarantee that the loopback device is really and truly\nunregistered last.\n\nAdditionally it appears that we moved the route cache flush after\nthe final synchronize_net, which seems wrong and there was no\nexplanation.  So I have restored the original location of the final\nsynchronize_net.\n\nCc: Octavian Purdila \u003copurdila@ixiacom.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a661c4199b300503dae694efa21f1354f763b97c",
      "tree": "706be22bf44642cd1109041f52fa9456cfdc77fe",
      "parents": [
        "09ad9bc752519cc167d0a573e1acf69b5c707c67"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Nov 25 15:40:35 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 25 15:40:35 2009 -0800"
      },
      "message": "net: convert /proc/net/rt_acct to seq_file\n\nRewrite statistics accumulation to be in terms of structure fields,\nnot raw u32 additions. Keep them in same order, though.\n\nThis is the last user of create_proc_read_entry() in net/,\nplease NAK all new ones as well as all new -\u003ewrite_proc, -\u003eread_proc and\ncreate_proc_entry() users. Cc me if there are problems. :-)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "09ad9bc752519cc167d0a573e1acf69b5c707c67",
      "tree": "0e190a9ffb90d7e0534136c3e9f31dce02f423c3",
      "parents": [
        "4ba3eb034fb6fd1990ccc5a6d71d5abcda37b905"
      ],
      "author": {
        "name": "Octavian Purdila",
        "email": "opurdila@ixiacom.com",
        "time": "Wed Nov 25 15:14:13 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 25 15:14:13 2009 -0800"
      },
      "message": "net: use net_eq to compare nets\n\nGenerated with the following semantic patch\n\n@@\nstruct net *n1;\nstruct net *n2;\n@@\n- n1 \u003d\u003d n2\n+ net_eq(n1, n2)\n\n@@\nstruct net *n1;\nstruct net *n2;\n@@\n- n1 !\u003d n2\n+ !net_eq(n1, n2)\n\napplied over {include,net,drivers/net}.\n\nSigned-off-by: Octavian Purdila \u003copurdila@ixiacom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d4fb27db90043cd2640e4bc778f9c755d3c17c1",
      "tree": "53f1b0851fdd02e78a18f1a9db57e7cc22e2b280",
      "parents": [
        "6ebfbc065624790772398f5b327ac33a7ae3880b"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Nov 23 10:41:23 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 23 10:41:23 2009 -0800"
      },
      "message": "net/ipv4: Move \u0026\u0026 and || to end of previous line\n\nOn Sun, 2009-11-22 at 16:31 -0800, David Miller wrote:\n\u003e It should be of the form:\n\u003e \tif (x \u0026\u0026\n\u003e \t    y)\n\u003e \n\u003e or:\n\u003e \tif (x \u0026\u0026 y)\n\u003e \n\u003e Fix patches, rather than complaints, for existing cases where things\n\u003e do not follow this pattern are certainly welcome.\n\nAlso collapsed some multiple tabs to single space.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2c1409a0a2b88585ec0c03f1de0aafa178c56313",
      "tree": "e9fc25badfb716e5368079535f548cc8e4b5576a",
      "parents": [
        "234b27c3fd58fc0e15c04dd0fbf4337fac9c2a06"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Nov 12 09:33:09 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 13 20:46:58 2009 -0800"
      },
      "message": "inetpeer: Optimize inet_getid()\n\nWhile investigating for network latencies, I found inet_getid() was a\ncontention point for some workloads, as inet_peer_idlock is shared\nby all inet_getid() users regardless of peers.\n\nOne way to fix this is to make ip_id_count an atomic_t instead\nof __u16, and use atomic_add_return().\n\nIn order to keep sizeof(struct inet_peer) \u003d 64 on 64bit arches\ntcp_ts_stamp is also converted to __u32 instead of \"unsigned long\".\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f8572d8f2a2ba75408b97dc24ef47c83671795d7",
      "tree": "052506a457939fea00d138d3a982d778df34e14c",
      "parents": [
        "86b1bc68e2f4244e4ea5db5458df9d19259fbb30"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Nov 05 13:32:03 2009 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Nov 12 02:05:06 2009 -0800"
      },
      "message": "sysctl net: Remove unused binary sysctl code\n\nNow that sys_sysctl is a compatiblity wrapper around /proc/sys\nall sysctl strategy routines, and all ctl_name and strategy\nentries in the sysctl tables are unused, and can be\nrevmoed.\n\nIn addition neigh_sysctl_register has been modified to no longer\ntake a strategy argument and it\u0027s callers have been modified not\nto pass one.\n\nCc: \"David Miller\" \u003cdavem@davemloft.net\u003e\nCc: Hideaki YOSHIFUJI \u003cyoshfuji@linux-ipv6.org\u003e\nCc: netdev@vger.kernel.org\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "230f9bb701d37ae9b48e96456689452978f5c439",
      "tree": "9d2690917533bbb4498c8c9df838de2d38360912",
      "parents": [
        "000ba2e43f33901859fd794bb33c885909d53b3b",
        "887e671f324d9898aaedb29a6ece6c853c394067"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 06 00:55:55 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 06 00:55:55 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/usb/cdc_ether.c\n\nAll CDC ethernet devices of type USB_CLASS_COMM need to use\n\u0027\u0026mbm_info\u0027.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b0c110ca8e89f2c9cd52ec7fb1b98c5b7aa78496",
      "tree": "613bb6966bce4b5dc63e5090aff04254f7dbb709",
      "parents": [
        "14d18a81b5171d4433e41129619c75748b4f4d26"
      ],
      "author": {
        "name": "jamal",
        "email": "hadi@cyberus.ca",
        "time": "Sun Oct 18 02:12:33 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 29 22:49:12 2009 -0700"
      },
      "message": "net: Fix RPF to work with policy routing\n\nPolicy routing is not looked up by mark on reverse path filtering.\nThis fixes it.\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0eae750e6019a93643063924209c1daf9cb9b4a7",
      "tree": "a9c85a1561be628ed6bd45e70ebd833fdd1828a9",
      "parents": [
        "ce5eb7a29251a66e613a300532b642ddc23b48d8"
      ],
      "author": {
        "name": "John Dykstra",
        "email": "john.dykstra1@gmail.com",
        "time": "Mon Oct 19 21:53:53 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 19 23:22:52 2009 -0700"
      },
      "message": "IP: Cleanups\n\nUse symbols instead of magic constants while checking PMTU discovery\nsetsockopt.\n\nRemove redundant test in ip_rt_frag_needed() (done by caller).\n\nSigned-off-by: John Dykstra \u003cjohn.dykstra1@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38",
      "tree": "121df3bfffc7853ac6d2c514ad514d4a748a0933",
      "parents": [
        "c0d0787b6d47d9f4d5e8bd321921104e854a9135"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "sysctl: remove \"struct file *\" argument of -\u003eproc_handler\n\nIt\u0027s unused.\n\nIt isn\u0027t needed -- read or write flag is already passed and sysctl\nshouldn\u0027t care about the rest.\n\nIt _was_ used in two places at arch/frv for some reason.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4481374ce88ba8f460c8b89f2572027bd27057d0",
      "tree": "6896601b6a1da0e3e932ffa75fcff966c834c02c",
      "parents": [
        "4738e1b9cf8f9e28d7de080a5e6ce5d0095ea18f"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Mon Sep 21 17:03:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:38 2009 -0700"
      },
      "message": "mm: replace various uses of num_physpages by totalram_pages\n\nSizing of memory allocations shouldn\u0027t depend on the number of physical\npages found in a system, as that generally includes (perhaps a huge amount\nof) non-RAM pages.  The amount of what actually is usable as storage\nshould instead be used as a basis here.\n\nSome of the calculations (i.e.  those not intending to use high memory)\nshould likely even use (totalram_pages - totalhigh_pages).\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "30038fc61adfdab162b1966e34261f06eda67f02",
      "tree": "c9266e5d3c54c7a9a4b17bd68b28b24d629249b2",
      "parents": [
        "df19a6267705456f463871ae2aabc44299909d2a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Aug 28 23:52:01 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 28 23:52:01 2009 -0700"
      },
      "message": "net: ip_rt_send_redirect() optimization\n\nWhile doing some forwarding benchmarks, I noticed\nip_rt_send_redirect() is rather expensive, even if send_redirects is\nfalse for the device.\n\nFix is to avoid two atomic ops, we dont really need to take a\nreference on in_dev\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a33bc5c15154c835aae26f16e6a3a7d9ad4acb45",
      "tree": "cf7683b1b2d2fd170bfc6650ea84a4b9a81eebbf",
      "parents": [
        "9aada7ac047f789ffb27540cc1695989897b2dfe"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Thu Jul 30 18:52:15 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 30 18:52:15 2009 -0700"
      },
      "message": "xfrm: select sane defaults for xfrm[4|6] gc_thresh\n\nChoose saner defaults for xfrm[4|6] gc_thresh values on init\n\nCurrently, the xfrm[4|6] code has hard-coded initial gc_thresh values\n(set to 1024).  Given that the ipv4 and ipv6 routing caches are sized\ndynamically at boot time, the static selections can be non-sensical.\nThis patch dynamically selects an appropriate gc threshold based on\nthe corresponding main routing table size, using the assumption that\nwe should in the worst case be able to handle as many connections as\nthe routing table can.\n\nFor ipv4, the maximum route cache size is 16 * the number of hash\nbuckets in the route cache.  Given that xfrm4 starts garbage\ncollection at the gc_thresh and prevents new allocations at 2 *\ngc_thresh, we set gc_thresh to half the maximum route cache size.\n\nFor ipv6, its a bit trickier.  there is no maximum route cache size,\nbut the ipv6 dst_ops gc_thresh is statically set to 1024.  It seems\nsane to select a simmilar gc_thresh for the xfrm6 code that is half\nthe number of hash buckets in the v6 route cache times 16 (like the v4\ncode does).\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b6280b47a7a42970d098a3059f4ebe7e55e90d8d",
      "tree": "527607fdec0db21c6b49b97c7e8b19671bfe25bf",
      "parents": [
        "d55d87fdff8252d0e2f7c28c2d443aee17e9d70f"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Mon Jun 22 10:18:53 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 23 16:36:26 2009 -0700"
      },
      "message": "ipv4 routing: Ensure that route cache entries are usable and reclaimable with caching is off\n\nWhen route caching is disabled (rt_caching returns false), We still use route\ncache entries that are created and passed into rt_intern_hash once.  These\nroutes need to be made usable for the one call path that holds a reference to\nthem, and they need to be reclaimed when they\u0027re finished with their use.  To be\nmade usable, they need to be associated with a neighbor table entry (which they\ncurrently are not), otherwise iproute_finish2 just discards the packet, since we\ndon\u0027t know which L2 peer to send the packet to.  To do this binding, we need to\nfollow the path a bit higher up in rt_intern_hash, which calls\narp_bind_neighbour, but not assign the route entry to the hash table.\nCurrently, if caching is off, we simply assign the route to the rp pointer and\nare reutrn success.  This patch associates us with a neighbor entry first.\n\nSecondly, we need to make sure that any single use routes like this are known to\nthe garbage collector when caching is off.  If caching is off, and we try to\nhash in a route, it will leak when its refcount reaches zero.  To avoid this,\nthis patch calls rt_free on the route cache entry passed into rt_intern_hash.\nThis places us on the gc list for the route cache garbage collector, so that\nwhen its refcount reaches zero, it will be reclaimed (Thanks to Alexey for this\nsuggestion).\n\nI\u0027ve tested this on a local system here, and with these patches in place, I\u0027m\nable to maintain routed connectivity to remote systems, even if I set\n/proc/sys/net/ipv4/rt_cache_rebuild_count to -1, which forces rt_caching to\nreturn false.\n\nSigned-off-by: Neil Horman \u003cnhorman@redhat.com\u003e\nReported-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nReported-by: Maxime Bizon \u003cmbizon@freebox.fr\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "73e42897e8e5619eacb787d2ce69be12f47cfc21",
      "tree": "02ce26705cbca451b069205069afb0956deb9e04",
      "parents": [
        "952e57ba3769d6fc6139b8a99c32ea2bb63f23e9"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Sat Jun 20 01:15:16 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 20 01:15:16 2009 -0700"
      },
      "message": "ipv4: fix NULL pointer + success return in route lookup path\n\nDon\u0027t drop route if we\u0027re not caching\t\n\n\tI recently got a report of an oops on a route lookup.  Maxime was\ntesting what would happen if route caching was turned off (doing so by setting\nmaking rt_caching always return 0), and found that it triggered an oops.  I\nlooked at it and found that the problem stemmed from the fact that the route\nlookup routines were returning success from their lookup paths (which is good),\nbut never set the **rp pointer to anything (which is bad).  This happens because\nin rt_intern_hash, if rt_caching returns false, we call rt_drop and return 0.\nThis almost emulates slient success.  What we should be doing is assigning *rp \u003d\nrt and _not_ dropping the route.  This way, during slow path lookups, when we\ncreate a new route cache entry, we don\u0027t immediately discard it, rather we just\ndon\u0027t add it into the cache hash table, but we let this one lookup use it for\nthe purpose of this route request.  Maxime has tested and reports it prevents\nthe oops.  There is still a subsequent routing issue that I\u0027m looking into\nfurther, but I\u0027m confident that, even if its related to this same path, this\npatch makes sense to take.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "125bb8f5637bd653244728f734bcac218986d910",
      "tree": "1d78145dd39b13d2dcc0eb5426b8d1c18b035f03",
      "parents": [
        "13be8a126850692839934116fbdaf008bfdedec1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jun 11 20:10:07 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 13 23:36:31 2009 -0700"
      },
      "message": "net: use a deferred timer in rt_check_expire\n\nFor the sake of power saver lovers, use a deferrable timer to fire\nrt_check_expire()\n\nAs some big routers cache equilibrium depends on garbage collection\ndone in time, we take into account elapsed time between two\nrt_check_expire() invocations to adjust the amount of slots we have to\ncheck.\n\nBased on an initial idea and patch from Tero Kristo\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Tero Kristo \u003ctero.kristo@nokia.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "adf30907d63893e4208dfe3f5c88ae12bc2f25d5",
      "tree": "0f07542bb95de2ad537540868aba6cf87a86e17d",
      "parents": [
        "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:19:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:04 2009 -0700"
      },
      "message": "net: skb-\u003edst accessors\n\nDefine three accessors to get/set dst attached to a skb\n\nstruct dst_entry *skb_dst(const struct sk_buff *skb)\n\nvoid skb_dst_set(struct sk_buff *skb, struct dst_entry *dst)\n\nvoid skb_dst_drop(struct sk_buff *skb)\nThis one should replace occurrences of :\ndst_release(skb-\u003edst)\nskb-\u003edst \u003d NULL;\n\nDelete skb-\u003edst field\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a",
      "tree": "3e368d9a78f87eb9dd7ff9e57f4aab3f4a96e3b1",
      "parents": [
        "dfbf97f3ac980b69dfbc41c83a208211a38443e8"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:14:27 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:02 2009 -0700"
      },
      "message": "net: skb-\u003ertable accessor\n\nDefine skb_rtable(const struct sk_buff *skb) accessor to get rtable from skb\n\nDelete skb-\u003ertable field\n\nSetting rtable is not allowed, just set dst instead as rtable is an alias.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ddbcb005c395518c2cd0df504cff3d4b5c85853",
      "tree": "03567b8b50d3094ae13c64b44890f9c0d53361b7",
      "parents": [
        "cf8da764fc6959b7efb482f375dfef9830e98205"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue May 19 20:14:28 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 20 17:18:02 2009 -0700"
      },
      "message": "net: fix rtable leak in net/ipv4/route.c\n\nAlexander V. Lukyanov found a regression in 2.6.29 and made a complete\nanalysis found in http://bugzilla.kernel.org/show_bug.cgi?id\u003d13339\nQuoted here because its a perfect one :\n\nbegin_of_quotation\n 2.6.29 patch has introduced flexible route cache rebuilding. Unfortunately the\n patch has at least one critical flaw, and another problem.\n\n rt_intern_hash calculates rthi pointer, which is later used for new entry\n insertion. The same loop calculates cand pointer which is used to clean the\n list. If the pointers are the same, rtable leak occurs, as first the cand is\n removed then the new entry is appended to it.\n\n This leak leads to unregister_netdevice problem (usage count \u003e 0).\n\n Another problem of the patch is that it tries to insert the entries in certain\n order, to facilitate counting of entries distinct by all but QoS parameters.\n Unfortunately, referencing an existing rtable entry moves it to list beginning,\n to speed up further lookups, so the carefully built order is destroyed.\n\n For the first problem the simplest patch it to set rthi\u003d0 when rthi\u003d\u003dcand, but\n it will also destroy the ordering.\nend_of_quotation\n\nProblematic commit is 1080d709fb9d8cd4392f93476ee46a9d6ea05a5b\n(net: implement emergency route cache rebulds when gc_elasticity is exceeded)\n\nTrying to keep dst_entries ordered is too complex and breaks the fact that\norder should depend on the frequency of use for garbage collection.\n\nA possible fix is to make rt_intern_hash() simpler, and only makes\nrt_check_expire() a litle bit smarter, being able to cope with an arbitrary\nentries order. The added loop is running on cache hot data, while cpu\nis prefetching next object, so should be unnoticied.\n\nReported-and-analyzed-by: Alexander V. Lukyanov \u003clav@yar.ru\u003e\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf8da764fc6959b7efb482f375dfef9830e98205",
      "tree": "701e4c42f6563cdb50153485015f0c4b439294ec",
      "parents": [
        "bc8a5397433e4effbaddfa7e462d10b3c060cabb"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue May 19 18:54:22 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 20 17:18:01 2009 -0700"
      },
      "message": "net: fix length computation in rt_check_expire()\n\nrt_check_expire() computes average and standard deviation of chain lengths,\nbut not correclty reset length to 0 at beginning of each chain.\nThis probably gives overflows for sum2 (and sum) on loaded machines instead\nof meaningful results.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c9503e0fe052020e0294cd07d0ecd982eb7c9177",
      "tree": "aa0425fc1f30ebdf8d7455cf59db5c3ea2c7dfd0",
      "parents": [
        "2296e5a0136f7ba64c99f3a48a55a687aa9abcc8"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Mon Apr 27 05:42:24 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 27 05:42:24 2009 -0700"
      },
      "message": "ipv4: Limit size of route cache hash table\n\nRight now we have no upper limit on the size of the route cache hash table.\nOn a 128GB POWER6 box it ends up as 32MB:\n\n    IP route cache hash table entries: 4194304 (order: 9, 33554432 bytes)\n\nIt would be nice to cap this for memory consumption reasons, but a massive\nhashtable also causes a significant spike when measuring OS jitter.\n\nWith a 32MB hashtable and 4 million entries, rt_worker_func is taking\n5 ms to complete. On another system with more memory it\u0027s taking 14 ms.\nEven though rt_worker_func does call cond_sched() to limit its impact,\nin an HPC environment we want to keep all sources of OS jitter to a minimum.\n\nWith the patch applied we limit the number of entries to 512k which\ncan still be overriden by using the rt_entries boot option:\n\n    IP route cache hash table entries: 524288 (order: 6, 4194304 bytes)\n\nWith this patch rt_worker_func now takes 0.460 ms on the same system.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nAcked-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6e15cf04860074ad032e88c306bea656bbdd0f22",
      "tree": "c346383bb7563e8d66b2f4a502f875b259c34870",
      "parents": [
        "be0ea69674ed95e1e98cb3687a241badc756d228",
        "60db56422043aaa455ac7f858ce23c273220f9d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 26 21:39:17 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 27 17:28:43 2009 +0100"
      },
      "message": "Merge branch \u0027core/percpu\u0027 into percpu-cpumask-x86-for-linus-2\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n\tarch/x86/include/asm/fixmap_64.h\n\tarch/x86/include/asm/setup.h\n\tkernel/irq/handle.c\n\nSemantic merge:\n        arch/x86/include/asm/fixmap.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0dcec8c27ba44cd11c6e68c46d5fd553818a3837",
      "tree": "30e5140fbb7f80b1492cb3579b5302a45d09c2f0",
      "parents": [
        "d325100504f1d0c296a1fbfef558deaa655e2240"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 14:07:33 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 14:09:41 2009 +0100"
      },
      "message": "alloc_percpu: add align argument to __alloc_percpu, fix\n\nImpact: build fix\n\nAPI was changed, but not all usage sites were converted:\n\n net/ipv4/route.c: In function ‘ip_rt_init’:\n net/ipv4/route.c:3379: error: too few arguments to function ‘__alloc_percpu’\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "09640e6365c679b5642b1c41b6d7078f51689ddf",
      "tree": "a2b80c153bd23fe59db8c6994fda29923819fcea",
      "parents": [
        "ee437770c42088b9b653e8b3bf28a61fa647f84e"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Sun Feb 01 00:45:17 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 01 00:45:17 2009 -0800"
      },
      "message": "net: replace uses of __constant_{endian}\n\nBase versions handle constant folding now.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4feb88e5c694bfe414cbc3ce0e383f7f7038f90b",
      "tree": "418140ffc541223205b921b9995b981a5cfbc2dd",
      "parents": [
        "f6bb451476be53d456e73bcfd82356afd680bbb0"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:23 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:41 2009 -0800"
      },
      "message": "netns: ipmr: enable namespace support in ipv4 multicast routing code\n\nThis last patch makes the appropriate changes to use and propagate the\nnetwork namespace where needed in IPv4 multicast routing code.\n\nThis consists mainly in replacing all the remaining init_net occurences\nwith current netns pointer retrieved from sockets, net devices or\nmfc_caches depending on the routines\u0027 contexts.\n\nSome routines receive a new \u0027struct net\u0027 parameter to propagate the current\nnetns:\n* vif_add/vif_delete\n* ipmr_new_tunnel\n* mroute_clean_tables\n* ipmr_cache_find\n* ipmr_cache_report\n* ipmr_cache_unresolved\n* ipmr_mfc_add/ipmr_mfc_delete\n* ipmr_get_route\n* rt_fill_info (in route.c)\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0f23174aa8c1aa7a2a6050a72a60d290ef9ee578",
      "tree": "530ed36b528ff6f08034788cef32e0e0756d3bcc",
      "parents": [
        "f201a8a4511a4c9953189924df3c880207194b41"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Dec 29 12:23:42 2008 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 29 22:44:47 2008 -0800"
      },
      "message": "cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits: net\n\nIn future all cpumask ops will only be valid (in general) for bit\nnumbers \u003c nr_cpu_ids.  So use that instead of NR_CPUS in iterators\nand other comparisons.\n\nThis is always safe: no cpu number can be \u003e\u003d nr_cpu_ids, and\nnr_cpu_ids is initialized to NR_CPUS at boot.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "52479b623d3d41df84c499325b6a8c7915413032",
      "tree": "196f303f296b53dc89a05954d9c03226a9b4158b",
      "parents": [
        "cdcbca7c1f1946758cfacb69bc1c7eeaccb11e2d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:35:18 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:35:18 2008 -0800"
      },
      "message": "netns xfrm: lookup in netns\n\nPass netns to xfrm_lookup()/__xfrm_lookup(). For that pass netns\nto flow_cache_lookup() and resolver callback.\n\nTake it from socket or netdevice. Stub DECnet to init_net.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6bb3ce25d05f2990c8a19adaf427531430267c1f",
      "tree": "38c19e4776b36163b9d100258139d58287475f6b",
      "parents": [
        "9b739ba5e66c96938fbc07a4dbd9da5b81eac56f"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 11 17:25:22 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 11 17:25:22 2008 -0800"
      },
      "message": "net: remove struct dst_entry::entry_size\n\nUnused after kmem_cache_zalloc() conversion.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6d9f239a1edb31d6133230f478fd1dc2da338ec5",
      "tree": "305fa0da95a49db4e342f3f3042f8be0968b03ce",
      "parents": [
        "6cf3f41e6c08bca6641a695449791c38a25f35ff"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Nov 03 18:21:05 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 03 18:21:05 2008 -0800"
      },
      "message": "net: \u0027\u0026\u0027 redux\n\nI want to compile out proc_* and sysctl_* handlers totally and\nstub them to NULL depending on config options, however usage of \u0026\nwill prevent this, since taking adress of NULL pointer will break\ncompilation.\n\nSo, drop \u0026 in front of every -\u003eproc_handler and every -\u003estrategy\nhandler, it was never needed in fact.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "673d57e72398edfedc93fb50ff58048077c9d587",
      "tree": "4c6a83072ac64ef63ad73574c3e1c0a683524163",
      "parents": [
        "cffee385d7f367e80b288abf4261256477f7760e"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Oct 31 00:53:57 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 31 00:53:57 2008 -0700"
      },
      "message": "net: replace NIPQUAD() in net/ipv4/ net/ipv6/\n\nUsing NIPQUAD() with NIPQUAD_FMT, %d.%d.%d.%d or %u.%u.%u.%u\ncan be replaced with %pI4\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "93adcc80f3288f1827baf6f821af818f6eeef7f9",
      "tree": "d53faa5267421764ebe8f1d5e83e6eb5bb7ddea6",
      "parents": [
        "def8b4faff5ca349beafbbfeb2c51f3602a6ef3a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Oct 28 13:25:09 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 28 13:25:09 2008 -0700"
      },
      "message": "net: don\u0027t use INIT_RCU_HEAD\n\ncall_rcu() will unconditionally rewrite RCU head anyway.\nApplies to \n\tstruct neigh_parms\n\tstruct neigh_table\n\tstruct net\n\tstruct cipso_v4_doi\n\tstruct in_ifaddr\n\tstruct in_device\n\trt-\u003eu.dst\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "def8b4faff5ca349beafbbfeb2c51f3602a6ef3a",
      "tree": "a90fbb0b6ae2a49c507465801f31df77bc5ebf9d",
      "parents": [
        "b057efd4d226fcc3a92b0dc6d8ea8e8185ecb260"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Oct 28 13:24:06 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 28 13:24:06 2008 -0700"
      },
      "message": "net: reduce structures when XFRM\u003dn\n\nifdef out\n* struct sk_buff::sp\t\t(pointer)\n* struct dst_entry::xfrm\t(pointer)\n* struct sock::sk_policy\t(2 pointers)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1080d709fb9d8cd4392f93476ee46a9d6ea05a5b",
      "tree": "b87a162b10d98f7d44657d7c9a98bbc7385159fd",
      "parents": [
        "1d63e726408dfdb3e10ed8f00c383b30ebb333d3"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Mon Oct 27 12:28:25 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 27 17:06:14 2008 -0700"
      },
      "message": "net: implement emergency route cache rebulds when gc_elasticity is exceeded\n\nThis is a patch to provide on demand route cache rebuilding.  Currently, our\nroute cache is rebulid periodically regardless of need.  This introduced\nunneeded periodic latency.  This patch offers a better approach.  Using code\nprovided by Eric Dumazet, we compute the standard deviation of the average hash\nbucket chain length while running rt_check_expire.  Should any given chain\nlength grow to larger that average plus 4 standard deviations, we trigger an\nemergency hash table rebuild for that net namespace.  This allows for the common\ncase in which chains are well behaved and do not grow unevenly to not incur any\nlatency at all, while those systems (which may be being maliciously attacked),\nonly rebuild when the attack is detected.  This patch take 2 other factors into\naccount:\n1) chains with multiple entries that differ by attributes that do not affect the\nhash value are only counted once, so as not to unduly bias system to rebuilding\nif features like QOS are heavily used\n2) if rebuilding crosses a certain threshold (which is adjustable via the added\nsysctl in this patch), route caching is disabled entirely for that net\nnamespace, since constant rebuilding is less efficient that no caching at all\n\nTested successfully by me.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b225ee5bed70254a100896c473e6dd8c2be45c18",
      "tree": "2f044d5898d15edcff858f624618c788d5b58760",
      "parents": [
        "2e532d68a2b3e2aa6b19731501222069735c741c",
        "95a5afca4a8d2e1cb77e1d4bc6ff9f718dc32f7a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 17 08:58:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 17 08:58:52 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  net: Remove CONFIG_KMOD from net/ (towards removing CONFIG_KMOD entirely)\n  ipv4: Add a missing rcu_assign_pointer() in routing cache.\n  [netdrvr] ibmtr: PCMCIA IBMTR is ok on 64bit\n  xen-netfront: Avoid unaligned accesses to IP header\n  lmc: copy_*_user under spinlock\n  [netdrvr] myri10ge, ixgbe: remove broken select INTEL_IOATDMA\n"
    },
    {
      "commit": "00269b54edbf25f3bb0dccb558ae23a6fc77ed86",
      "tree": "63eb993fc8c463c5f6d023961b61b9dbaccd82cc",
      "parents": [
        "dc976c09da4e13b2b3fda23cca9d0682d1de7213"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Oct 16 14:18:29 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 16 14:18:29 2008 -0700"
      },
      "message": "ipv4: Add a missing rcu_assign_pointer() in routing cache.\n\nrt_intern_hash() is doing an update of a RCU guarded hash chain\nwithout using rcu_assign_pointer() or equivalent barrier.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f221e726bf4e082a05dcd573379ac859bfba7126",
      "tree": "a05f674caac693dc9aec7e46dd06115389f7ece3",
      "parents": [
        "f40cbaa5b0a4719489e6e7947351c99a159aca30"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 15 22:04:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:47 2008 -0700"
      },
      "message": "sysctl: simplify -\u003estrategy\n\nname and nlen parameters passed to -\u003estrategy hook are unused, remove\nthem.  In general -\u003estrategy hook should know what it\u0027s doing, and don\u0027t\ndo something tricky for which, say, pointer to original userspace array\nmay be needed (name).\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e [ networking bits ]\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a210d01ae3ee006b59e54e772a7f212486e0f021",
      "tree": "ceea5f8de75e70b13641f340e3b13a125a52567a",
      "parents": [
        "4edd87ad5cad8e159e0db3ce3131b3d97219c9cd"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Wed Oct 01 07:28:28 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 01 07:28:28 2008 -0700"
      },
      "message": "ipv4: Loosen source address check on IPv4 output\n\nip_route_output() contains a check to make sure that no flows with\nnon-local source IP addresses are routed. This obviously makes using\nsuch addresses impossible.\n\nThis patch introduces a flowi flag which makes omitting this check\npossible. The new flag provides a way of handling transparent and\nnon-transparent connections differently.\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: KOVACS Krisztian \u003chidden@sch.bme.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b171e19ed08c8ba832e5325fadf1be493f56665d",
      "tree": "017208f9fcc4ef2cc3fe5cc3f262d2455eda9f61",
      "parents": [
        "143b11c03cd42f2284efe5128afc057d8fc86c78",
        "7c19a3d280297d43ef5ff7c6b205dc208a16d3d1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 29 23:06:00 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 29 23:06:00 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tnet/mac80211/mlme.c\n"
    },
    {
      "commit": "a627266570605a98c5fda5b8234d9e92015e4d14",
      "tree": "5af86658a09241d08694558f976e93d29e526762",
      "parents": [
        "6be547a61d6220199826070cda792297c3d15994"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Aug 28 01:11:25 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 28 01:11:25 2008 -0700"
      },
      "message": "ip: speedup /proc/net/rt_cache handling\n\nWhen scanning route cache hash table, we can avoid taking locks for\nempty buckets.  Both /proc/net/rt_cache and NETLINK RTM_GETROUTE\ninterface are taken into account.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d994af0d50efc96b2077978fe9f066992639d525",
      "tree": "5f69b70980175e386815da3ac35d08ed27e8a7a0",
      "parents": [
        "7982d5e1b350acb96aa156916c44c25ef87bb809"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Aug 27 02:35:18 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 27 02:35:18 2008 -0700"
      },
      "message": "ipv4: mode 0555 in ipv4_skeleton\n\nvpnc on today\u0027s kernel says Cannot open \"/proc/sys/net/ipv4/route/flush\":\nd--------- 0 root root 0 2008-08-26 11:32 /proc/sys/net/ipv4/route\nd--------- 0 root root 0 2008-08-26 19:16 /proc/sys/net/ipv4/neigh\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2f4520d35d89ca6c5cd129c38e3b11f0283b7d1b",
      "tree": "06038a77e1c4f81a7f349a0c49c6a61061b65922",
      "parents": [
        "30c2235cbc477d4629983d440cdc4f496fec9246"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 25 15:17:44 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 25 15:17:44 2008 -0700"
      },
      "message": "ipv4: sysctl fixes\n\nnet.ipv4.neigh should be a part of skeleton to avoid ordering problems\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c6153b5b77650879d78dec76414213c76dd8d574",
      "tree": "05f4d13104c1dd6dd7c0f04d3815aededec323b8",
      "parents": [
        "323c048836f73a11ded6f9743feda21c00465cb0"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Aug 15 13:44:31 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 15 13:44:31 2008 -0700"
      },
      "message": "ipv4: Disable route secret interval on zero interval\n\nLet me first state that disabling the route cache hash rebuild\nshould not be done without extensive analysis on the risk profile\nand careful deliberation.\n\nHowever, there are times when this can be done safely or for\ntesting.  For example, when you have mechanisms for ensuring\nthat offending parties do not exist in your network.\n\nThis patch lets the user disable the rebuild if the interval is\nset to zero.  This also incidentally fixes a divide-by-zero error\nwith name-spaces.\n\nIn addition, this patch makes the effect of an interval change\nimmediate rather than it taking effect at the next rebuild as\nis currently the case.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "11d46123bfea068a48483f00518d301f452647fb",
      "tree": "d4c1e82e26e1f8dd3ac79e51826af246432fd74a",
      "parents": [
        "abf5cdb89d09ca981db10e1a85fd8531440165f2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 06 18:30:43 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 06 18:30:43 2008 -0700"
      },
      "message": "ipv4: Fix over-ifdeffing of ip_static_sysctl_init.\n\nNoticed by Paulius Zaleckas.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "6d273f8d011c351c9603c1dbfeae2c7458edd30d"
}
