)]}'
{
  "log": [
    {
      "commit": "4a2b9c3756077c05dd8666e458a751d2248b61b6",
      "tree": "9d074adc7c94a7fdb3be69e1e0572184f76056a3",
      "parents": [
        "7313714775a6411402f63261c05fbb4ee3d5b64a"
      ],
      "author": {
        "name": "Dan Siemon",
        "email": "dan@coverfire.com",
        "time": "Tue Mar 15 13:56:07 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 15 18:53:54 2011 -0700"
      },
      "message": "net_sched: fix ip_tos2prio\n\nECN support incorrectly maps ECN BESTEFFORT packets to TC_PRIO_FILLER\n(1) instead of TC_PRIO_BESTEFFORT (0)\n\nThis means ECN enabled flows are placed in pfifo_fast/prio low priority\nband, giving ECN enabled flows [ECT(0) and CE codepoints] higher drop\nprobabilities.\n\nThis is rather unfortunate, given we would like ECN being more widely\nused.\n\nRef : http://www.coverfire.com/archives/2011/03/13/pfifo_fast-and-ecn/\n\nSigned-off-by: Dan Siemon \u003cdan@coverfire.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Dave Täht \u003cd@taht.net\u003e\nCc: Jonathan Morton \u003cchromatix99@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c337ffb68e1e71bad069b14d2246fa1e0c31699c",
      "tree": "7861a59b196adfd63758cc0921e4fb56030fbaf3",
      "parents": [
        "30df754dedebf27ef90452944a723ba058d23396",
        "84c0c6933cb0303fa006992a6659c2b46de4eb17"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 15 15:15:17 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 15 15:15:17 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "31111c26d976ca0f298312f08e44cdb078005b03",
      "tree": "ca08ef55b2ea91f9e69f8a78bb8b4363a1759b54",
      "parents": [
        "0c0217b016ba8a970a6f6ab62ad0d858f39881ca",
        "2f5dc63123905a89d4260ab8ee08d19ec104db04"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 15 13:03:27 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 15 13:03:27 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6\n\nConflicts:\n\tDocumentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "de81bbea17650769882bc625d6b5df11ee7c4b24",
      "tree": "2e1250b7309977fc48b4f5b88f83959795f04591",
      "parents": [
        "6a8ab060779779de8aea92ce3337ca348f973f54"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fwestphal@astaro.com",
        "time": "Tue Mar 15 20:16:20 2011 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Mar 15 20:16:20 2011 +0100"
      },
      "message": "netfilter: ipt_addrtype: rename to xt_addrtype\n\nFollowup patch will add ipv6 support.\n\nipt_addrtype.h is retained for compatibility reasons, but no longer used\nby the kernel.\n\nSigned-off-by: Florian Westphal \u003cfwestphal@astaro.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "78b79876761b86653df89c48a7010b5cbd41a84a",
      "tree": "8b2d66a823640ab1a5c7e31d4b27b69bfbb86cde",
      "parents": [
        "42eab94fff18cb1091d3501cd284d6bd6cc9c143"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Tue Mar 15 13:36:05 2011 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Mar 15 13:36:05 2011 +0100"
      },
      "message": "netfilter: ip_tables: fix infoleak to userspace\n\nStructures ipt_replace, compat_ipt_replace, and xt_get_revision are\ncopied from userspace.  Fields of these structs that are\nzero-terminated strings are not checked.  When they are used as argument\nto a format string containing \"%s\" in request_module(), some sensitive\ninformation is leaked to userspace via argument of spawned modprobe\nprocess.\n\nThe first and the third bugs were introduced before the git epoch; the\nsecond was introduced in 2722971c (v2.6.17-rc1).  To trigger the bug\none should have CAP_NET_ADMIN.\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "42eab94fff18cb1091d3501cd284d6bd6cc9c143",
      "tree": "b30e101f5503847706a7aa24455d47f5e45cf7e1",
      "parents": [
        "4656c4d61adb8dc3ee04c08f57a5cc7598814420"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Tue Mar 15 13:35:21 2011 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Mar 15 13:35:21 2011 +0100"
      },
      "message": "netfilter: arp_tables: fix infoleak to userspace\n\nStructures ipt_replace, compat_ipt_replace, and xt_get_revision are\ncopied from userspace.  Fields of these structs that are\nzero-terminated strings are not checked.  When they are used as argument\nto a format string containing \"%s\" in request_module(), some sensitive\ninformation is leaked to userspace via argument of spawned modprobe\nprocess.\n\nThe first bug was introduced before the git epoch;  the second is\nintroduced by 6b7d31fc (v2.6.15-rc1);  the third is introduced by\n6b7d31fc (v2.6.15-rc1).  To trigger the bug one should have\nCAP_NET_ADMIN.\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "b5ccd07337489fa9c9d32e0b628a2168b7953adf",
      "tree": "4c0bd60c5500440e6a5bb7086d54dedfb8eed815",
      "parents": [
        "2b4636a5f8ca547000f6aba24ec1c58f31f4a91d"
      ],
      "author": {
        "name": "Sangtae Ha",
        "email": "sangtae.ha@gmail.com",
        "time": "Mon Mar 14 07:52:18 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 14 15:54:42 2011 -0700"
      },
      "message": "tcp_cubic: fix low utilization of CUBIC with HyStart\n\nHyStart sets the initial exit point of slow start.\nSuppose that HyStart exits at 0.5BDP in a BDP network and no history exists.\nIf the BDP of a network is large, CUBIC\u0027s initial cwnd growth may be\ntoo conservative to utilize the link.\nCUBIC increases the cwnd 20% per RTT in this case.\n\nSigned-off-by: Sangtae Ha \u003csangtae.ha@gmail.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2b4636a5f8ca547000f6aba24ec1c58f31f4a91d",
      "tree": "4b46132a943bab1edaf61ac49b96d45dfc8907e2",
      "parents": [
        "3b585b34493ec9db382d6c325d4ed77b9eb2d2a5"
      ],
      "author": {
        "name": "Sangtae Ha",
        "email": "sangtae.ha@gmail.com",
        "time": "Mon Mar 14 07:52:17 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 14 15:54:42 2011 -0700"
      },
      "message": "tcp_cubic: make the delay threshold of HyStart less sensitive\n\nMake HyStart less sensitive to abrupt delay variations due to buffer bloat.\n\nSigned-off-by: Sangtae Ha \u003csangtae.ha@gmail.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nReported-by: Lucas Nussbaum \u003clucas.nussbaum@loria.fr\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3b585b34493ec9db382d6c325d4ed77b9eb2d2a5",
      "tree": "e3208425d46953bb587b2db6dfb521064f127aed",
      "parents": [
        "17a6e9f1aa9ba07ca13a1eaf1e631e743af50cca"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Mar 14 07:52:16 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 14 15:54:40 2011 -0700"
      },
      "message": "tcp_cubic: enable high resolution ack time if needed\n\nThis is a refined version of an earlier patch by Lucas Nussbaum.\nCubic needs RTT values in milliseconds. If HZ \u003c 1000 then\nthe values will be too coarse.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nReported-by: Lucas Nussbaum \u003clucas.nussbaum@loria.fr\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "17a6e9f1aa9ba07ca13a1eaf1e631e743af50cca",
      "tree": "131ea88cfe5d80c162de866ee4156178f70156b1",
      "parents": [
        "aac46324e12a2bf2e9e0855ad6a287945e34ad39"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Mar 14 07:52:15 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 14 15:54:39 2011 -0700"
      },
      "message": "tcp_cubic: fix clock dependency\n\nThe hystart code was written with assumption that HZ\u003d1000.\nReplace the use of jiffies with bictcp_clock as a millisecond\nreal time clock.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nReported-by: Lucas Nussbaum \u003clucas.nussbaum@loria.fr\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aac46324e12a2bf2e9e0855ad6a287945e34ad39",
      "tree": "3f6fc25d6fb597cf051de4426f1c81e7f145c3a5",
      "parents": [
        "c54b4b7655447c1f24f6d50779c22eba9ee0fd24"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Mar 14 07:52:14 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 14 15:54:39 2011 -0700"
      },
      "message": "tcp_cubic: make ack train delta value a parameter\n\nMake the spacing between ACK\u0027s that indicates a train a tuneable\nvalue like other hystart values.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c54b4b7655447c1f24f6d50779c22eba9ee0fd24",
      "tree": "42178e794fafe36de1a00607b28363e1fe8da3f2",
      "parents": [
        "febf081987ec445f071ed10b73e9707a88cc5cc4"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Mar 14 07:52:13 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 14 15:54:38 2011 -0700"
      },
      "message": "tcp_cubic: fix comparison of jiffies\n\nJiffies wraps around therefore the correct way to compare is\nto use cast to signed value.\n\nNote: cubic is not using full jiffies value on 64 bit arch\nbecause using full unsigned long makes struct bictcp grow too\nlarge for the available ca_priv area.\n\nIncludes correction from Sangtae Ha to improve ack train detection.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "febf081987ec445f071ed10b73e9707a88cc5cc4",
      "tree": "2afd0d3fba79620b889935b678ac8c024e10c19d",
      "parents": [
        "a23c37f1110d8912d4d0a66e78197e9195bb36d4"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Mar 14 07:52:12 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 14 15:54:38 2011 -0700"
      },
      "message": "tcp: fix RTT for quick packets in congestion control\n\nIn the congestion control interface, the callback for each ACK\nincludes an estimated round trip time in microseconds.\nSome algorithms need high resolution (Vegas style) but most only\nneed jiffie resolution.  If RTT is not accurate (like a retransmission)\n-1 is used as a flag value.\n\nWhen doing coarse resolution if RTT is less than a a jiffie\nthen 0 should be returned rather than no estimate. Otherwise algorithms\nthat expect good ack\u0027s to trigger slow start (like CUBIC Hystart)\nwill be confused.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4e75db2e8ff2c97762e87f61f54d7cdeaab1a6b0",
      "tree": "d6c0c4fff29a1f69afe2e262b31e579d1c6f0baf",
      "parents": [
        "d8647b79c3b7e223ac051439d165bc8e7bbb832f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Mar 13 23:22:23 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 13 23:22:23 2011 -0700"
      },
      "message": "inetpeer: should use call_rcu() variant\n\nAfter commit 7b46ac4e77f3224a (inetpeer: Don\u0027t disable BH for initial\nfast RCU lookup.), we should use call_rcu() to wait proper RCU grace\nperiod.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0dc49e9b28a7253ff05be2794d747f8ea5f1f423",
      "tree": "9cb4574b77949df1cf2f9cc0015e0751b59ad0aa",
      "parents": [
        "1ce3644ade9c865c755bf0f6a4e109b7bb6eb60f"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Mar 08 00:07:14 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 13 20:22:29 2011 -0700"
      },
      "message": "esp4: Add support for IPsec extended sequence numbers\n\nThis patch adds IPsec extended sequence numbers support to esp4.\nWe use the authencesn crypto algorithm to handle esp with separate\nencryption/authentication algorithms.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ce3644ade9c865c755bf0f6a4e109b7bb6eb60f",
      "tree": "14ce0727337a43d1fa28432d01189d1a5f4269c7",
      "parents": [
        "9736acf395d3608583a7be70f62800b494fa103c"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Mar 08 00:06:31 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 13 20:22:28 2011 -0700"
      },
      "message": "xfrm: Use separate low and high order bits of the sequence numbers in xfrm_skb_cb\n\nTo support IPsec extended sequence numbers, we split the\noutput sequence numbers of xfrm_skb_cb in low and high order 32 bits\nand we add the high order 32 bits to the input sequence numbers.\nAll users are updated accordingly.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "46af31800b6916c92fffa529dc3c357008da957d",
      "tree": "2c66ee7b78527da504a294f1bd8a2a899623fead",
      "parents": [
        "bef55aebd560c5a6f8883c421abccee39978c58c"
      ],
      "author": {
        "name": "Hiroaki SHIMODA",
        "email": "shimoda.hiroaki@gmail.com",
        "time": "Wed Mar 09 20:09:58 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 13 18:37:49 2011 -0700"
      },
      "message": "ipv4: Fix PMTU update.\n\nOn current net-next-2.6, when Linux receives ICMP Type: 3, Code: 4\n(Destination unreachable (Fragmentation needed)),\n\n  icmp_unreach\n    -\u003e ip_rt_frag_needed\n         (peer-\u003epmtu_expires is set here)\n    -\u003e tcp_v4_err\n         -\u003e do_pmtu_discovery\n              -\u003e ip_rt_update_pmtu\n                   (peer-\u003epmtu_expires is already set,\n                    so check_peer_pmtu is skipped.)\n                   -\u003e check_peer_pmtu\n\ncheck_peer_pmtu is skipped and MTU is not updated.\n\nTo fix this, let check_peer_pmtu execute unconditionally.\nAnd some minor fixes\n1) Avoid potential peer-\u003epmtu_expires set to be zero.\n2) In check_peer_pmtu, argument of time_before is reversed.\n3) check_peer_pmtu expects peer-\u003epmtu_orig is initialized as zero,\n   but not initialized.\n\nSigned-off-by: Hiroaki SHIMODA \u003cshimoda.hiroaki@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9cce96df5b76691712dba22e83ff5efe900361e1",
      "tree": "eecf99e64c6866af944e1e1644d87737392b2da2",
      "parents": [
        "f42454d632753d71ea1a2df09be7bbda32b6372d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 03:00:33 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:54 2011 -0800"
      },
      "message": "net: Put fl4_* macros to struct flowi4 and use them again.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f42454d632753d71ea1a2df09be7bbda32b6372d",
      "tree": "15bd0056a1e5a72897f84a0ae331163dfa8fd797",
      "parents": [
        "7e1dc7b6f709dfc1a9ab4b320dbe723f45992693"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 02:44:16 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:53 2011 -0800"
      },
      "message": "ipv4: Kill fib_semantic_match declaration from fib_lookup.h\n\nThis function no longer exists.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7e1dc7b6f709dfc1a9ab4b320dbe723f45992693",
      "tree": "db3a0ae07fb469c7f809a448bc39563f98edfec5",
      "parents": [
        "2032656e76b5355151effdff14de4a1a58643915"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 02:42:11 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:52 2011 -0800"
      },
      "message": "net: Use flowi4 and flowi6 in xfrm layer.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b6f21b268026165a239edb5f4d7120eacf7bc593",
      "tree": "ee03e4fd4a48483bd4d0c21687509d93a3e91729",
      "parents": [
        "3073e5ab927487328d48cd74faac0f95a8336867"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 02:09:18 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:50 2011 -0800"
      },
      "message": "ipv4: Use flowi4 in UDP\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3073e5ab927487328d48cd74faac0f95a8336867",
      "tree": "4e4a01225679b32bdb5391c82f812748fa6ef615",
      "parents": [
        "da91981bee8de20bcd06ee0dbddd53d62d23b1bd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 02:06:33 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:50 2011 -0800"
      },
      "message": "netfilter: Use flowi4 in nf_nat_standalone.c\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "da91981bee8de20bcd06ee0dbddd53d62d23b1bd",
      "tree": "4c99ba1fa3a44614b434626b7ebfe1f4ce677e93",
      "parents": [
        "9ade22861f922344788321e374c542c92bc049b6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 02:04:50 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:49 2011 -0800"
      },
      "message": "ipv4: Use flowi4 in ipmr code.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9ade22861f922344788321e374c542c92bc049b6",
      "tree": "c0bc23180b3f51104745d263a106c62b4bec11a4",
      "parents": [
        "9d6ec938019c6b16cb9ec96598ebe8f20de435fe"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 02:02:42 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:49 2011 -0800"
      },
      "message": "ipv4: Use flowi4 in FIB layer.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d6ec938019c6b16cb9ec96598ebe8f20de435fe",
      "tree": "9b850eb7fd48a6e5ffc15f47afd2e3edc93f5290",
      "parents": [
        "68a5e3dd0a0056d8b349f9eea3756adda53ec17a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 01:12:47 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:48 2011 -0800"
      },
      "message": "ipv4: Use flowi4 in public route lookup interfaces.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "68a5e3dd0a0056d8b349f9eea3756adda53ec17a",
      "tree": "cca890c41eb5b914d026bbfcc38645a1a402e10b",
      "parents": [
        "22bd5b9b13f2931ac80949f8bfbc40e8cab05be7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 11 20:07:33 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:48 2011 -0800"
      },
      "message": "ipv4: Use struct flowi4 internally in routing lookups.\n\nWe will change the externally visible APIs next.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "22bd5b9b13f2931ac80949f8bfbc40e8cab05be7",
      "tree": "d30639ce43efe3186461b0fff962f80eb2417c61",
      "parents": [
        "59b1a94c9a034e63a5e030a5154be1d4d84677d9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 11 19:54:08 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:47 2011 -0800"
      },
      "message": "ipv4: Pass ipv4 flow objects into fib_lookup() paths.\n\nTo start doing these conversions, we need to add some temporary\nflow4_* macros which will eventually go away when all the protocol\ncode paths are changed to work on AF specific flowi objects.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "56bb8059e1a8bf291054c26367564dc302f6fd8f",
      "tree": "56ec5ae2c1856208ccf97a0cd6b21ab0587f34cf",
      "parents": [
        "6281dcc94a96bd73017b2baa8fa83925405109ef"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 00:44:35 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:46 2011 -0800"
      },
      "message": "net: Break struct flowi out into AF specific instances.\n\nNow we have struct flowi4, flowi6, and flowidn for each address\nfamily.  And struct flowi is just a union of them all.\n\nIt might have been troublesome to convert flow_cache_uli_match() but\nas it turns out this function is completely unused and therefore can\nbe simply removed.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6281dcc94a96bd73017b2baa8fa83925405109ef",
      "tree": "8deee4d66d256d10ea25f66520eb96b1fade1545",
      "parents": [
        "08704bcbf022786532b5f188935ab6619906049f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 00:43:55 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:46 2011 -0800"
      },
      "message": "net: Make flowi ports AF dependent.\n\nCreate two sets of port member accessors, one set prefixed by fl4_*\nand the other prefixed by fl6_*\n\nThis will let us to create AF optimal flow instances.\n\nIt will work because every context in which we access the ports,\nwe have to be fully aware of which AF the flowi is anyways.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1d28f42c1bd4bb2363d88df74d0128b4da135b4a",
      "tree": "cb2e652fe79a2bc307e871bc2d3fa51cc8051e45",
      "parents": [
        "ca116922afa8cc5ad46b00c0a637b1cde5ca478a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 00:29:39 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:44 2011 -0800"
      },
      "message": "net: Put flowi_* prefix on AF independent members of struct flowi\n\nI intend to turn struct flowi into a union of AF specific flowi\nstructs.  There will be a common structure that each variant includes\nfirst, much like struct sock_common.\n\nThis is the first step to move in that direction.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "78fbfd8a653ca972afe479517a40661bfff6d8c3",
      "tree": "9dccc5c16bf269d53d8499064ec95a998e84c646",
      "parents": [
        "1561747ddf9d28185548687b11aae7074d6129c4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 00:00:52 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:42 2011 -0800"
      },
      "message": "ipv4: Create and use route lookup helpers.\n\nThe idea here is this minimizes the number of places one has to edit\nin order to make changes to how flows are defined and used.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1b7fe59322bef9e7a2c05b64a07a66b875299736",
      "tree": "1e3a1ca9931e41a7bf6bdec0ddbabe1f6c466b02",
      "parents": [
        "ff3fccb3d05756ec9fb44350b059d31a5e8e0fdc"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 17:01:16 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 17:03:45 2011 -0800"
      },
      "message": "ipv4: Kill flowi arg to fib_select_multipath()\n\nCompletely unused.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ff3fccb3d05756ec9fb44350b059d31a5e8e0fdc",
      "tree": "a1b7f7d24e90ebc0f057843df9bd65bbd435a880",
      "parents": [
        "dbdd9a52e38a4a93adfa4d0278801cce4fad98eb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 16:23:24 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 17:01:01 2011 -0800"
      },
      "message": "ipv4: Remove unnecessary test from ip_mkroute_input()\n\nfl-\u003eoif will always be zero on the input path, so there is no reason\nto test for that.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dbdd9a52e38a4a93adfa4d0278801cce4fad98eb",
      "tree": "a223ba84f33976b0d2c17d3177cbe976a3c948fc",
      "parents": [
        "33175d84ee3fa29991adb80513683e010769e807"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 16:34:38 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 16:37:26 2011 -0800"
      },
      "message": "ipv4: Remove redundant RCU locking in ip_check_mc().\n\nAll callers are under rcu_read_lock() protection already.\n\nRename to ip_check_mc_rcu() to make it even more clear.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "33175d84ee3fa29991adb80513683e010769e807",
      "tree": "3731f61cf82451b6892cf1368701e57e35d92908",
      "parents": [
        "c5908939b2738bafe1b309bc2465cb9f2e6184c5",
        "6dfbd87a20a737641ef228230c77f4262434fa24"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 14:26:00 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 14:26:00 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/bnx2x/bnx2x_cmn.c\n"
    },
    {
      "commit": "bef6e7e76868ab454d5e83635a4a7a1961c74fb5",
      "tree": "1a7417b9dde942cc71f87c02688c6ac6b0e57a72",
      "parents": [
        "dcbcdf22f500ac6e4ec06485341024739b9dc241",
        "9179746652faf0aba07b8b7f770dcf29892a24c6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 14:00:44 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 14:00:44 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n"
    },
    {
      "commit": "a252bebe22155313ccdadc20b79f67a239dc9ecb",
      "tree": "d0563c42cfa57029e3020fdae5afb458c9673dae",
      "parents": [
        "cc7e17ea0427a5df319e43606a3d6c53b13a6e9c"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Mar 10 00:40:17 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 10 00:40:17 2011 -0800"
      },
      "message": "tcp: mark tcp_congestion_ops read_mostly\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cc7e17ea0427a5df319e43606a3d6c53b13a6e9c",
      "tree": "3a4030df19e212619ce4437c2100a23a35e759dd",
      "parents": [
        "67e28ffd864eebbaf48b404d0a8cb4edd2bdc924"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 20:57:50 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 20:57:50 2011 -0800"
      },
      "message": "ipv4: Optimize flow initialization in fib_validate_source().\n\nLike in commit 44713b67db10c774f14280c129b0d5fd13c70cf2\n(\"ipv4: Optimize flow initialization in output route lookup.\"\nwe can optimize the on-stack flow setup to only initialize\nthe members which are actually used.\n\nOtherwise we bzero the entire structure, then initialize\nexplicitly the first half of it.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "67e28ffd864eebbaf48b404d0a8cb4edd2bdc924",
      "tree": "acd2328f3d45db16b45841e796c23815570748f6",
      "parents": [
        "2f4e1b3970973bbb57cc3a3b9d67e67c1c648c37"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 20:42:07 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 20:42:07 2011 -0800"
      },
      "message": "ipv4: Optimize flow initialization in input route lookup.\n\nLike in commit 44713b67db10c774f14280c129b0d5fd13c70cf2\n(\"ipv4: Optimize flow initialization in output route lookup.\"\nwe can optimize the on-stack flow setup to only initialize\nthe members which are actually used.\n\nOtherwise we bzero the entire structure, then initialize\nexplicitly the first half of it.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8909c9ad8ff03611c9c96c9a92656213e4bb495b",
      "tree": "10b023c05503a9f6a165a23b8e65d8f3e70fd42d",
      "parents": [
        "a5abba989deceb731047425812d268daf7536575"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Wed Mar 02 00:33:13 2011 +0300"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Mar 10 10:25:19 2011 +1100"
      },
      "message": "net: don\u0027t allow CAP_NET_ADMIN to load non-netdev kernel modules\n\nSince a8f80e8ff94ecba629542d9b4b5f5a8ee3eb565c any process with\nCAP_NET_ADMIN may load any module from /lib/modules/.  This doesn\u0027t mean\nthat CAP_NET_ADMIN is a superset of CAP_SYS_MODULE as modules are\nlimited to /lib/modules/**.  However, CAP_NET_ADMIN capability shouldn\u0027t\nallow anybody load any module not related to networking.\n\nThis patch restricts an ability of autoloading modules to netdev modules\nwith explicit aliases.  This fixes CVE-2011-1019.\n\nArnd Bergmann suggested to leave untouched the old pre-v2.6.32 behavior\nof loading netdev modules by name (without any prefix) for processes\nwith CAP_SYS_MODULE to maintain the compatibility with network scripts\nthat use autoloading netdev modules by aliases like \"eth0\", \"wlan0\".\n\nCurrently there are only three users of the feature in the upstream\nkernel: ipip, ip_gre and sit.\n\n    root@albatros:~# capsh --drop\u003d$(seq -s, 0 11),$(seq -s, 13 34) --\n    root@albatros:~# grep Cap /proc/$$/status\n    CapInh:\t0000000000000000\n    CapPrm:\tfffffff800001000\n    CapEff:\tfffffff800001000\n    CapBnd:\tfffffff800001000\n    root@albatros:~# modprobe xfs\n    FATAL: Error inserting xfs\n    (/lib/modules/2.6.38-rc6-00001-g2bf4ca3/kernel/fs/xfs/xfs.ko): Operation not permitted\n    root@albatros:~# lsmod | grep xfs\n    root@albatros:~# ifconfig xfs\n    xfs: error fetching interface information: Device not found\n    root@albatros:~# lsmod | grep xfs\n    root@albatros:~# lsmod | grep sit\n    root@albatros:~# ifconfig sit\n    sit: error fetching interface information: Device not found\n    root@albatros:~# lsmod | grep sit\n    root@albatros:~# ifconfig sit0\n    sit0      Link encap:IPv6-in-IPv4\n\t      NOARP  MTU:1480  Metric:1\n\n    root@albatros:~# lsmod | grep sit\n    sit                    10457  0\n    tunnel4                 2957  1 sit\n\nFor CAP_SYS_MODULE module loading is still relaxed:\n\n    root@albatros:~# grep Cap /proc/$$/status\n    CapInh:\t0000000000000000\n    CapPrm:\tffffffffffffffff\n    CapEff:\tffffffffffffffff\n    CapBnd:\tffffffffffffffff\n    root@albatros:~# ifconfig xfs\n    xfs: error fetching interface information: Device not found\n    root@albatros:~# lsmod | grep xfs\n    xfs                   745319  0\n\nReference: https://lkml.org/lkml/2011/2/24/203\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nSigned-off-by: Michael Tokarev \u003cmjt@tls.msk.ru\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "2f4e1b3970973bbb57cc3a3b9d67e67c1c648c37",
      "tree": "d7b4d7d64ed8a02c3cd10064eb9d8e177d2be5c3",
      "parents": [
        "ee3f1aaf930b7cfbf3d34eff1e5e076393227e90"
      ],
      "author": {
        "name": "Mario Schuknecht",
        "email": "m.schuknecht@dresearch.de",
        "time": "Wed Mar 09 14:08:09 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 14:08:09 2011 -0800"
      },
      "message": "tcp: ioctl type SIOCOUTQNSD returns amount of data not sent\n\nIn contrast to SIOCOUTQ which returns the amount of data sent\nbut not yet acknowledged plus data not yet sent this patch only\nreturns the data not sent.\n\nFor various methods of live streaming bitrate control it may\nbe helpful to know how much data are in the tcp outqueue are\nnot sent yet.\n\nSigned-off-by: Mario Schuknecht \u003cm.schuknecht@dresearch.de\u003e\nSigned-off-by: Steffen Sledz \u003csledz@dresearch.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee3f1aaf930b7cfbf3d34eff1e5e076393227e90",
      "tree": "814621b53a1a26f00acd05e83f4b7be297abd607",
      "parents": [
        "bd33acc3cc525972ac779067e98efb26516c5b94"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 14:06:20 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 14:06:20 2011 -0800"
      },
      "message": "ipv4: Lookup multicast routes by rtable using helper.\n\nCreate a common helper for this operation, since we do\nit identically in three spots.\n\nSuggested by Eric Dumazet.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6c91afe1a984d43f922a6a70c7c390b7fb8de45e",
      "tree": "0c04726d20503aaea4560d5c3fa9e10f41de1951",
      "parents": [
        "e380688217feba40db450253d16e9fb2c59a625a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 13:27:16 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 09 13:27:16 2011 -0800"
      },
      "message": "ipv4: Fix erroneous uses of ifa_address.\n\nIn usual cases ifa_address \u003d\u003d ifa_local, but in the case where\nSIOCSIFDSTADDR sets the destination address on a point-to-point\nlink, ifa_address gets set to that destination address.\n\nTherefore we should use ifa_local when we want the local interface\naddress.\n\nThere were two cases where the selection was done incorrectly:\n\n1) When devinet_ioctl() does matching, it checks ifa_address even\n   though gifconf correct reported ifa_local to the user\n\n2) IN_DEV_ARP_NOTIFY handling sends a gratuitous ARP using\n   ifa_address instead of ifa_local.\n\nReported-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7b46ac4e77f3224a1befe032c77f1df31d1b42c4",
      "tree": "e0bd89b476e0f07e23f949366c283f7d7d6f9d4e",
      "parents": [
        "5217e8794619ac0a29151f29be20c7d6188303ba"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 08 14:59:28 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 08 14:59:28 2011 -0800"
      },
      "message": "inetpeer: Don\u0027t disable BH for initial fast RCU lookup.\n\nIf modifications on other cpus are ok, then modifications to\nthe tree during lookup done by the local cpu are ok too.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a7ac8fc1d8d26c975c460a69aa7b9d5b5d5d29b0",
      "tree": "d7487dfcbe87a8e57ce666d9febd1199e46c7b46",
      "parents": [
        "1fc050a13473348f5c439de2bb41c8e92dba5588"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 08 11:03:21 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 08 11:03:21 2011 -0800"
      },
      "message": "ipv4: Fix scope value used in route src-address caching.\n\nWe have to use cfg-\u003efc_scope not the final nh_scope value.\n\nReported-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1fc050a13473348f5c439de2bb41c8e92dba5588",
      "tree": "b2cecf15f5de87997fb44b4a1025b48d473cd038",
      "parents": [
        "6118e35a7126c1062b1a0f6737b84b4fe4d5c8d4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 07 20:54:48 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 07 20:54:48 2011 -0800"
      },
      "message": "ipv4: Cache source address in nexthop entries.\n\nWhen doing output route lookups, we have to select the source address\nif the user has not specified an explicit one.\n\nFirst, if the route has an explicit preferred source address\nspecified, then we use that.\n\nOtherwise we search the route\u0027s outgoing interface for a suitable\naddress.\n\nThis search can be precomputed and cached at route insertion time.\n\nThe only missing part is that we have to refresh this precomputed\nvalue any time addresses are added or removed from the interface, and\nthis is accomplished by fib_update_nh_saddrs().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3be0686b6e2f953afe83626e871b4a7b0ceae49b",
      "tree": "6591cba7d393d6b0bc7b2c647a5a5f1f5d8728e8",
      "parents": [
        "4c8237cd76a0510677dc2e3dd0f8866ec8e0b1e5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 07 15:01:10 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 07 15:19:39 2011 -0800"
      },
      "message": "ipv4: Inline fib_semantic_match into check_leaf\n\nThis elimiates a lot of pure overhead due to parameter\npassing.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4c8237cd76a0510677dc2e3dd0f8866ec8e0b1e5",
      "tree": "09f2b802b5f493bfd5345ec808f3b58300cab168",
      "parents": [
        "256ee435b9a9ee9cca69602fe8046b27ca99fbee"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 07 14:27:38 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 07 14:27:38 2011 -0800"
      },
      "message": "ipv4: Validate route entry type at insert instead of every lookup.\n\nfib_semantic_match() requires that if the type doesn\u0027t signal an\nautomatic error, it must be of type RTN_UNICAST, RTN_LOCAL,\nRTN_BROADCAST, RTN_ANYCAST, or RTN_MULTICAST.\n\nChecking this every route lookup is pointless work.\n\nInstead validate it during route insertion, via fib_create_info().\n\nAlso, there was nothing making sure the type value was less than\nRTN_MAX, so add that missing check while we\u0027re here.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5e2b61f78411be25f0b84f97d5b5d312f184dfd1",
      "tree": "6a5faa5fb7a2242bebacba4cdb5722b988d3e909",
      "parents": [
        "1018b5c01636c7c6bda31a719bda34fc631db29a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:47:09 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:55:31 2011 -0800"
      },
      "message": "ipv4: Remove flowi from struct rtable.\n\nThe only necessary parts are the src/dst addresses, the\ninterface indexes, the TOS, and the mark.\n\nThe rest is unnecessary bloat, which amounts to nearly\n50 bytes on 64-bit.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1018b5c01636c7c6bda31a719bda34fc631db29a",
      "tree": "7e00298c11f53cd386221b566483bffd31414714",
      "parents": [
        "4157434c23f8f5126a2ffd3cc7b2c3bd928be075"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:35:25 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:35:25 2011 -0800"
      },
      "message": "ipv4: Set rt-\u003ert_iif more sanely on output routes.\n\nrt-\u003ert_iif is only ever inspected on input routes, for example DCCP\nuses this to populate a route lookup flow key when generating replies\nto another packet.\n\nTherefore, setting it to anything other than zero on output routes\nmakes no sense.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3c0afdca44af795dd315c20cc525927a459abe30",
      "tree": "264a6e889d080da61a754b54e2771282c9fe9248",
      "parents": [
        "44713b67db10c774f14280c129b0d5fd13c70cf2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:26:07 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:26:07 2011 -0800"
      },
      "message": "ipv4: Get peer more cheaply in rt_init_metrics().\n\nWe know this is a new route object, so doing atomics and\nstuff makes no sense at all.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "44713b67db10c774f14280c129b0d5fd13c70cf2",
      "tree": "2a5fac5524dbac7b30be6409751983b597a71766",
      "parents": [
        "65e8354ec13a45414045084166cb340c0d7ffe8a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:24:47 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:24:47 2011 -0800"
      },
      "message": "ipv4: Optimize flow initialization in output route lookup.\n\nWe burn a lot of useless cycles, cpu store buffer traffic, and\nmemory operations memset()\u0027ing the on-stack flow used to perform\noutput route lookups in __ip_route_output_key().\n\nOnly the first half of the flow object members even matter for\noutput route lookups in this context, specifically:\n\nFIB rules matching cares about:\n\n\tdst, src, tos, iif, oif, mark\n\nFIB trie lookup cares about:\n\n\tdst\n\nFIB semantic match cares about:\n\n\ttos, scope, oif\n\nTherefore only initialize these specific members and elide the\nmemset entirely.\n\nOn Niagara2 this kills about ~300 cycles from the output route\nlookup path.\n\nLikely, we can take things further, since all callers of output\nroute lookups essentially throw away the on-stack flow they use.\nSo they don\u0027t care if we use it as a scratch-pad to compute the\nfinal flow key.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n"
    },
    {
      "commit": "65e8354ec13a45414045084166cb340c0d7ffe8a",
      "tree": "3a7d8b63a3765343c07d6f878b4ef389041da6f0",
      "parents": [
        "d72751ede1b9bf993d7bd3377305c8e9e36a3cc4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Mar 04 14:33:59 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 14:33:59 2011 -0800"
      },
      "message": "inetpeer: seqlock optimization\n\nDavid noticed :\n\n------------------\nEric, I was profiling the non-routing-cache case and something that\nstuck out is the case of calling inet_getpeer() with create\u003d\u003d0.\n\nIf an entry is not found, we have to redo the lookup under a spinlock\nto make certain that a concurrent writer rebalancing the tree does\nnot \"hide\" an existing entry from us.\n\nThis makes the case of a create\u003d\u003d0 lookup for a not-present entry\nreally expensive.  It is on the order of 600 cpu cycles on my\nNiagara2.\n\nI added a hack to not do the relookup under the lock when create\u003d\u003d0\nand it now costs less than 300 cycles.\n\nThis is now a pretty common operation with the way we handle COW\u0027d\nmetrics, so I think it\u0027s definitely worth optimizing.\n-----------------\n\nOne solution is to use a seqlock instead of a spinlock to protect struct\ninet_peer_base.\n\nAfter a failed avl tree lookup, we can easily detect if a writer did\nsome changes during our lookup. Taking the lock and redo the lookup is\nonly necessary in this case.\n\nNote: Add one private rcu_deref_locked() macro to place in one spot the\naccess to spinlock included in seqlock.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a0e9ae1bd788bc19adc4d4ae08c98b233697402",
      "tree": "13825eeb5bbeae27d66e95f12168eff4b60701ab",
      "parents": [
        "01a16b21d6adf992aa863186c3c4e561a57c1714",
        "b65a0e0c84cf489bfa00d6aa6c48abc5a237100f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 21:27:42 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 21:27:42 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/bnx2x/bnx2x.h\n"
    },
    {
      "commit": "e066008b38ca9ace1b6de8dbbac8ed460640791d",
      "tree": "1e5ea0c2ef3afd79199deced95570fe34240290b",
      "parents": [
        "d276055c4e90a7278cd5167ba9755c9b214bcff7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 11:24:19 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 11:24:19 2011 -0800"
      },
      "message": "ipv4: Fix __ip_dev_find() to use ifa_local instead of ifa_address.\n\nReported-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nReported-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "06dc94b1ed05f91e246315afeb1c652d6d0dc9ab",
      "tree": "7219badb5e324077ad9d6f22981dc155a9fe8610",
      "parents": [
        "1558310d4942427f4fd19e8ae26ca0878ab10879"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 10:38:01 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 10:38:01 2011 -0800"
      },
      "message": "ipv4: Fix crash in dst_release when udp_sendmsg route lookup fails.\n\nAs reported by Eric:\n\n[11483.697233] IP: [\u003cc12b0638\u003e] dst_release+0x18/0x60\n ...\n[11483.697741] Call Trace:\n[11483.697764]  [\u003cc12fc9d2\u003e] udp_sendmsg+0x282/0x6e0\n[11483.697790]  [\u003cc12a1c01\u003e] ? memcpy_toiovec+0x51/0x70\n[11483.697818]  [\u003cc12dbd90\u003e] ? ip_generic_getfrag+0x0/0xb0\n\nThe pointer passed to dst_release() is -EINVAL, that\u0027s because\nwe leave an error pointer in the local variable \"rt\" by accident.\n\nNULL it out to fix the bug.\n\nReported-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5bfa787fb2c29cce0722500f90df29e049ff07fc",
      "tree": "21e90db4a0d480e9f9e9b931ee71657f2843a629",
      "parents": [
        "b23dd4fe42b455af5c6e20966b7d6959fa8352ea"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:56:30 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:56:30 2011 -0800"
      },
      "message": "ipv4: ip_route_output_key() is better as an inline.\n\nThis avoid a stack frame at zero cost.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b23dd4fe42b455af5c6e20966b7d6959fa8352ea",
      "tree": "bf97323eae9a8d084170e573ff2c0c40bc72c3cd",
      "parents": [
        "452edd598f60522c11f7f88fdbab27eb36509d1a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:31:35 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:31:35 2011 -0800"
      },
      "message": "ipv4: Make output route lookup return rtable directly.\n\nInstead of on the stack.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "452edd598f60522c11f7f88fdbab27eb36509d1a",
      "tree": "df1510e9848e591a412c8bfa724253470c48c4c2",
      "parents": [
        "3872b284087081ee5cb0e4630954c2f7a2153cf5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 13:27:41 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 13:27:41 2011 -0800"
      },
      "message": "xfrm: Return dst directly from xfrm_lookup()\n\nInstead of on the stack.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "07df5294a753dfac2cc9f75e6159fc25fdc22149",
      "tree": "f37907c7f82d82131a7167e99fb3d2322c43b74f",
      "parents": [
        "7f6daa635c28ed686835a4080269e3fdc5a01012"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Mar 01 23:00:58 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 23:00:58 2011 -0800"
      },
      "message": "inet: Replace left-over references to inet-\u003ecork\n\nThe patch to replace inet-\u003ecork with cork left out two spots in\n__ip_append_data that can result in bogus packet construction.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6d460cf0ed16d35aec48f823685e7a0e0283d84",
      "tree": "56c311e236e3856220660afe7eaadf76106e58c6",
      "parents": [
        "2774c131b1d19920b4587db1cfbd6f0750ad1f15"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 15:49:55 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 15:49:55 2011 -0800"
      },
      "message": "ipv4: Make icmp route lookup code a bit clearer.\n\nThe route lookup code in icmp_send() is slightly tricky as a result of\nhaving to handle all of the requirements of RFC 4301 host relookups.\n\nPull the route resolution into a seperate function, so that the error\nhandling and route reference counting is hopefully easier to see and\ncontained wholly within this new routine.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2774c131b1d19920b4587db1cfbd6f0750ad1f15",
      "tree": "3a0482c727cf4dcc046a211214f12459dcba8271",
      "parents": [
        "69ead7afdf6028184f713a77376ee26f8aaafdcd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:59:04 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:59:04 2011 -0800"
      },
      "message": "xfrm: Handle blackhole route creation via afinfo.\n\nThat way we don\u0027t have to potentially do this in every xfrm_lookup()\ncaller.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "80c0bc9e37adfc892af82cb6aa8cace79f8a96cb",
      "tree": "0f4abc233d9661e85c7c7ecb064a75a8f0984f1f",
      "parents": [
        "a1414715f0ac905fb4b3a158ff6548d37bbe6165"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:36:37 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:36:37 2011 -0800"
      },
      "message": "xfrm: Kill XFRM_LOOKUP_WAIT flag.\n\nThis can be determined from the flow flags instead.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "273447b352e69c327efdecfd6e1d6fe3edbdcd14",
      "tree": "dae1e0778ca973c25b74fd3dc9728616d6e65b73",
      "parents": [
        "5df65e5567a497a28067019b8ff08f98fb026629"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:27:04 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:27:04 2011 -0800"
      },
      "message": "ipv4: Kill can_sleep arg to ip_route_output_flow()\n\nThis boolean state is now available in the flow flags.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5df65e5567a497a28067019b8ff08f98fb026629",
      "tree": "776a8a2cfa2cf5962ea0d53dea8c6c8360a0c58d",
      "parents": [
        "420d44daa7aa1cc847e9e527f0a27a9ce61768ca"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:22:19 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:22:19 2011 -0800"
      },
      "message": "net: Add FLOWI_FLAG_CAN_SLEEP.\n\nAnd set is in contexts where the route resolution can sleep.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "420d44daa7aa1cc847e9e527f0a27a9ce61768ca",
      "tree": "a5aab8c6b925ba3da1079b7262f7d6c504406eb8",
      "parents": [
        "abdf7e7239da270e68262728f125ea94b9b7d42d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:19:23 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:19:23 2011 -0800"
      },
      "message": "ipv4: Make final arg to ip_route_output_flow to be boolean \"can_sleep\"\n\nSince that is what the current vague \"flags\" argument means.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "abdf7e7239da270e68262728f125ea94b9b7d42d",
      "tree": "30c1246fac76ad7a4d2b1f8dcf3698b4d302b4de",
      "parents": [
        "68d0c6d34d586a893292d4fb633a3bf8c547b222"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:15:24 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:15:24 2011 -0800"
      },
      "message": "ipv4: Can final ip_route_connect() arg to boolean \"can_sleep\".\n\nSince that\u0027s what the current vague \"flags\" thing means.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "903ab86d195cca295379699299c5fc10beba31c7",
      "tree": "2b73fe727bf843bf0a0629dce044da61dc9cb166",
      "parents": [
        "f6b9664f8b711cf4fd53e70aa0d21f72d5bf806c"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Mar 01 02:36:48 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 12:35:42 2011 -0800"
      },
      "message": "udp: Add lockless transmit path\n\nThe UDP transmit path has been running under the socket lock\nfor a long time because of the corking feature.  This means that\ntransmitting to the same socket in multiple threads does not\nscale at all.\n\nHowever, as most users don\u0027t actually use corking, the locking\ncan be removed in the common case.\n\nThis patch creates a lockless fast path where corking is not used.\n\nPlease note that this does create a slight inaccuracy in the\nenforcement of socket send buffer limits.  In particular, we\nmay exceed the socket limit by up to (number of CPUs) * (packet\nsize) because of the way the limit is computed.\n\nAs the primary purpose of socket buffers is to indicate congestion,\nthis should not be a great problem for now.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6b9664f8b711cf4fd53e70aa0d21f72d5bf806c",
      "tree": "878a8438b00e58b9b898a74f3cc4a32c1d5d8477",
      "parents": [
        "1c32c5ad6fac8cee1a77449f5abf211e911ff830"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Mar 01 02:36:48 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 12:35:03 2011 -0800"
      },
      "message": "udp: Switch to ip_finish_skb\n\nThis patch converts UDP to use the new ip_finish_skb API.  This\nwould then allows us to more easily use ip_make_skb which allows\nUDP to run without a socket lock.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1c32c5ad6fac8cee1a77449f5abf211e911ff830",
      "tree": "6a7384abb34068adb298beb1967b11201d52ed48",
      "parents": [
        "1470ddf7f8cecf776921e5ccee72e3d2b3d60cbc"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Mar 01 02:36:47 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 12:35:03 2011 -0800"
      },
      "message": "inet: Add ip_make_skb and ip_finish_skb\n\nThis patch adds the helper ip_make_skb which is like ip_append_data\nand ip_push_pending_frames all rolled into one, except that it does\nnot send the skb produced.  The sending part is carried out by\nip_send_skb, which the transport protocol can call after it has\ntweaked the skb.\n\nIt is meant to be called in cases where corking is not used should\nhave a one-to-one correspondence to sendmsg.\n\nThis patch also adds the helper ip_finish_skb which is meant to\nbe replace ip_push_pending_frames when corking is required.\nPreviously the protocol stack would peek at the socket write\nqueue and add its header to the first packet.  With ip_finish_skb,\nthe protocol stack can directly operate on the final skb instead,\njust like the non-corking case with ip_make_skb.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1470ddf7f8cecf776921e5ccee72e3d2b3d60cbc",
      "tree": "723eb6971efd9603908354ef1642cb9c8ed04e23",
      "parents": [
        "5a2ef92023506d4e9cd13617b5a46b4d0f1b6747"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Mar 01 02:36:47 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 12:35:02 2011 -0800"
      },
      "message": "inet: Remove explicit write references to sk/inet in ip_append_data\n\nIn order to allow simultaneous calls to ip_append_data on the same\nsocket, it must not modify any shared state in sk or inet (other\nthan those that are designed to allow that such as atomic counters).\n\nThis patch abstracts out write references to sk and inet_sk in\nip_append_data and its friends so that we may use the underlying\ncode in parallel.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5a2ef92023506d4e9cd13617b5a46b4d0f1b6747",
      "tree": "995af8882f53c67ed79e10a1bd37d523ba7986a9",
      "parents": [
        "9836f4080fd5b680cc2d9656355c1a7c681b1ffd"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Mar 01 02:36:47 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 12:35:02 2011 -0800"
      },
      "message": "inet: Remove unused sk_sndmsg_* from UFO\n\nUFO doesn\u0027t really use the sk_sndmsg_* parameters so touching\nthem is pointless.  It can\u0027t use them anyway since the whole\npoint of UFO is to use the original pages without copying.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dca8b089c95d94afa1d715df257de0286350e99d",
      "tree": "f686fef8ef3d80f81bd9f91072ce8c5f347e3e7c",
      "parents": [
        "33765d06033cc4ba4d9ae6d3d606ef3f28773c1b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 24 13:38:12 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 24 13:38:12 2011 -0800"
      },
      "message": "ipv4: Rearrange how ip_route_newports() gets port keys.\n\nip_route_newports() is the only place in the entire kernel that\ncares about the port members in the routing cache entry\u0027s lookup\nflow key.\n\nTherefore the only reason we store an entire flow inside of the\nstruct rtentry is for this one special case.\n\nRewrite ip_route_newports() such that:\n\n1) The caller passes in the original port values, so we don\u0027t need\n   to use the rth-\u003efl.fl_ip_{s,d}port values to remember them.\n\n2) The lookup flow is constructed by hand instead of being copied\n   from the routing cache entry\u0027s flow.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5e6b930f21b0a442f9d5db97c8314b4d91be1c27",
      "tree": "035572d5908abe8092bae44befcc99720ab50a1b",
      "parents": [
        "200ce96e5601391a6d97c87067edf21fa94fb74e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 24 00:14:45 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 23 23:07:38 2011 -0800"
      },
      "message": "xfrm: Const\u0027ify address arguments to -\u003edst_lookup()\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "19bd62441c36279ab33e311faebd357ef04ba344",
      "tree": "d9666f25d4212876d7feb0d75303ac246c8846ef",
      "parents": [
        "214e005bc32c7045b8554f9f0fb07b3fcce2cd42"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 24 00:07:20 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 23 23:07:37 2011 -0800"
      },
      "message": "xfrm: Const\u0027ify tmpl and address arguments to -\u003einit_temprop()\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "73e5ebb20f2809e2eb0b904448481e010c2599d7",
      "tree": "b41c044d23f9b488ac45d743cf1a0c9e9e90ca79",
      "parents": [
        "0c7b3eefb4ab8df245e94feb0d83c1c3450a3d87"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 22 17:51:44 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 22 17:51:44 2011 -0800"
      },
      "message": "xfrm: Mark flowi arg to -\u003einit_tempsel() const.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c7b3eefb4ab8df245e94feb0d83c1c3450a3d87",
      "tree": "895c8242220a1bbbdf0704bba009fb3a424af316",
      "parents": [
        "05d8402576c9c1b85bfc9e4f9d6a21c27ccbd5b1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 22 17:48:57 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 22 17:48:57 2011 -0800"
      },
      "message": "xfrm: Mark flowi arg to -\u003efill_dst() const.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "05d8402576c9c1b85bfc9e4f9d6a21c27ccbd5b1",
      "tree": "d3406de85a12ae45b75ef109bd8e991b119f55b9",
      "parents": [
        "e8a4e37716dbc964e1cd18bca1a62fbd11805c1d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 22 17:47:10 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 22 17:47:10 2011 -0800"
      },
      "message": "xfrm: Mark flowi arg to -\u003eget_tos() const.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c24f691b56107feeba076616982093ee2d3c8fb5",
      "tree": "90317e187a511635fdb8682384fc8eb99f1de21f",
      "parents": [
        "5f04d5068a90602b93a7953e9a47c496705c6976"
      ],
      "author": {
        "name": "Yuchung Cheng",
        "email": "ycheng@google.com",
        "time": "Mon Feb 07 12:57:04 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 21 11:31:18 2011 -0800"
      },
      "message": "tcp: undo_retrans counter fixes\n\nFix a bug that undo_retrans is incorrectly decremented when undo_marker is\nnot set or undo_retrans is already 0. This happens when sender receives\nmore DSACK ACKs than packets retransmitted during the current\nundo phase. This may also happen when sender receives DSACK after\nthe undo operation is completed or cancelled.\n\nFix another bug that undo_retrans is incorrectly incremented when\nsender retransmits an skb and tcp_skb_pcount(skb) \u003e 1 (TSO). This case\nis rare but not impossible.\n\nSigned-off-by: Yuchung Cheng \u003cycheng@google.com\u003e\nAcked-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "089c34827e52346f0303d1e6a7b744c1f4da3095",
      "tree": "79f42bd0c4782aca57f3fe9d0f941f5c04b566a4",
      "parents": [
        "81146ec1b85067e70b71e81b5ecd9998ce054c0e"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "shanwei@cn.fujitsu.com",
        "time": "Sat Feb 19 21:55:45 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 20 11:10:14 2011 -0800"
      },
      "message": "tcp: Remove debug macro of TCP_CHECK_TIMER\n\nNow, TCP_CHECK_TIMER is not used for debuging, it does nothing.\nAnd, it has been there for several years, maybe 6 years.\n\nRemove it to keep code clearer.\n\nSigned-off-by: Shan Wei \u003cshanwei@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "da935c66bacb3ed9ada984b053297f87c2dff63a",
      "tree": "46278da2b312c73f1375b830d7e5912bf23abd78",
      "parents": [
        "9435eb1cf0b76b323019cebf8d16762a50a12a19",
        "2205a6ea93fea76f88b43727fea53f3ce3790d6f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 19 19:17:35 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 19 19:17:35 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tDocumentation/feature-removal-schedule.txt\n\tdrivers/net/e1000e/netdev.c\n\tnet/xfrm/xfrm_policy.c\n"
    },
    {
      "commit": "91035f0b7d89291af728b6f3e370c3be58fcbe1b",
      "tree": "e15aeadf32b4e4c2874c72be0100dbe0f222f84a",
      "parents": [
        "ece639caa33c85c8805fa4a0a5955b8de9c95346"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Feb 18 22:35:56 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 19 18:59:04 2011 -0800"
      },
      "message": "tcp: fix inet_twsk_deschedule()\n\nEric W. Biederman reported a lockdep splat in inet_twsk_deschedule()\n\nThis is caused by inet_twsk_purge(), run from process context,\nand commit 575f4cd5a5b6394577 (net: Use rcu lookups in inet_twsk_purge.)\nremoved the BH disabling that was necessary.\n\nAdd the BH disabling but fine grained, right before calling\ninet_twsk_deschedule(), instead of whole function.\n\nWith help from Linus Torvalds and Eric W. Biederman\n\nReported-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCC: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCC: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCC: stable \u003cstable@kernel.org\u003e (# 2.6.33+)\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9435eb1cf0b76b323019cebf8d16762a50a12a19",
      "tree": "b8396802efe005380366a59c58ce85267a460af1",
      "parents": [
        "fd23c3b31107e2fc483301ee923d8a1db14e53f4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 18 12:43:09 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 18 12:43:09 2011 -0800"
      },
      "message": "ipv4: Implement __ip_dev_find using new interface address hash.\n\nMuch quicker than going through the FIB tables.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fd23c3b31107e2fc483301ee923d8a1db14e53f4",
      "tree": "a9f6628d11b135660418c1ba5edb23c3c75cc0e9",
      "parents": [
        "1cbb1a61d59b7552e1e3fde485d8af5699fe16e0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 18 12:42:28 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 18 12:42:28 2011 -0800"
      },
      "message": "ipv4: Add hash table of interface addresses.\n\nThis will be used to optimize __ip_dev_find() and friends.\n\nWith help from Eric Dumazet.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "214f45c91bbda8321d9676f1197238e4663edcbb",
      "tree": "2b78e1d21298c1622755b09826ed2b8e5152d6e3",
      "parents": [
        "ed199facd070f8e551dc16a2ae1baa01d8d28ed4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Feb 18 11:39:01 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 18 11:39:01 2011 -0800"
      },
      "message": "net: provide default_advmss() methods to blackhole dst_ops\n\nCommit 0dbaee3b37e118a (net: Abstract default ADVMSS behind an\naccessor.) introduced a possible crash in tcp_connect_init(), when\ndst-\u003edefault_advmss() is called from dst_metric_advmss()\n\nReported-by: George Spelvin \u003clinux@horizon.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "982721f3911b2619482e05910644e5699fbeb065",
      "tree": "217a326d3e362c84b92e4687fcd38f7766fc8655",
      "parents": [
        "b6bf3ca032c9cd517526178f579e7a4e395c6e45"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 16 21:44:24 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:54:42 2011 -0800"
      },
      "message": "ipv4: Use const\u0027ify fib_result deep in the route call chains.\n\nThe only troublesome bit here is __mkroute_output which wants\nto override res-\u003efi and res-\u003etype, compute those in local\nvariables instead.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3b004569d86d02786ebae496e75dc0b625be3e9a",
      "tree": "c345e28b1478ee37755b6d5d061a586308fe033c",
      "parents": [
        "3c7bd1a14071b99d6535b710bc998ae5d3abbb66"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 16 14:56:22 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:49:26 2011 -0800"
      },
      "message": "ipv4: Avoid use of signed integers in fib_trie code.\n\nGCC emits all kinds of crazy zero extensions when we go from signed\nint, to unsigned short, etc. etc.\n\nThis transformation has to be legal because:\n\n1) In tkey_extract_bits() in mask_pfx(), the values are used to\n   perform shifts, on which negative values are undefined by C.\n\n2) In fib_table_lookup() we perform comparisons with unsigned\n   values, constants, and additions.  None of which should\n   encounter negative values.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3c7bd1a14071b99d6535b710bc998ae5d3abbb66",
      "tree": "05f31758aa4d6b49b70a4af4a8df4a83588610c2",
      "parents": [
        "0c4dcd58fd69aded93b0dc6917cd88b262c8aa3f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 16 14:08:44 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:44:00 2011 -0800"
      },
      "message": "net: Add initial_ref arg to dst_alloc().\n\nThis allows avoiding multiple writes to the initial __refcnt.\n\nThe most simplest cases of wanting an initial reference of \"1\"\nin ipv4 and ipv6 have been converted, the rest have been left\nalong and kept at the existing \"0\".\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c4dcd58fd69aded93b0dc6917cd88b262c8aa3f",
      "tree": "d410498acb93dee35b8da0092d9db5e8b226fc08",
      "parents": [
        "010c2708e536938a2f84d51d625f603b9a8f80ac"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:42:37 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:42:37 2011 -0800"
      },
      "message": "ipv4: Consolidate ipv4 dst allocation logic.\n\nThis also allows us to combine all the dst-\u003eflags settings and avoid\nread/modify/write sequences to this struct member.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "010c2708e536938a2f84d51d625f603b9a8f80ac",
      "tree": "bf886bc996e41d8996c24e60ec08a19e551c116e",
      "parents": [
        "5ada552746685d558d0a8e9e979921c75a41e469"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:37:09 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:37:09 2011 -0800"
      },
      "message": "ipv4: Move rcu_read_{lock,unlock}() into ip_route_output_slow().\n\nSimplifies tail of __ip_route_output_key().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5ada552746685d558d0a8e9e979921c75a41e469",
      "tree": "e81111d9cdb826f34d31f1276a51321c6ce14df0",
      "parents": [
        "cf0bdefd4676ad4ad59507a058821491a40ec7e6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:29:00 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 17 15:29:00 2011 -0800"
      },
      "message": "ipv4: Simplify output route creation call sequence.\n\nThere\u0027s a lot of redundancy and unnecessary stack frames\nin the output route creation path.\n\n1) Make __mkroute_output() return error pointers.\n\n2) Eliminate ip_mkroute_output() entirely, made possible by #1.\n\n3) Call __mkroute_output() directly and handling the returning error\n   pointers in ip_route_output_slow().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f39925dbde7788cfb96419c0f092b086aa325c0f",
      "tree": "4e236c5287558f9803bea163e00d919c05ba5cc7",
      "parents": [
        "2c8cec5c10bced2408082a6656170e74ac17231c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 09 22:00:16 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 14 21:33:27 2011 -0800"
      },
      "message": "ipv4: Cache learned redirect information in inetpeer.\n\nNote that we do not generate the redirect netevent any longer,\nbecause we don\u0027t create a new cached route.\n\nInstead, once the new neighbour is bound to the cached route,\nwe emit a neigh update event instead.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2c8cec5c10bced2408082a6656170e74ac17231c",
      "tree": "56f7d290b0c9f305267eeac915ad28f90c10aba2",
      "parents": [
        "d606ef3fe0c57504b8e534c58498f73a6abc049a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 09 20:42:07 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 14 21:33:07 2011 -0800"
      },
      "message": "ipv4: Cache learned PMTU information in inetpeer.\n\nThe general idea is that if we learn new PMTU information, we\nbump the peer genid.\n\nThis triggers the dst_ops-\u003echeck() code to validate and if\nnecessary propagate the new PMTU value into the metrics.\n\nLearned PMTU information self-expires.\n\nThis means that it is not necessary to kill a cached route\nentry just because the PMTU information is too old.\n\nAs a consequence:\n\n1) When the path appears unreachable (dst_ops-\u003elink_failure\n   or dst_ops-\u003enegative_advice) we unwind the PMTU state if\n   it is out of date, instead of killing the cached route.\n\n   A redirected route will still be invalidated in these\n   situations.\n\n2) rt_check_expire(), rt_worker_func(), et al. are no longer\n   necessary at all.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d11327ad6695db8117c78d70611e71102ceec2ac",
      "tree": "02d76a5825c357d0383268d9502c886abc8c9987",
      "parents": [
        "0550769bb7f364fb9aeeb9412229fb7790ee79c4"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "Ian.Campbell@citrix.com",
        "time": "Fri Feb 11 07:44:16 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 14 17:47:15 2011 -0800"
      },
      "message": "arp_notify: unconditionally send gratuitous ARP for NETDEV_NOTIFY_PEERS.\n\nNETDEV_NOTIFY_PEER is an explicit request by the driver to send a link\nnotification while NETDEV_UP/NETDEV_CHANGEADDR generate link\nnotifications as a sort of side effect.\n\nIn the later cases the sysctl option is present because link\nnotification events can have undesired effects e.g. if the link is\nflapping. I don\u0027t think this applies in the case of an explicit\nrequest from a driver.\n\nThis patch makes NETDEV_NOTIFY_PEER unconditional, if preferred we\ncould add a new sysctl for this case which defaults to on.\n\nThis change causes Xen post-migration ARP notifications (which cause\nswitches to relearn their MAC tables etc) to be sent by default.\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "31d409373cca3517a30540b51f55dcb1f5af0d49",
      "tree": "4d8ab504330ca52a353774dfc748535ea520cdf6",
      "parents": [
        "881ff67ad45041f6ff08441aa17302aea77bd054"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Feb 14 11:23:04 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 14 11:23:04 2011 -0800"
      },
      "message": "ipv4: fix rcu lock imbalance in fib_select_default()\n\nCommit 0c838ff1ade7 (ipv4: Consolidate all default route selection\nimplementations.) forgot to remove one rcu_read_unlock() from\nfib_select_default().\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "946bf5ee3c46f73b5cbd52aab594697b1a132d1f",
      "tree": "a28a589a294fe25407001d419c8788348633f65b",
      "parents": [
        "0b150932197b185ad5816932912e648116c7a96a"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Fri Feb 11 11:21:57 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 11 11:23:12 2011 -0800"
      },
      "message": "ip_gre: Add IPPROTO_GRE to flowi in ipgre_tunnel_xmit\n\nCommit 5811662b15db018c740c57d037523683fd3e6123 (\"net: use the macros\ndefined for the members of flowi\") accidentally removed the setting of\nIPPROTO_GRE from the struct flowi in ipgre_tunnel_xmit. This patch\nrestores it.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nAcked-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6431cbc25fa21635ee04eb0516ba6c51389fbfac",
      "tree": "515deede7292fce41c019e7bd72b58cab34ecb9c",
      "parents": [
        "ddd4aa424b866a08ceba7ddf38e61542c91b93a0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 07 20:38:06 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 10 13:33:41 2011 -0800"
      },
      "message": "inet: Create a mechanism for upward inetpeer propagation into routes.\n\nIf we didn\u0027t have a routing cache, we would not be able to properly\npropagate certain kinds of dynamic path attributes, for example\nPMTU information and redirects.\n\nThe reason is that if we didn\u0027t have a routing cache, then there would\nbe no way to lookup all of the active cached routes hanging off of\nsockets, tunnels, IPSEC bundles, etc.\n\nConsider the case where we created a cached route, but no inetpeer\nentry existed and also we were not asked to pre-COW the route metrics\nand therefore did not force the creation a new inetpeer entry.\n\nIf we later get a PMTU message, or a redirect, and store this\ninformation in a new inetpeer entry, there is no way to teach that\ncached route about the newly existing inetpeer entry.\n\nThe facilities implemented here handle this problem.\n\nFirst we create a generation ID.  When we create a cached route of any\nkind, we remember the generation ID at the time of attachment.  Any\ntime we force-create an inetpeer entry in response to new path\ninformation, we bump that generation ID.\n\nThe dst_ops-\u003echeck() callback is where the knowledge of this event\nis propagated.  If the global generation ID does not equal the one\nstored in the cached route, and the cached route has not attached\nto an inetpeer yet, we look it up and attach if one is found.  Now\nthat we\u0027ve updated the cached route\u0027s information, we update the\nroute\u0027s generation ID too.\n\nThis clears the way for implementing PMTU and redirects directly in\nthe inetpeer cache.  There is absolutely no need to consult cached\nroute information in order to maintain this information.\n\nAt this point nothing bumps the inetpeer genids, that comes in the\nlater changes which handle PMTUs and redirects using inetpeers.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ddd4aa424b866a08ceba7ddf38e61542c91b93a0",
      "tree": "654235ceccd1c3f9dfbb7422ebe09b21544325d6",
      "parents": [
        "7a71ed899e77cc822abb863e24a422dcf7e9fa33"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 09 15:36:47 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 10 13:29:30 2011 -0800"
      },
      "message": "inetpeer: Add redirect and PMTU discovery cached info.\n\nValidity of the cached PMTU information is indicated by it\u0027s\nexpiration value being non-zero, just as per dst-\u003eexpires.\n\nThe scheme we will use is that we will remember the pre-ICMP value\nheld in the metrics or route entry, and then at expiration time\nwe will restore that value.\n\nIn this way PMTU expiration does not kill off the cached route as is\ndone currently.\n\nRedirect information is permanent, or at least until another redirect\nis received.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7a71ed899e77cc822abb863e24a422dcf7e9fa33",
      "tree": "2811b8ca75c7019522f73c7d972208ae3a3ea8f9",
      "parents": [
        "b6644cb706610874104dbf3359e3b67aa59cbc27"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 09 14:30:26 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 10 13:22:28 2011 -0800"
      },
      "message": "inetpeer: Abstract address representation further.\n\nFuture changes will add caching information, and some of\nthese new elements will be addresses.\n\nSince the family is implicit via the -\u003edaddr.family member,\nreplicating the family in ever address we store is entirely\nredundant.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d13a2a9fb3e5e3f68e9d3ec0de3c8fcfa56a224",
      "tree": "fee1865c2fbfe8fbb67e8aed97fd8df18254d777",
      "parents": [
        "e7b66bdc02592f5573ade667e4d68ac6e7b0f9e1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 08 16:17:55 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 08 16:17:55 2011 -0800"
      },
      "message": "net: Kill NETEVENT_PMTU_UPDATE.\n\nNobody actually does anything in response to the event,\nso just kill it off.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "fa9921e46fd52b78070dc67ce0d27ec301a90410"
}
