)]}'
{
  "log": [
    {
      "commit": "8cdb045632e5ee22854538619ac6f150eb0a4894",
      "tree": "ece387e77861a103ca6cc5b7d501e4c69a0399dc",
      "parents": [
        "7c1d15d736687057f4dc6e51fbf44b6f6e4320cb"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Fri Aug 14 16:33:56 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 14 16:41:18 2009 -0700"
      },
      "message": "gre: Fix MTU calculation for bound GRE tunnels\n\nThe GRE header length should be subtracted when the tunnel MTU is\ncalculated.  This just corrects for the associativity change\nintroduced by commit 42aa916265d740d66ac1f17290366e9494c884c2\n(\"gre: Move MTU setting out of ipgre_tunnel_bind_dev\").\n\nSigned-off-by: Tom Goff \u003cthomas.goff@boeing.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a3e8ee682003685b8b9c98c89340a42e48c3e813",
      "tree": "11d1c94289aa4c4aa668b3df6bd121d9eb76acdc",
      "parents": [
        "3d54015b750e5d5e950a1dcee2735387fd4b6e1a"
      ],
      "author": {
        "name": "roel kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Wed Jul 29 23:46:59 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 30 13:27:29 2009 -0700"
      },
      "message": "ipv4: ARP neigh procfs buffer overflow\n\nIf arp_format_neigh_entry() can be called with n-\u003edev-\u003eaddr_len \u003d\u003d 0, then a\nwrite to hbuffer[-1] occurs.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e547bc1eccf539b7403138d8ded913ffd2b7fd0d",
      "tree": "a5d776438864387bdc305ef3ce186ba527f5b5d4",
      "parents": [
        "e3afe7b75ed8f809c1473ea9b39267487c187ccb"
      ],
      "author": {
        "name": "John Dykstra",
        "email": "john.dykstra1@gmail.com",
        "time": "Fri Jul 17 09:23:22 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 20 07:49:08 2009 -0700"
      },
      "message": "tcp: Use correct peer adr when copying MD5 keys\n\nWhen the TCP connection handshake completes on the passive\nside, a variety of state must be set up in the \"child\" sock,\nincluding the key if MD5 authentication is being used.  Fix TCP\nfor both address families to label the key with the peer\u0027s\ndestination address, rather than the address from the listening\nsock, which is usually the wildcard.\n\nReported-by:   Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: John Dykstra \u003cjohn.dykstra1@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e3afe7b75ed8f809c1473ea9b39267487c187ccb",
      "tree": "715aa813d57ffbc6b1a179e2f7f2957b88b415dc",
      "parents": [
        "a50a97d415d839e6db9df288ff0205528e52c03e"
      ],
      "author": {
        "name": "John Dykstra",
        "email": "john.dykstra1@gmail.com",
        "time": "Thu Jul 16 05:04:51 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 20 07:49:07 2009 -0700"
      },
      "message": "tcp: Fix MD5 signature checking on IPv4 mapped sockets\n\nFix MD5 signature checking so that an IPv4 active open\nto an IPv6 socket can succeed.  In particular, use the\ncorrect address family\u0027s signature generation function\nfor the SYN/ACK.\n\nReported-by:   Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: John Dykstra \u003cjohn.dykstra1@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee686ca919193d7c1f87f907e732df5e2f942523",
      "tree": "2a1f528de455ffc952ab9bc795dd38a863604aaa",
      "parents": [
        "c8159b2db1b49f6bda4429008c85108e2da60712"
      ],
      "author": {
        "name": "Andreas Jaggi",
        "email": "aj@open.ch",
        "time": "Tue Jul 14 09:35:59 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 14 09:35:59 2009 -0700"
      },
      "message": "gre: fix ToS/DiffServ inherit bug\n\nFixes two bugs:\n- ToS/DiffServ inheritance was unintentionally activated when using impair fixed ToS values\n- ECN bit was lost during ToS/DiffServ inheritance\n\nSigned-off-by: Andreas Jaggi \u003caj@open.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e51a67a9c8a2ea5c563f8c2ba6613fe2100ffe67",
      "tree": "d9741a14cc9134e592c37b1c235f2f13a20c261f",
      "parents": [
        "e912b1142be8f1e2c71c71001dc992c6e5eb2ec1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jul 08 14:20:42 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 11 20:26:21 2009 -0700"
      },
      "message": "net: ip_push_pending_frames() fix\n\nAfter commit 2b85a34e911bf483c27cfdd124aeb1605145dc80\n(net: No more expensive sock_hold()/sock_put() on each tx)\nwe do not take any more references on sk-\u003esk_refcnt on outgoing packets.\n\nI forgot to delete two __sock_put() from ip_push_pending_frames()\nand ip6_push_pending_frames().\n\nReported-by: Emil S Tantilov \u003cemils.tantilov@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nTested-by: Emil S Tantilov \u003cemils.tantilov@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a57de0b4336e48db2811a2030bb68dba8dd09d88",
      "tree": "a01c189d5fd55c69c9e2e842241e84b46728bc60",
      "parents": [
        "1b614fb9a00e97b1eab54d4e442d405229c059dd"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Wed Jul 08 12:09:13 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 09 17:06:57 2009 -0700"
      },
      "message": "net: adding memory barrier to the poll and receive callbacks\n\nAdding memory barrier after the poll_wait function, paired with\nreceive callbacks. Adding fuctions sock_poll_wait and sk_has_sleeper\nto wrap the memory barrier.\n\nWithout the memory barrier, following race can happen.\nThe race fires, when following code paths meet, and the tp-\u003ercv_nxt\nand __add_wait_queue updates stay in CPU caches.\n\nCPU1                         CPU2\n\nsys_select                   receive packet\n  ...                        ...\n  __add_wait_queue           update tp-\u003ercv_nxt\n  ...                        ...\n  tp-\u003ercv_nxt check          sock_def_readable\n  ...                        {\n  schedule                      ...\n                                if (sk-\u003esk_sleep \u0026\u0026 waitqueue_active(sk-\u003esk_sleep))\n                                        wake_up_interruptible(sk-\u003esk_sleep)\n                                ...\n                             }\n\nIf there was no cache the code would work ok, since the wait_queue and\nrcv_nxt are opposit to each other.\n\nMeaning that once tp-\u003ercv_nxt is updated by CPU2, the CPU1 either already\npassed the tp-\u003ercv_nxt check and sleeps, or will get the new value for\ntp-\u003ercv_nxt and will return with new data mask.\nIn both cases the process (CPU1) is being added to the wait queue, so the\nwaitqueue_active (CPU2) call cannot miss and will wake up CPU1.\n\nThe bad case is when the __add_wait_queue changes done by CPU1 stay in its\ncache, and so does the tp-\u003ercv_nxt update on CPU2 side.  The CPU1 will then\nendup calling schedule and sleep forever if there are no more data on the\nsocket.\n\nCalls to poll_wait in following modules were ommited:\n\tnet/bluetooth/af_bluetooth.c\n\tnet/irda/af_irda.c\n\tnet/irda/irnet/irnet_ppp.c\n\tnet/mac80211/rc80211_pid_debugfs.c\n\tnet/phonet/socket.c\n\tnet/rds/af_rds.c\n\tnet/rfkill/core.c\n\tnet/sunrpc/cache.c\n\tnet/sunrpc/rpc_pipe.c\n\tnet/tipc/socket.c\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "345aa031207d02d7438c1aa96ed9315911ecd745",
      "tree": "e9003cc0010b081eb975e209baa2753e8996582a",
      "parents": [
        "64c8165b44a91c09b19afb4110610ed242286639"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Tue Jul 07 19:39:16 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 08 10:46:45 2009 -0700"
      },
      "message": "ipv4: Fix fib_trie rebalancing, part 4 (root thresholds)\n\nPawel Staszewski wrote:\n\u003cblockquote\u003e\nSome time ago i report this:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d6648\n\nand now with 2.6.29 / 2.6.29.1 / 2.6.29.3 and 2.6.30 it back\ndmesg output:\noprofile: using NMI interrupt.\nFix inflate_threshold_root. Now\u003d15 size\u003d11 bits\n...\nFix inflate_threshold_root. Now\u003d15 size\u003d11 bits\n\ncat /proc/net/fib_triestat\nBasic info: size of leaf: 40 bytes, size of tnode: 56 bytes.\nMain:\n        Aver depth:     2.28\n        Max depth:      6\n        Leaves:         276539\n        Prefixes:       289922\n        Internal nodes: 66762\n          1: 35046  2: 13824  3: 9508  4: 4897  5: 2331  6: 1149  7: 5\n9: 1  18: 1\n        Pointers: 691228\nNull ptrs: 347928\nTotal size: 35709  kB\n\u003c/blockquote\u003e\n\nIt seems, the current threshold for root resizing is too aggressive,\nand it causes misleading warnings during big updates, but it might be\nalso responsible for memory problems, especially with non-preempt\nconfigs, when RCU freeing is delayed long after call_rcu.\n\nIt should be also mentioned that because of non-atomic changes during\nresizing/rebalancing the current lookup algorithm can miss valid leaves\nso it\u0027s additional argument to shorten these activities even at a cost\nof a minimally longer searching.\n\nThis patch restores values before the patch \"[IPV4]: fib_trie root\nnode settings\", commit: 965ffea43d4ebe8cd7b9fee78d651268dd7d23c5 from\nv2.6.22.\n\nPawel\u0027s report:\n\u003cblockquote\u003e\nI dont see any big change of (cpu load or faster/slower\nrouting/propagating routes from bgpd or something else) - in avg there\nis from 2% to 3% more of CPU load i dont know why but it is - i change\nfrom \"preempt\" to \"no preempt\" 3 times and check this my \"mpstat -P ALL\n1 30\"\nalways avg cpu load was from 2 to 3% more compared to \"no preempt\"\n[...]\ncat /proc/net/fib_triestat\nBasic info: size of leaf: 20 bytes, size of tnode: 36 bytes.\nMain:\n        Aver depth:     2.44\n        Max depth:      6\n        Leaves:         277814\n        Prefixes:       291306\n        Internal nodes: 66420\n          1: 32737  2: 14850  3: 10332  4: 4871  5: 2313  6: 942  7: 371  8: 3  17: 1\n        Pointers: 599098\nNull ptrs: 254865\nTotal size: 18067  kB\n\u003c/blockquote\u003e\n\nAccording to this and other similar reports average depth is slightly\nincreased (~0.2), and root nodes are shorter (log 17 vs. 18), but\nthere is no visible performance decrease. So, until memory handling is\nimproved or added parameters for changing this individually, this\npatch resets to safer defaults.\n\nReported-by: Pawel Staszewski \u003cpstaszewski@itcare.pl\u003e\nReported-by: Jorge Boncompte [DTI2] \u003cjorge@dti2.net\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nTested-by: Pawel Staszewski \u003cpstaszewski@itcare.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c615c9f3f3cea60279b1bb38e8ef27bd575ecd0c",
      "tree": "2bf343e769106a87e3cda9801e3b8cb942d722c9",
      "parents": [
        "15da4b1612d608a47e095439b3dd1d77ffe20e0c"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Thu Jul 02 16:57:23 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 03 19:10:06 2009 -0700"
      },
      "message": "xfrm4: fix the ports decode of sctp protocol\n\nThe SCTP pushed the skb data above the sctp chunk header, so the check\nof pskb_may_pull(skb, xprth + 4 - skb-\u003edata) in _decode_session4() will\nnever return 0 because xprth + 4 - skb-\u003edata \u003c 0, the ports decode of\nsctp will always fail.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f8a68e752bc4e39644843403168137663c984524",
      "tree": "3fb17f72a02319f92bd3ed4d73456bbc7e8ac633",
      "parents": [
        "59ed6eecff4aa00c5c5d18ffd180acac108d596e"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Jun 30 16:27:17 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 30 19:47:08 2009 -0700"
      },
      "message": "Revert \"ipv4: arp announce, arp_proxy and windows ip conflict verification\"\n\nThis reverts commit 73ce7b01b4496a5fbf9caf63033c874be692333f.\n\nAfter discovering that we don\u0027t listen to gratuitious arps in 2.6.30\nI tracked the failure down to this commit.\n\nThe patch makes absolutely no sense.  RFC2131 RFC3927 and RFC5227.\nare all in agreement that an arp request with sip \u003d\u003d 0 should be used\nfor the probe (to prevent learning) and an arp request with sip \u003d\u003d tip\nshould be used for the gratitous announcement that people can learn\nfrom.\n\nIt appears the author of the broken patch got those two cases confused\nand modified the code to drop all gratuitous arp traffic.  Ouch!\n\nCc: stable@kernel.org\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "008440e3ad4b72f5048d1b1f6f5ed894fdc5ad08",
      "tree": "bcf7771cd07562b258aaa032f85c29eaa00b9b6c",
      "parents": [
        "01e532981460594fffbf9b992ecfc96a78369924"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Tue Jun 30 12:47:19 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 30 12:48:38 2009 -0700"
      },
      "message": "ipv4: Fix fib_trie rebalancing, part 3\n\nAlas current delaying of freeing old tnodes by RCU in trie_rebalance\nis still not enough because we can free a top tnode before updating a\nt-\u003etrie pointer.\n\nReported-by: Pawel Staszewski \u003cpstaszewski@itcare.pl\u003e\nTested-by: Pawel Staszewski \u003cpstaszewski@itcare.pl\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6828b92bd21acd65113dfe0541f19f5df0d9668f",
      "tree": "be9b1009500891d7598a2c19a63fad9c0a28f17c",
      "parents": [
        "8e5b9dda99cc86bdbd822935fcc37c5808e271b3"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Jun 28 18:06:41 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 29 19:41:43 2009 -0700"
      },
      "message": "tcp: Do not tack on TSO data to non-TSO packet\n\nIf a socket starts out on a non-TSO route, and then switches to\na TSO route, then we will tack on data to the tail of the tx queue\neven if it started out life as non-TSO.  This is suboptimal because\nall of it will then be copied and checksummed unnecessarily.\n\nThis patch fixes this by ensuring that skb-\u003eip_summed is set to\nCHECKSUM_PARTIAL before appending extra data beyond the MSS.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8e5b9dda99cc86bdbd822935fcc37c5808e271b3",
      "tree": "216ce989fdac1d8ecd33698e8fae46fe0d4bb616",
      "parents": [
        "9c0346bd0891eb009f5cd08b868ff41c65804dbe"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Jun 28 18:03:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 29 19:41:39 2009 -0700"
      },
      "message": "tcp: Stop non-TSO packets morphing into TSO\n\nIf a socket starts out on a non-TSO route, and then switches to\na TSO route, then the tail on the tx queue can morph into a TSO\npacket, causing mischief because the rest of the stack does not\nexpect a partially linear TSO packet.\n\nThis patch fixes this by ensuring that skb-\u003eip_summed is set to\nCHECKSUM_PARTIAL before declaring a packet as TSO.\n\nReported-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "53bd9728bf9be7fc3b3147e821dbeb71d767c354",
      "tree": "3e4dcda28ef94b6d67d24d22b4e1ec76f6fcd968",
      "parents": [
        "bd46cb6cf11867130a41ea9546dd65688b71f3c2",
        "d6d3f08b0fd998b647a05540cedd11a067b72867"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 29 19:22:31 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 29 19:22:31 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6\n"
    },
    {
      "commit": "a3a9f79e361e864f0e9d75ebe2a0cb43d17c4272",
      "tree": "e38bb7cc051cf197a813d553713e3071d375a1b9",
      "parents": [
        "308ff823ebd749a94d3b6ac26b95bc0eb114c39e"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jun 29 14:07:56 2009 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jun 29 14:07:56 2009 +0200"
      },
      "message": "netfilter: tcp conntrack: fix unacknowledged data detection with NAT\n\nWhen NAT helpers change the TCP packet size, the highest seen sequence\nnumber needs to be corrected. This is currently only done upwards, when\nthe packet size is reduced the sequence number is unchanged. This causes\nTCP conntrack to falsely detect unacknowledged data and decrease the\ntimeout.\n\nFix by updating the highest seen sequence number in both directions after\npacket mangling.\n\nTested-by: Krzysztof Piotr Oledzki \u003cole@ans.pl\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "71f9dacd2e4d233029e9e956ca3f79531f411827",
      "tree": "f625e54e95107dcbc622a6ecf64138fca3d8e0c7",
      "parents": [
        "4a27096bbe2cad4c6e78802a0d9dfe0e598a1129"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jun 26 19:22:37 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 26 19:22:37 2009 -0700"
      },
      "message": "inet: Call skb_orphan before tproxy activates\n\nAs transparent proxying looks up the socket early and assigns\nit to the skb for later processing, we must drop any existing\nsocket ownership prior to that in order to distinguish between\nthe case where tproxy is active and where it is not.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ac530b3553e0b4dc1e18a32bed57cfa84cd57cb",
      "tree": "cc0198945aeee7b60ea06c1699fc72268efc26f7",
      "parents": [
        "d8146bb23ea045fb75c56b4e3b53f0964eed4076"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Wed Jun 24 22:29:31 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 25 20:03:15 2009 -0700"
      },
      "message": "tcp: missing check ACK flag of received segment in FIN-WAIT-2 state\n\nRFC0793 defined that in FIN-WAIT-2 state if the ACK bit is off drop\nthe segment and return[Page 72]. But this check is missing in function\ntcp_timewait_state_process(). This cause the segment with FIN flag but\nno ACK has two diffent action:\n\nCase 1:\n    Node A                      Node B\n              \u003c-------------    FIN,ACK\n                                (enter FIN-WAIT-1)\n    ACK       -------------\u003e\n                                (enter FIN-WAIT-2)\n    FIN       -------------\u003e    discard\n                                (move sk to tw list)\n\nCase 2:\n    Node A                      Node B\n              \u003c-------------    FIN,ACK\n                                (enter FIN-WAIT-1)\n    ACK       -------------\u003e\n                                (enter FIN-WAIT-2)\n                                (move sk to tw list)\n    FIN       -------------\u003e\n\n              \u003c-------------    ACK\n\nThis patch fixed the problem.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "09ce42d3167e3f20b501fa780c2415332330fac5",
      "tree": "2f0a6e2e3ec51187f4df78e8c75aa31602a6edd4",
      "parents": [
        "d7ed9c05ebf56c04811276207d7110706debe09f",
        "7959ea254ed18faee41160b1c50b3c9664735967"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 24 10:01:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 24 10:01:12 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6:\n  bnx2: Fix the behavior of ethtool when ONBOOT\u003dno\n  qla3xxx: Don\u0027t sleep while holding lock.\n  qla3xxx: Give the PHY time to come out of reset.\n  ipv4 routing: Ensure that route cache entries are usable and reclaimable with caching is off\n  net: Move rx skb_orphan call to where needed\n  ipv6: Use correct data types for ICMPv6 type and code\n  net: let KS8842 driver depend on HAS_IOMEM\n  can: let SJA1000 driver depend on HAS_IOMEM\n  netxen: fix firmware init handshake\n  netxen: fix build with without CONFIG_PM\n  netfilter: xt_rateest: fix comparison with self\n  netfilter: xt_quota: fix incomplete initialization\n  netfilter: nf_log: fix direct userspace memory access in proc handler\n  netfilter: fix some sparse endianess warnings\n  netfilter: nf_conntrack: fix conntrack lookup race\n  netfilter: nf_conntrack: fix confirmation race condition\n  netfilter: nf_conntrack: death_by_timeout() fix\n"
    },
    {
      "commit": "b6280b47a7a42970d098a3059f4ebe7e55e90d8d",
      "tree": "527607fdec0db21c6b49b97c7e8b19671bfe25bf",
      "parents": [
        "d55d87fdff8252d0e2f7c28c2d443aee17e9d70f"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Mon Jun 22 10:18:53 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 23 16:36:26 2009 -0700"
      },
      "message": "ipv4 routing: Ensure that route cache entries are usable and reclaimable with caching is off\n\nWhen route caching is disabled (rt_caching returns false), We still use route\ncache entries that are created and passed into rt_intern_hash once.  These\nroutes need to be made usable for the one call path that holds a reference to\nthem, and they need to be reclaimed when they\u0027re finished with their use.  To be\nmade usable, they need to be associated with a neighbor table entry (which they\ncurrently are not), otherwise iproute_finish2 just discards the packet, since we\ndon\u0027t know which L2 peer to send the packet to.  To do this binding, we need to\nfollow the path a bit higher up in rt_intern_hash, which calls\narp_bind_neighbour, but not assign the route entry to the hash table.\nCurrently, if caching is off, we simply assign the route to the rp pointer and\nare reutrn success.  This patch associates us with a neighbor entry first.\n\nSecondly, we need to make sure that any single use routes like this are known to\nthe garbage collector when caching is off.  If caching is off, and we try to\nhash in a route, it will leak when its refcount reaches zero.  To avoid this,\nthis patch calls rt_free on the route cache entry passed into rt_intern_hash.\nThis places us on the gc list for the route cache garbage collector, so that\nwhen its refcount reaches zero, it will be reclaimed (Thanks to Alexey for this\nsuggestion).\n\nI\u0027ve tested this on a local system here, and with these patches in place, I\u0027m\nable to maintain routed connectivity to remote systems, even if I set\n/proc/sys/net/ipv4/rt_cache_rebuild_count to -1, which forces rt_caching to\nreturn false.\n\nSigned-off-by: Neil Horman \u003cnhorman@redhat.com\u003e\nReported-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nReported-by: Maxime Bizon \u003cmbizon@freebox.fr\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5165aece0efac6574fc3e32b6f1c2a964820d1c6",
      "tree": "73131c06a021578a47526a95bad391dbd9d3b932",
      "parents": [
        "e38be994b9cad09b0d8d78a1875d7e8a2e115d29",
        "f6b24caaf933a466397915a08e30e885a32f905a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 11:57:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 11:57:09 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (43 commits)\n  via-velocity: Fix velocity driver unmapping incorrect size.\n  mlx4_en: Remove redundant refill code on RX\n  mlx4_en: Removed redundant check on lso header size\n  mlx4_en: Cancel port_up check in transmit function\n  mlx4_en: using stop/start_all_queues\n  mlx4_en: Removed redundant skb-\u003elen check\n  mlx4_en: Counting all the dropped packets on the TX side\n  usbnet cdc_subset: fix issues talking to PXA gadgets\n  Net: qla3xxx, remove sleeping in atomic\n  ipv4: fix NULL pointer + success return in route lookup path\n  isdn: clean up documentation index\n  cfg80211: validate station settings\n  cfg80211: allow setting station parameters in mesh\n  cfg80211: allow adding/deleting stations on mesh\n  ath5k: fix beacon_int handling\n  MAINTAINERS: Fix Atheros pattern paths\n  ath9k: restore PS mode, before we put the chip into FULL SLEEP state.\n  ath9k: wait for beacon frame along with CAB\n  acer-wmi: fix rfkill conversion\n  ath5k: avoid PCI FATAL interrupts by restoring RETRY_TIMEOUT disabling\n  ...\n"
    },
    {
      "commit": "73e42897e8e5619eacb787d2ce69be12f47cfc21",
      "tree": "02ce26705cbca451b069205069afb0956deb9e04",
      "parents": [
        "952e57ba3769d6fc6139b8a99c32ea2bb63f23e9"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Sat Jun 20 01:15:16 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 20 01:15:16 2009 -0700"
      },
      "message": "ipv4: fix NULL pointer + success return in route lookup path\n\nDon\u0027t drop route if we\u0027re not caching\t\n\n\tI recently got a report of an oops on a route lookup.  Maxime was\ntesting what would happen if route caching was turned off (doing so by setting\nmaking rt_caching always return 0), and found that it triggered an oops.  I\nlooked at it and found that the problem stemmed from the fact that the route\nlookup routines were returning success from their lookup paths (which is good),\nbut never set the **rp pointer to anything (which is bad).  This happens because\nin rt_intern_hash, if rt_caching returns false, we call rt_drop and return 0.\nThis almost emulates slient success.  What we should be doing is assigning *rp \u003d\nrt and _not_ dropping the route.  This way, during slow path lookups, when we\ncreate a new route cache entry, we don\u0027t immediately discard it, rather we just\ndon\u0027t add it into the cache hash table, but we let this one lookup use it for\nthe purpose of this route request.  Maxime has tested and reports it prevents\nthe oops.  There is still a subsequent routing issue that I\u0027m looking into\nfurther, but I\u0027m confident that, even if its related to this same path, this\npatch makes sense to take.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d2aa4550379f92e929af7ed1dd4f55e6a1e331f8",
      "tree": "5ef0fc69a507f0d701fd157b6652427eabd5efdd",
      "parents": [
        "9e3e4b1d2d13bead8d52703c82a02b55f108b491",
        "cb2107be43d2fc5eadec58b92b54bf32c00bfff3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 14:07:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 14:07:15 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (55 commits)\n  netxen: fix tx ring accounting\n  netxen: fix detection of cut-thru firmware mode\n  forcedeth: fix dma api mismatches\n  atm: sk_wmem_alloc initial value is one\n  net: correct off-by-one write allocations reports\n  via-velocity : fix no link detection on boot\n  Net / e100: Fix suspend of devices that cannot be power managed\n  TI DaVinci EMAC : Fix rmmod error\n  net: group address list and its count\n  ipv4: Fix fib_trie rebalancing, part 2\n  pkt_sched: Update drops stats in act_police\n  sky2: version 1.23\n  sky2: add GRO support\n  sky2: skb recycling\n  sky2: reduce default transmit ring\n  sky2: receive counter update\n  sky2: fix shutdown synchronization\n  sky2: PCI irq issues\n  sky2: more receive shutdown\n  sky2: turn off pause during shutdown\n  ...\n\nManually fix trivial conflict in net/core/skbuff.c due to kmemcheck\n"
    },
    {
      "commit": "31e6d363abcd0d05766c82f1a9c905a4c974a199",
      "tree": "f2b5c46354d95f91e743ae748b8add0de8bffd17",
      "parents": [
        "d3b238a03efd6d644ff93c8b10a1d38a596f2e34"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jun 17 19:05:41 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 18 00:29:12 2009 -0700"
      },
      "message": "net: correct off-by-one write allocations reports\n\ncommit 2b85a34e911bf483c27cfdd124aeb1605145dc80\n(net: No more expensive sock_hold()/sock_put() on each tx)\nchanged initial sk_wmem_alloc value.\n\nWe need to take into account this offset when reporting\nsk_wmem_alloc to user, in PROC_FS files or various\nioctls (SIOCOUTQ/TIOCOUTQ)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7b85576d15bf2574b0a451108f59f9ad4170dd3f",
      "tree": "a2d8075b9d234b0a937d7dd82b95cb16b953aec7",
      "parents": [
        "b964758050f856e44f5fe645d03bea8a1b0b66bd"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Thu Jun 18 00:28:51 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 18 00:28:51 2009 -0700"
      },
      "message": "ipv4: Fix fib_trie rebalancing, part 2\n\nMy previous patch, which explicitly delays freeing of tnodes by adding\nthem to the list to flush them after the update is finished, isn\u0027t\nstrict enough. It treats exceptionally tnodes without parent, assuming\nthey are newly created, so \"invisible\" for the read side yet.\n\nBut the top tnode doesn\u0027t have parent as well, so we have to exclude\nall exceptions (at least until a better way is found). Additionally we\nneed to move rcu assignment of this node before flushing, so the\nreturn type of the trie_rebalance() function is changed.\n\nReported-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b3fec0fe35a4ff048484f1408385a27695d4273b",
      "tree": "088c23f098421ea681d9976a83aad73d15be1027",
      "parents": [
        "e1f5b94fd0c93c3e27ede88b7ab652d086dc960f",
        "722f2a6c87f34ee0fd0130a8cf45f81e0705594a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 13:09:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 13:09:51 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vegard/kmemcheck\n\n* \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vegard/kmemcheck: (39 commits)\n  signal: fix __send_signal() false positive kmemcheck warning\n  fs: fix do_mount_root() false positive kmemcheck warning\n  fs: introduce __getname_gfp()\n  trace: annotate bitfields in struct ring_buffer_event\n  net: annotate struct sock bitfield\n  c2port: annotate bitfield for kmemcheck\n  net: annotate inet_timewait_sock bitfields\n  ieee1394/csr1212: fix false positive kmemcheck report\n  ieee1394: annotate bitfield\n  net: annotate bitfields in struct inet_sock\n  net: use kmemcheck bitfields API for skbuff\n  kmemcheck: introduce bitfield API\n  kmemcheck: add opcode self-testing at boot\n  x86: unify pte_hidden\n  x86: make _PAGE_HIDDEN conditional\n  kmemcheck: make kconfig accessible for other architectures\n  kmemcheck: enable in the x86 Kconfig\n  kmemcheck: add hooks for the page allocator\n  kmemcheck: add hooks for page- and sg-dma-mappings\n  kmemcheck: don\u0027t track page tables\n  ...\n"
    },
    {
      "commit": "9e337b0fb3baa3c22490365b1bdee6f4741413d4",
      "tree": "bba282e16e73c7e911e1a83ffe249a0ae05b4f1d",
      "parents": [
        "96c25c81ecf452b778e2f432bd17c95de637d129"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Sat Oct 18 17:37:51 2008 +0200"
      },
      "committer": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Mon Jun 15 15:49:32 2009 +0200"
      },
      "message": "net: annotate inet_timewait_sock bitfields\n\nThe use of bitfields here would lead to false positive warnings with\nkmemcheck. Silence them.\n\n(Additionally, one erroneous comment related to the bitfield was also\nfixed.)\n\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\n"
    },
    {
      "commit": "e0f7cb8c8cc6cccce28d2ce39ad8c60d23c3799f",
      "tree": "204963b92fd4cdd8a73cd133ef36360c0d47014f",
      "parents": [
        "3c4bdc4bd4af791a72147b6ebc29553808f53cea"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Mon Jun 15 02:31:29 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 15 02:31:29 2009 -0700"
      },
      "message": "ipv4: Fix fib_trie rebalancing\n\nWhile doing trie_rebalance(): resize(), inflate(), halve() RCU free\ntnodes before updating their parents. It depends on RCU delaying the\nreal destruction, but if RCU readers start after call_rcu() and before\nparent update they could access freed memory.\n\nIt is currently prevented with preempt_disable() on the update side,\nbut it\u0027s not safe, except maybe classic RCU, plus it conflicts with\nmemory allocations with GFP_KERNEL flag used from these functions.\n\nThis patch explicitly delays freeing of tnodes by adding them to the\nlist, which is flushed after the update is finished.\n\nReported-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "403dbb97f654cd59b87999fe1b64d29bf90b3a2a",
      "tree": "c8d4ea1152288792f5e6bde54e79497dcfd44a9e",
      "parents": [
        "e61a4b634a15c11725eac8e66b457ba411168c7f"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Sun Jun 14 03:16:13 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 14 03:16:13 2009 -0700"
      },
      "message": "PIM-SM: namespace changes\n\nIPv4:\n  - make PIM register vifs netns local\n  - set the netns when a PIM register vif is created\n  - make PIM available in all network namespaces (if CONFIG_IP_PIMSM_V2)\n    by adding the protocol handler when multicast routing is initialized\n\nIPv6:\n  - make PIM register vifs netns local\n  - make PIM available in all network namespaces (if CONFIG_IPV6_PIMSM_V2)\n    by adding the protocol handler when multicast routing is initialized\n\nSigned-off-by: Tom Goff \u003cthomas.goff@boeing.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e61a4b634a15c11725eac8e66b457ba411168c7f",
      "tree": "dd9a1110b4c434d4e767b7fb23d4ccb106783575",
      "parents": [
        "125bb8f5637bd653244728f734bcac218986d910"
      ],
      "author": {
        "name": "Timo Teräs",
        "email": "timo.teras@iki.fi",
        "time": "Thu Jun 11 19:38:02 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 13 23:36:32 2009 -0700"
      },
      "message": "ipv4: update ARPD help text\n\nRemoved the statements about ARP cache size as this config option does\nnot affect it. The cache size is controlled by neigh_table gc thresholds.\n\nRemove also expiremental and obsolete markings as the API originally\nintended for arp caching is useful for implementing ARP-like protocols\n(e.g. NHRP) in user space and has been there for a long enough time.\n\nSigned-off-by: Timo Teras \u003ctimo.teras@iki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "125bb8f5637bd653244728f734bcac218986d910",
      "tree": "1d78145dd39b13d2dcc0eb5426b8d1c18b035f03",
      "parents": [
        "13be8a126850692839934116fbdaf008bfdedec1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jun 11 20:10:07 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 13 23:36:31 2009 -0700"
      },
      "message": "net: use a deferred timer in rt_check_expire\n\nFor the sake of power saver lovers, use a deferrable timer to fire\nrt_check_expire()\n\nAs some big routers cache equilibrium depends on garbage collection\ndone in time, we take into account elapsed time between two\nrt_check_expire() invocations to adjust the amount of slots we have to\ncheck.\n\nBased on an initial idea and patch from Tero Kristo\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Tero Kristo \u003ctero.kristo@nokia.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "24992eacd8a9f4af286bdaaab627b6802ceb8bce",
      "tree": "b2f56ab21b3961c681a6997866a4fc8f0f10a62f",
      "parents": [
        "334a47f6345560af047f164c356d71c3226965d5"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Jun 12 01:53:09 2009 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Jun 12 01:53:09 2009 +0200"
      },
      "message": "netfilter: ip_tables: fix build error\n\nFix build error introduced by commit bb70dfa5 (netfilter: xtables:\nconsolidate comefrom debug cast access):\n\nnet/ipv4/netfilter/ip_tables.c: In function \u0027ipt_do_table\u0027:\nnet/ipv4/netfilter/ip_tables.c:421: error: \u0027comefrom\u0027 undeclared (first use in this function)\nnet/ipv4/netfilter/ip_tables.c:421: error: (Each undeclared identifier is reported only once\nnet/ipv4/netfilter/ip_tables.c:421: error: for each function it appears in.)\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "36432dae73cf2c90a59b39c8df9fd8219272b005",
      "tree": "660b9104305a809ec4fdeb295ca13d6e90790ecc",
      "parents": [
        "440f0d588555892601cfe511728a0fc0c8204063",
        "bb400801c2f40bbd9a688818323ad09abfc4e581"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jun 11 16:00:49 2009 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jun 11 16:00:49 2009 +0200"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n"
    },
    {
      "commit": "2b85a34e911bf483c27cfdd124aeb1605145dc80",
      "tree": "3cea3e8a27b62de2f92e759641c27200d8bde421",
      "parents": [
        "f2333a014c1e13ac8e1b73a6fd77731c524eff78"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jun 11 02:55:43 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 11 02:55:43 2009 -0700"
      },
      "message": "net: No more expensive sock_hold()/sock_put() on each tx\n\nOne of the problem with sock memory accounting is it uses\na pair of sock_hold()/sock_put() for each transmitted packet.\n\nThis slows down bidirectional flows because the receive path\nalso needs to take a refcount on socket and might use a different\ncpu than transmit path or transmit completion path. So these\ntwo atomic operations also trigger cache line bounces.\n\nWe can see this in tx or tx/rx workloads (media gateways for example),\nwhere sock_wfree() can be in top five functions in profiles.\n\nWe use this sock_hold()/sock_put() so that sock freeing\nis delayed until all tx packets are completed.\n\nAs we also update sk_wmem_alloc, we could offset sk_wmem_alloc\nby one unit at init time, until sk_free() is called.\nOnce sk_free() is called, we atomic_dec_and_test(sk_wmem_alloc)\nto decrement initial offset and atomicaly check if any packets\nare in flight.\n\nskb_set_owner_w() doesnt call sock_hold() anymore\n\nsock_wfree() doesnt call sock_put() anymore, but check if sk_wmem_alloc\nreached 0 to perform the final freeing.\n\nDrawback is that a skb-\u003etruesize error could lead to unfreeable sockets, or\neven worse, prematurely calling __sk_free() on a live socket.\n\nNice speedups on SMP. tbench for example, going from 2691 MB/s to 2711 MB/s\non my 8 cpu dev machine, even if tbench was not really hitting sk_refcnt\ncontention point. 5 % speedup on a UDP transmit workload (depends\non number of flows), lowering TX completion cpu usage.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0808dc80939b08ec215f472e17a5d8f6b148037e",
      "tree": "fef9defdad321c23b3e82aaaf4b25cb563bd0474",
      "parents": [
        "1506e30b5f25f6c3357167a18f0e4ae6f5662a28"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 18:05:28 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 18:05:28 2009 -0700"
      },
      "message": "netfilter: Fix extra semi-colon in skb_walk_frags() changes.\n\nNoticed by Jesper Dangaard Brouer\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "343a99724e4431d8618bea2eb7552e12c965425a",
      "tree": "757ebed1108b3609e4617e905ed48ab08f6fc00c",
      "parents": [
        "4d9092bb41c8fdca45513461587d8b4ad3918f74"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:23:58 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:23:58 2009 -0700"
      },
      "message": "netfilter: Use frag list abstraction interfaces.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d7fcf1a5cae2c970e9afe7192fe0c13d931247e0",
      "tree": "68cbfb556ac2828b7dd74f7bb6b8a25490a9aaf0",
      "parents": [
        "285e42802bb3da91102967f63fb9e28e61f7831e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:19:37 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 09 00:19:37 2009 -0700"
      },
      "message": "ipv4: Use frag list abstraction interfaces.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f87fb666bb00a7afcbd7992d236e42ac544996f9",
      "tree": "0ec53ee8c373e6b4224b2fda40ed4fc49c1ed822",
      "parents": [
        "17f2f52be0edb6d1ff5a3675f2bc545aea2dbf76"
      ],
      "author": {
        "name": "Jan Kasprzak",
        "email": "kas@fi.muni.cz",
        "time": "Mon Jun 08 15:53:43 2009 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jun 08 15:53:43 2009 +0200"
      },
      "message": "netfilter: nf_ct_icmp: keep the ICMP ct entries longer\n\nCurrent conntrack code kills the ICMP conntrack entry as soon as\nthe first reply is received. This is incorrect, as we then see only\nthe first ICMP echo reply out of several possible duplicates as\nESTABLISHED, while the rest will be INVALID. Also this unnecessarily\nincreases the conntrackd traffic on H-A firewalls.\n\nMake all the ICMP conntrack entries (including the replied ones)\nlast for the default of nf_conntrack_icmp{,v6}_timeout seconds.\n\nSigned-off-by: Jan \"Yenya\" Kasprzak \u003ckas@fi.muni.cz\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "17f2f52be0edb6d1ff5a3675f2bc545aea2dbf76",
      "tree": "50c1e9cb16c43c23525eccded67615f009bd691e",
      "parents": [
        "10662aa3083f869c645cc2abf5d66849001e2f5d"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Fri Jun 05 13:26:21 2009 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Jun 05 13:26:21 2009 +0200"
      },
      "message": "netfilter: ipt_MASQUERADE: remove redundant rwlock\n\nThe lock \"protects\" an assignment and a comparision of an integer.\nWhen the caller of device_cmp() evaluates the result, nat-\u003emasq_index\nmay already have been changed (regardless if the lock is there or not).\n\nSo, the lock either has to be held during nf_ct_iterate_cleanup(),\nor can be removed.\n\nThis does the latter.\n\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "a5e78820966e17c2316866e00047e4e7e5480f04",
      "tree": "9d9d814edced591d0cbaabf6cf5e91c54556e255",
      "parents": [
        "e34d5c1a4f9919a81b4ea4591d7383245f35cb8e"
      ],
      "author": {
        "name": "Evgeniy Polyakov",
        "email": "zbr@ioremap.net",
        "time": "Thu Jun 04 16:54:42 2009 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jun 04 16:54:42 2009 +0200"
      },
      "message": "netfilter: x_tables: added hook number into match extension parameter structure.\n\nSigned-off-by: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "2307f866f542f3397d24f78d0efd74f4ab214a96",
      "tree": "e1ff3575746fa19eed779c1d38b8ad995f4b28b0",
      "parents": [
        "278b2513f76161a9cf1ebddd620dc9d1714fe573"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Wed Jun 03 21:43:26 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 21:43:26 2009 -0700"
      },
      "message": "ipv4: remove ip_mc_drop_socket() declaration from af_inet.c.\n\nip_mc_drop_socket() method is declared in linux/igmp.h, which\nis included anyhow in af_inet.c. So there is no need for this declaration.\nThis patch removes it from af_inet.c.\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "adf30907d63893e4208dfe3f5c88ae12bc2f25d5",
      "tree": "0f07542bb95de2ad537540868aba6cf87a86e17d",
      "parents": [
        "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:19:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:04 2009 -0700"
      },
      "message": "net: skb-\u003edst accessors\n\nDefine three accessors to get/set dst attached to a skb\n\nstruct dst_entry *skb_dst(const struct sk_buff *skb)\n\nvoid skb_dst_set(struct sk_buff *skb, struct dst_entry *dst)\n\nvoid skb_dst_drop(struct sk_buff *skb)\nThis one should replace occurrences of :\ndst_release(skb-\u003edst)\nskb-\u003edst \u003d NULL;\n\nDelete skb-\u003edst field\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a",
      "tree": "3e368d9a78f87eb9dd7ff9e57f4aab3f4a96e3b1",
      "parents": [
        "dfbf97f3ac980b69dfbc41c83a208211a38443e8"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:14:27 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:02 2009 -0700"
      },
      "message": "net: skb-\u003ertable accessor\n\nDefine skb_rtable(const struct sk_buff *skb) accessor to get rtable from skb\n\nDelete skb-\u003ertable field\n\nSetting rtable is not allowed, just set dst instead as rtable is an alias.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b2f8f7525c8aa1fdd8ad8c72c832dfb571d5f768",
      "tree": "71ae1801d264bca62efa0d22376b49de7f206e9a",
      "parents": [
        "d455e5b165a367a628110ec2d18807ea10052cd1",
        "12186be7d2e1106cede1cc728526e3d7998cbe94"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:43:41 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:43:41 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/forcedeth.c\n"
    },
    {
      "commit": "17e6e4eac070607a35464ea7e2c5eceac32e5eca",
      "tree": "3742492b50d87c07c18cec6ff2e81e1ebafdd128",
      "parents": [
        "6bfea1984aea86089907caf8974513c2402a3b3d"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue Jun 02 20:08:46 2009 +0200"
      },
      "committer": {
        "name": "pablo",
        "email": "pablo@1984.(none)",
        "time": "Tue Jun 02 20:08:46 2009 +0200"
      },
      "message": "netfilter: conntrack: simplify event caching system\n\nThis patch simplifies the conntrack event caching system by removing\nseveral events:\n\n * IPCT_[*]_VOLATILE, IPCT_HELPINFO and IPCT_NATINFO has been deleted\n   since the have no clients.\n * IPCT_COUNTER_FILLING which is a leftover of the 32-bits counter\n   days.\n * IPCT_REFRESH which is not of any use since we always include the\n   timeout in the messages.\n\nAfter this patch, the existing events are:\n\n * IPCT_NEW, IPCT_RELATED and IPCT_DESTROY, that are used to identify\n addition and deletion of entries.\n * IPCT_STATUS, that notes that the status bits have changes,\n eg. IPS_SEEN_REPLY and IPS_ASSURED.\n * IPCT_PROTOINFO, that reports that internal protocol information has\n changed, eg. the TCP, DCCP and SCTP protocol state.\n * IPCT_HELPER, that a helper has been assigned or unassigned to this\n entry.\n * IPCT_MARK and IPCT_SECMARK, that reports that the mark has changed, this\n covers the case when a mark is set to zero.\n * IPCT_NATSEQADJ, to report that there\u0027s updates in the NAT sequence\n adjustment.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "8cc848fa3445b3503465dfba5d8ad47559faa05a",
      "tree": "6fe6128de6b6791493809b2ce440217579a0d6a8",
      "parents": [
        "a17c859849402315613a0015ac8fbf101acf0cc1",
        "451853645f3cb804b523227eca054701e4cbc589"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jun 02 13:44:56 2009 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jun 02 13:44:56 2009 +0200"
      },
      "message": "Merge branch \u0027master\u0027 of git://dev.medozas.de/linux\n"
    },
    {
      "commit": "f771bef98004d9d141b085d987a77d06669d4f4f",
      "tree": "df9b7a353a8c28e71a8237d3ad65ba7f41ffab30",
      "parents": [
        "4d52cfbef6266092d535237ba5a4b981458ab171"
      ],
      "author": {
        "name": "Nivedita Singhvi",
        "email": "niv@us.ibm.com",
        "time": "Thu May 28 07:00:46 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 02 00:45:24 2009 -0700"
      },
      "message": "ipv4: New multicast-all socket option\n\nAfter some discussion offline with Christoph Lameter and David Stevens\nregarding multicast behaviour in Linux, I\u0027m submitting a slightly\nmodified patch from the one Christoph submitted earlier.\n\nThis patch provides a new socket option IP_MULTICAST_ALL.\n\nIn this case, default behaviour is _unchanged_ from the current\nLinux standard. The socket option is set by default to provide\noriginal behaviour. Sockets wishing to receive data only from\nmulticast groups they join explicitly will need to clear this\nsocket option.\n\nSigned-off-by: Nivedita Singhvi \u003cniv@us.ibm.com\u003e\nSigned-off-by: Christoph Lameter\u003ccl@linux.com\u003e\nAcked-by: David Stevens \u003cdlstevens@us.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4d52cfbef6266092d535237ba5a4b981458ab171",
      "tree": "c11674a1d89196008aeab321b42db4e2b0cd0b28",
      "parents": [
        "dae9de8e13a8a5154688e4c788e65399b4718707"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 00:42:16 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 02 00:42:16 2009 -0700"
      },
      "message": "net: ipv4/ip_sockglue.c cleanups\n\nPure cleanups\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2df9001edc382c331f338f45d259feeaa740c418",
      "tree": "eb92c3ef77973295469743a1087c551acf7ece67",
      "parents": [
        "5d4e039b2cb1ca4de9774344ea7b61ad7fa1b0a1"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri May 29 15:02:29 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 29 15:02:29 2009 -0700"
      },
      "message": "tcp: fix loop in ofo handling code and reduce its complexity\n\nSomewhat luckily, I was looking into these parts with very fine\ncomb because I\u0027ve made somewhat similar changes on the same\narea (conflicts that arose weren\u0027t that lucky though). The loop\nwas very much overengineered recently in commit 915219441d566\n(tcp: Use SKB queue and list helpers instead of doing it\nby-hand), while it basically just wants to know if there are\nskbs after \u0027skb\u0027.\n\nAlso it got broken because skb1 \u003d skb-\u003enext got translated into\nskb1 \u003d skb1-\u003enext (though abstracted) improperly. Note that\n\u0027skb1\u0027 is pointing to previous sk_buff than skb or NULL if at\nhead. Two things went wrong:\n- We\u0027ll kfree \u0027skb\u0027 on the first iteration instead of the\n  skbuff following \u0027skb\u0027 (it would require required SACK reneging\n  to recover I think).\n- The list head case where \u0027skb1\u0027 is NULL is checked too early\n  and the loop won\u0027t execute whereas it previously did.\n\nConclusion, mostly revert the recent changes which makes the\ncset very messy looking but using proper accessor in the\nprevious-like version.\n\nThe effective changes against the original can be viewed with:\n  git-diff 915219441d566f1da0caa0e262be49b666159e17^ \\\n\t\tnet/ipv4/tcp_input.c | sed -n -e \u002757,70 p\u0027\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "108bfa895cacd1a7c1767e85be105b213e5dce50",
      "tree": "4e1aebbe9ad638f36539278b98342edaab5f46df",
      "parents": [
        "a489e51c1a69c3aa7e7aea925f71c92be5cedbb1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu May 28 22:35:10 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 29 01:46:29 2009 -0700"
      },
      "message": "net: unset IFF_XMIT_DST_RELEASE in ipgre_tunnel_setup()\n\nipgre_tunnel_xmit() might need skb-\u003edst, so tell dev_hard_start_xmit()\nto no release it.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "28e72216d7e7af7050f171a87c1eecba93d01ea6",
      "tree": "f29f63e75b5b3e9af58b043d7aa5b1b85dc15b4b",
      "parents": [
        "cdd0db058d64f2619b08e7d098ee0014aa0a5bc1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu May 28 10:44:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 29 01:46:27 2009 -0700"
      },
      "message": "net: unset IFF_XMIT_DST_RELEASE in ipip_tunnel_setup()\n\nipip_tunnel_xmit() might need skb-\u003edst, so tell dev_hard_start_xmit()\nto no release it.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "915219441d566f1da0caa0e262be49b666159e17",
      "tree": "91d40271d6601bc7ae10c4ab0cff2a47bb38d4e3",
      "parents": [
        "de1033428baf1940bbbbf9e66b073ee0a577f5e0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 21:35:47 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 28 21:35:47 2009 -0700"
      },
      "message": "tcp: Use SKB queue and list helpers instead of doing it by-hand.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a2a804cddfe65f18f903985e8a8d04c7c9eec354",
      "tree": "93c81d1a672b52ff8ec38fefa227ab894b37ec62",
      "parents": [
        "9aaa156cf9b7e9d9ed899f254283b91c4e3c36c8"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:34 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:05 2009 -0700"
      },
      "message": "tcp: Do not check flush when comparing options for GRO\n\nThere is no need to repeatedly check flush when comparing TCP\noptions for GRO as it will be false 99% of the time where it\nmatters.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1075f3f65d0e0f49351b7d4310e9f94483972a51",
      "tree": "e5b4a0dbf4eef170da483ce5c52855b7b354e4e0",
      "parents": [
        "a5b1cf288d4200506ab62fbb86cc81ace948a306"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:29 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:02 2009 -0700"
      },
      "message": "ipv4: Use 32-bit loads for ID and length in GRO\n\nThis patch optimises the IPv4 GRO code by using 32-bit loads\n(instead of 16-bit ones) on the ID and length checks in the receive\nfunction.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a5b1cf288d4200506ab62fbb86cc81ace948a306",
      "tree": "c95339866f4d67220d111811a92e5c6b79de6ab4",
      "parents": [
        "7489594cb249aeb178287c9a43a9e4f366044259"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:28 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:01 2009 -0700"
      },
      "message": "gro: Avoid unnecessary comparison after skb_gro_header\n\nFor the overwhelming majority of cases, skb_gro_header\u0027s return\nvalue cannot be NULL.  Yet we must check it because of its current\nform.  This patch splits it up into multiple functions in order\nto avoid this.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "30a3ae30c775e2723f86ef70746ad3cb4404a4c9",
      "tree": "9a3365e4a2b611930f31674a0162126625adac10",
      "parents": [
        "4a9a2968a17eae42ef5dffca8b37534c864e30cc"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:26 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:26:00 2009 -0700"
      },
      "message": "tcp: Optimise len/mss comparison\n\nInstead of checking len \u003e mss || len \u003d\u003d 0, we can accomplish\nboth by checking (len - 1) \u003e mss using the unsigned wraparound.\nAt nearly a million times a second, this might just help.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4a9a2968a17eae42ef5dffca8b37534c864e30cc",
      "tree": "8fa6f421a04491546a25f18a30e2133d50d83c64",
      "parents": [
        "745898eaf0eb7a04a56dec1188d9148259510863"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:25 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:25:59 2009 -0700"
      },
      "message": "tcp: Remove unnecessary window comparisons for GRO\n\nThe window has already been checked as part of the flag word\nso there is no need to check it explicitly.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "745898eaf0eb7a04a56dec1188d9148259510863",
      "tree": "c4ad29d7bc6e8ceb5a96f68cee363f871b2bf17f",
      "parents": [
        "78d3fd0b7de844a6dad56e9620fc9d2271b32ab9"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue May 26 18:50:24 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 27 03:25:57 2009 -0700"
      },
      "message": "tcp: Optimise GRO port comparisons\n\nInstead of doing two 16-bit operations for the source/destination\nports, we can do one 32-bit operation to take care both.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c80a5cdfc5ca6533cb893154f546370da1fdb8f0",
      "tree": "963fef5f697a5953469441d5eaafbbad99fc64a8",
      "parents": [
        "217cbfa856dc1cbc2890781626c4032d9e3ec59f"
      ],
      "author": {
        "name": "Doug Leith",
        "email": "doug.leith@nuim.ie",
        "time": "Mon May 25 22:44:59 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 25 22:44:59 2009 -0700"
      },
      "message": "tcp: tcp_vegas ssthresh bugfix\n\nThis patch fixes ssthresh accounting issues in tcp_vegas when cwnd decreases\n\nSigned-off-by: Doug Leith \u003cdoug.leith@nuim.ie\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c649c0e31d5736a4b7c5c3454182091dda4bbe62",
      "tree": "93da11bf4ea828611ab5277a7dbadf57724c2b1e",
      "parents": [
        "daebafed7fef54fcc73d2d01431122cfd578d1e0",
        "4e2fd555199977c5994d1a4d2d3b8761b20ca4c7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 25 01:42:21 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 25 01:42:21 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/wireless/ath/ath5k/phy.c\n\tdrivers/net/wireless/iwlwifi/iwl-agn.c\n\tdrivers/net/wireless/iwlwifi/iwl3945-base.c\n"
    },
    {
      "commit": "3ed18d76d959e5cbfa5d70c8f7ba95476582a556",
      "tree": "9fbd15b820b43627440fd6961f687c30e8d4e130",
      "parents": [
        "5b5f792a6a9a2f9ae812d151ed621f72e99b1725"
      ],
      "author": {
        "name": "Robert Olsson",
        "email": "robert.olsson@its.uu.se",
        "time": "Thu May 21 15:20:59 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 21 15:20:59 2009 -0700"
      },
      "message": "ipv4: Fix oops with FIB_TRIE\n\nIt seems we can fix this by disabling preemption while we re-balance the \ntrie. This is with the CONFIG_CLASSIC_RCU. It\u0027s been stress-tested at high \nloads continuesly taking a full BGP table up/down via iproute -batch.\n\nNote. fib_trie is not updated for CONFIG_PREEMPT_RCU\n\nReported-by: Andrei Popa\nSigned-off-by: Robert Olsson \u003crobert.olsson@its.uu.se\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "04af8cf6f320031090ab6fa4600b912b0c18fb4b",
      "tree": "636fce0f62c6fb50a7229bc628e187589ab46679",
      "parents": [
        "288ddad5b095ff65812cf1060c67d23c07568871"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Wed May 20 17:26:23 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 20 17:26:23 2009 -0700"
      },
      "message": "net: Remove unused parameter from fill method in fib_rules_ops.\n\nThe netlink message header (struct nlmsghdr) is an unused parameter in\nfill method of fib_rules_ops struct.  This patch removes this\nparameter from this method and fixes the places where this method is\ncalled.\n\n(include/net/fib_rules.h)\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ddbcb005c395518c2cd0df504cff3d4b5c85853",
      "tree": "03567b8b50d3094ae13c64b44890f9c0d53361b7",
      "parents": [
        "cf8da764fc6959b7efb482f375dfef9830e98205"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue May 19 20:14:28 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 20 17:18:02 2009 -0700"
      },
      "message": "net: fix rtable leak in net/ipv4/route.c\n\nAlexander V. Lukyanov found a regression in 2.6.29 and made a complete\nanalysis found in http://bugzilla.kernel.org/show_bug.cgi?id\u003d13339\nQuoted here because its a perfect one :\n\nbegin_of_quotation\n 2.6.29 patch has introduced flexible route cache rebuilding. Unfortunately the\n patch has at least one critical flaw, and another problem.\n\n rt_intern_hash calculates rthi pointer, which is later used for new entry\n insertion. The same loop calculates cand pointer which is used to clean the\n list. If the pointers are the same, rtable leak occurs, as first the cand is\n removed then the new entry is appended to it.\n\n This leak leads to unregister_netdevice problem (usage count \u003e 0).\n\n Another problem of the patch is that it tries to insert the entries in certain\n order, to facilitate counting of entries distinct by all but QoS parameters.\n Unfortunately, referencing an existing rtable entry moves it to list beginning,\n to speed up further lookups, so the carefully built order is destroyed.\n\n For the first problem the simplest patch it to set rthi\u003d0 when rthi\u003d\u003dcand, but\n it will also destroy the ordering.\nend_of_quotation\n\nProblematic commit is 1080d709fb9d8cd4392f93476ee46a9d6ea05a5b\n(net: implement emergency route cache rebulds when gc_elasticity is exceeded)\n\nTrying to keep dst_entries ordered is too complex and breaks the fact that\norder should depend on the frequency of use for garbage collection.\n\nA possible fix is to make rt_intern_hash() simpler, and only makes\nrt_check_expire() a litle bit smarter, being able to cope with an arbitrary\nentries order. The added loop is running on cache hot data, while cpu\nis prefetching next object, so should be unnoticied.\n\nReported-and-analyzed-by: Alexander V. Lukyanov \u003clav@yar.ru\u003e\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf8da764fc6959b7efb482f375dfef9830e98205",
      "tree": "701e4c42f6563cdb50153485015f0c4b439294ec",
      "parents": [
        "bc8a5397433e4effbaddfa7e462d10b3c060cabb"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue May 19 18:54:22 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 20 17:18:01 2009 -0700"
      },
      "message": "net: fix length computation in rt_check_expire()\n\nrt_check_expire() computes average and standard deviation of chain lengths,\nbut not correclty reset length to 0 at beginning of each chain.\nThis probably gives overflows for sum2 (and sum) on loaded machines instead\nof meaningful results.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9643f4551255ce8b3ef7470aaaf7f435a20f9182",
      "tree": "4c2fe5194a697c2e9c0e61d7a74850760315ba76",
      "parents": [
        "fd2120ca0da9108e53f8db2fe57ab74fca76fd56"
      ],
      "author": {
        "name": "Chris Friesen",
        "email": "cfriesen@nortel.com",
        "time": "Tue May 19 15:31:50 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 19 15:36:17 2009 -0700"
      },
      "message": "ipv4: teach ipconfig about the MTU option in DHCP\n\nThe DHCP spec allows the server to specify the MTU.  This can be useful\nfor netbooting with UDP-based NFS-root on a network using jumbo frames.\nThis patch allows the kernel IP autoconfiguration to handle this option\ncorrectly.\n\nIt would be possible to use initramfs and add a script to set the MTU,\nbut that seems like a complicated solution if no initramfs is otherwise\nnecessary, and would bloat the kernel image more than this code would.\n\nThis patch was originally submitted to LKML in 2003 by Hans-Peter Jansen.\n\nSigned-off-by: Chris Friesen \u003ccfriesen@nortel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9b8adb5ea005fe73acd5dd58f9bd47eafa74c9d1",
      "tree": "ee83f80abf9d3fab5b2ce66648a024e0d44fd770",
      "parents": [
        "5007392d8512e666107dc356d4c2e05627b9029b"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed May 13 16:59:21 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 18 22:15:58 2009 -0700"
      },
      "message": "net: Fix devinet_sysctl_forward\n\nsysctls are unregistered with the rntl_lock held making\nit unsafe to unconditionally grab the the rtnl_lock.  Instead\nwe need to call rtnl_trylock and restart the system call\nif we can not grab it.  Otherwise we could deadlock at unregistration\ntime.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bc8a5397433e4effbaddfa7e462d10b3c060cabb",
      "tree": "8eb8ad8fecf937006a6f1d8bb70f368821442577",
      "parents": [
        "995b337952cdf7e05d288eede580257b632a8343"
      ],
      "author": {
        "name": "Frans Pop",
        "email": "elendil@planet.nl",
        "time": "Mon May 18 21:48:38 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 18 21:48:38 2009 -0700"
      },
      "message": "ipv4: make default for INET_LRO consistent with help text\n\nCommit e81963b1 (\"ipv4: Make INET_LRO a bool instead of tristate.\")\nchanged this config from tristate to bool.  Add default so that it is\nconsistent with the help text.\n\nSigned-off-by: Frans Pop \u003celendil@planet.nl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bb803cfbecb03a0cf8dc7e1864f18dda6631af00",
      "tree": "6c0989693bea6f50cfa5c6bb14f52ec19668def3",
      "parents": [
        "3878fb6fdbceecca20b15748f807340854220f06",
        "511e11e396dc596825ce04d53d7f6d579404bc01"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 18 21:08:20 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 18 21:08:20 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/scsi/fcoe/fcoe.c\n"
    },
    {
      "commit": "d23a9b5baa1a37ac3620e1ba080965c505053749",
      "tree": "772f89d9c24b43c35bf7e9c113fc61bc5dde62b9",
      "parents": [
        "e204a345a0b11c6522ec06e62dee71628a492408"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Mon May 18 01:47:52 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 18 15:16:38 2009 -0700"
      },
      "message": "ipv4: cleanup: remove unnecessary include.\n\nThere is no need for net/icmp.h header in net/ipv4/fib_frontend.c.\nThis patch removes the #include net/icmp.h from it.\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e204a345a0b11c6522ec06e62dee71628a492408",
      "tree": "7e655603670d6383c98aa478d1369bff04e0a7b5",
      "parents": [
        "450c4ea15ecb89567e6a75b89cbb8a598a7efb75"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Mon May 18 01:19:12 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 18 15:16:37 2009 -0700"
      },
      "message": "ipv4: cleanup - remove two unused parameters from fib_semantic_match().\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "775273131810caa41dfc7f9e552ea5d8508caf40",
      "tree": "38ee8e4815d614c483be352524134c6f7fc163c3",
      "parents": [
        "705efc3b03cbee449e4d83b230423894152f7982"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sun May 10 20:32:34 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 18 15:05:40 2009 -0700"
      },
      "message": "tcp: fix MSG_PEEK race check\n\nCommit 518a09ef11 (tcp: Fix recvmsg MSG_PEEK influence of\nblocking behavior) lets the loop run longer than the race check\ndid previously expect, so we need to be more careful with this\ncheck and consider the work we have been doing.\n\nI tried my best to deal with urg hole madness too which happens\nhere:\n\tif (!sock_flag(sk, SOCK_URGINLINE)) {\n\t\t++*seq;\n\t\t...\nby using additional offset by one but I certainly have very\nlittle interest in testing that part.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nTested-by: Frans Pop \u003celendil@planet.nl\u003e\nTested-by: Ian Zimmermann \u003citz@buug.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2513dfb83fc775364fe85803d3a84d7ebe5763a5",
      "tree": "157003b5c1b88c1eb95b1307db9835ddd610fb02",
      "parents": [
        "5e392739d6ab72f7c35040aa07f4097904bce6e7"
      ],
      "author": {
        "name": "Chris Friesen",
        "email": "cfriesen@nortel.com",
        "time": "Sun May 17 20:39:33 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 17 20:39:33 2009 -0700"
      },
      "message": "ipconfig: handle case of delayed DHCP server\n\nIf a DHCP server is delayed, it\u0027s possible for the client to receive the \nDHCPOFFER after it has already sent out a new DHCPDISCOVER message from \na second interface.  The client then sends out a DHCPREQUEST from the \nsecond interface, but the server doesn\u0027t recognize the device and \nrejects the request.\n\nThis patch simply tracks the current device being configured and throws \naway the OFFER if it is not intended for the current device.  A more \nsophisticated approach would be to put the OFFER information into the \nstruct ic_device rather than storing it globally.\n\nSigned-off-by: Chris Friesen \u003ccfriesen@nortel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8b3521eeb7598c3b10c7e14361a7974464527702",
      "tree": "dbad2dc2822694f86493cf60e4b969f80fbce3d1",
      "parents": [
        "980c9e8ceeb69ac4c921173d0d06323f5c678647"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Mon May 11 05:52:49 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 17 11:59:45 2009 -0700"
      },
      "message": "ipv4: remove an unused parameter from configure method of fib_rules_ops.\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e81963b180ac502fda0326edf059b1e29cdef1a2",
      "tree": "47b8b84acbaa45bc683a51e97c236eb35975aa0d",
      "parents": [
        "9b05126baa146fc3f41360164141d4e1b3ea93c4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 08 12:45:26 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 08 12:45:26 2009 -0700"
      },
      "message": "ipv4: Make INET_LRO a bool instead of tristate.\n\nThis code is used as a library by several device drivers,\nwhich select INET_LRO.\n\nIf some are modules and some are statically built into the\nkernel, we get build failures if INET_LRO is modular.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "22f6dacdfcfdc792d068e9c41234808860498d04",
      "tree": "281a7d476f256ea3e2f800177ba685b169cc0540",
      "parents": [
        "928f308f556f4943e50c5064b546f47bce301f02",
        "9b05126baa146fc3f41360164141d4e1b3ea93c4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 08 02:48:30 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 08 02:48:30 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tinclude/net/tcp.h\n"
    },
    {
      "commit": "bb70dfa5f8ab4a0f1c699ddb3ef0276d91219b7c",
      "tree": "23c091d2be214b26d87d7800ca363288510311a3",
      "parents": [
        "7a6b1c46e28ab0511be26c238d552c00b51b88c5"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Apr 15 21:40:13 2009 +0200"
      },
      "committer": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Fri May 08 10:30:49 2009 +0200"
      },
      "message": "netfilter: xtables: consolidate comefrom debug cast access\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\n"
    },
    {
      "commit": "7a6b1c46e28ab0511be26c238d552c00b51b88c5",
      "tree": "13c3ee8a27b08cfc53534427654df389a3519589",
      "parents": [
        "9452258d8173806f67b1be5b3b00c39b052060c8"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Apr 15 21:35:33 2009 +0200"
      },
      "committer": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Fri May 08 10:30:49 2009 +0200"
      },
      "message": "netfilter: xtables: remove another level of indent\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\n"
    },
    {
      "commit": "9452258d8173806f67b1be5b3b00c39b052060c8",
      "tree": "68bf3c4de828d30428c0e4c9a8f97eb05cf424fb",
      "parents": [
        "a1ff4ac84e58503691058e88d55fa48949822683"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Apr 15 21:31:32 2009 +0200"
      },
      "committer": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Fri May 08 10:30:48 2009 +0200"
      },
      "message": "netfilter: xtables: remove some goto\n\nCombining two ifs, and goto is easily gone.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\n"
    },
    {
      "commit": "a1ff4ac84e58503691058e88d55fa48949822683",
      "tree": "983d50f478740a0f0111a8d7e9e4b4a4e8f05fc1",
      "parents": [
        "98e86403162d08a30b03426c54c2a8fca1f695d1"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Apr 15 21:28:39 2009 +0200"
      },
      "committer": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Fri May 08 10:30:48 2009 +0200"
      },
      "message": "netfilter: xtables: reduce indent level by one\n\nCosmetic only. Transformation applied:\n\n\t-if (foo) { long block; } else { short block; }\n\t+if (!foo) { short block; continue; } long block;\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\n"
    },
    {
      "commit": "98e86403162d08a30b03426c54c2a8fca1f695d1",
      "tree": "0b610ebf8ce2978a9de090435607617f545252ae",
      "parents": [
        "4f2f6f236af484ada595ff37d0ee1902aa56221f"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Apr 15 21:06:05 2009 +0200"
      },
      "committer": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Fri May 08 10:30:48 2009 +0200"
      },
      "message": "netfilter: xtables: consolidate open-coded logic\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\n"
    },
    {
      "commit": "4f2f6f236af484ada595ff37d0ee1902aa56221f",
      "tree": "7728e6a619c776fe2c85d9b9cbe779c2cc6a2ada",
      "parents": [
        "ccf5bd8c27daa4184004438273e03d3812b14d75"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Apr 15 20:31:13 2009 +0200"
      },
      "committer": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Fri May 08 10:30:47 2009 +0200"
      },
      "message": "netfilter: xtables: fix const inconsistency\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\n"
    },
    {
      "commit": "ccf5bd8c27daa4184004438273e03d3812b14d75",
      "tree": "23928081a0635da191b390c144e9b1faad75cf1b",
      "parents": [
        "4ba351cf866257de3da3fbc8d2bcc3907ee9460f"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Apr 15 20:27:03 2009 +0200"
      },
      "committer": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Fri May 08 10:30:47 2009 +0200"
      },
      "message": "netfilter: xtables: remove redundant casts\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\n"
    },
    {
      "commit": "4ba351cf866257de3da3fbc8d2bcc3907ee9460f",
      "tree": "b0b1be24330c08e309edc9c1049d124cb52d74c6",
      "parents": [
        "4b1e27e99f354ad90a1cbdda352b84763e70ac78"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Tue Apr 14 14:28:48 2009 +0200"
      },
      "committer": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Fri May 08 10:30:47 2009 +0200"
      },
      "message": "netfilter: xtables: use NFPROTO_ in standard targets\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\n"
    },
    {
      "commit": "4b1e27e99f354ad90a1cbdda352b84763e70ac78",
      "tree": "bdeeaef5571e33a1ad2feb82996a67e2c618fa5f",
      "parents": [
        "383ca5b874fad082a61af0f47610a1af83e6bb44"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Tue Apr 14 14:26:49 2009 +0200"
      },
      "committer": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Fri May 08 10:30:46 2009 +0200"
      },
      "message": "netfilter: queue: use NFPROTO_ for queue callsites\n\naf is an nfproto.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\n"
    },
    {
      "commit": "383ca5b874fad082a61af0f47610a1af83e6bb44",
      "tree": "e3644c0bcb2c847e1070601c867449d4b09616ad",
      "parents": [
        "928f308f556f4943e50c5064b546f47bce301f02"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Tue Apr 14 14:24:21 2009 +0200"
      },
      "committer": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Fri May 08 10:30:46 2009 +0200"
      },
      "message": "netfilter: xtables: use NFPROTO_ for xt_proto_init callsites\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\n"
    },
    {
      "commit": "4dbc8ef7e1123bb8a591d75a2b84413aa261a9f4",
      "tree": "2532c1cf032c4011c88b5cd68651b5558f70b231",
      "parents": [
        "9ce77666da48513058e330634a766d4752324f8e"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed May 06 16:50:52 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 06 16:50:52 2009 -0700"
      },
      "message": "net: Make inet_twsk_put similar to sock_put\n\nBy separating the freeing code from the refcounting decrementing.\nProbably reducing icache pressure when we still have reference counts to\ngo.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\n"
    },
    {
      "commit": "ae8d7f884a24ee920e417077b2615c6862be687f",
      "tree": "73bb5c0cd0515a69e2476f3e9b60728bdf7eff57",
      "parents": [
        "ba1cd541ecdaa659c5bf952659c4ad0d0707394d"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "shanwei@cn.fujitsu.com",
        "time": "Tue May 05 01:01:29 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 05 12:29:47 2009 -0700"
      },
      "message": "tcp:fix the code indent\n\nSigned-off-by: Shan Wei\u003cshanwei@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c266898b42fe4e4e2f9edfc9d3474c10f93aa6a",
      "tree": "d964259d2fdd67f22f005852b1770c40ba4d6474",
      "parents": [
        "0b2febf38a33d7c40fb7bb4a58c113a1fa33c412"
      ],
      "author": {
        "name": "Satoru SATOH",
        "email": "satoru.satoh@gmail.com",
        "time": "Mon May 04 11:11:01 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 04 11:11:01 2009 -0700"
      },
      "message": "tcp: Fix tcp_prequeue() to get correct rto_min value\n\ntcp_prequeue() refers to the constant value (TCP_RTO_MIN) regardless of\nthe actual value might be tuned. The following patches fix this and make\ntcp_prequeue get the actual value returns from tcp_rto_min().\n\nSigned-off-by: Satoru SATOH \u003csatoru.satoh@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "255cac91c3c9ce7dca7713b93ab03c75b7902e0e",
      "tree": "5af8ef9d4644615a57a0d560dd942cca42d88851",
      "parents": [
        "513de11bba246b7a67df4c314d9fc936b6a75d0e"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon May 04 11:07:36 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 04 11:07:36 2009 -0700"
      },
      "message": "tcp: extend ECN sysctl to allow server-side only ECN\n\nThis should be very safe compared with full enabled, so I see\nno reason why it shouldn\u0027t be done right away. As ECN can only\nbe negotiated if the SYN sending party is also supporting it,\nsomebody in the loop probably knows what he/she is doing. If\nSYN does not ask for ECN, the server side SYN-ACK is identical\nto what it is without ECN. Thus it\u0027s quite safe.\n\nThe chosen value is safe w.r.t to existing configs which\nchoose to currently set manually either 0 or 1 but\nsilently upgrades those who have not explicitly requested\nECN off.\n\nWhether to just enable both sides comes up time to time but\nunless that gets done now we can at least make the servers\naware of ECN already. As there are some known problems to occur\nif ECN is enabled, it\u0027s currently questionable whether there\u0027s\nany real gain from enabling clients as servers mostly won\u0027t\nsupport it anyway (so we\u0027d hit just the negative sides). After\nenabling the servers and getting that deployed, the client end\nenable really has some potential gain too.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aba7453037c3a90714caae77a622dceaf1173786",
      "tree": "bf07f9f432b0d8e9db9486f1f32ad065c0aa7c5c",
      "parents": [
        "a4fe91ee711f4e955ea85ab05b092cfe384b073e",
        "93af7aca44f0e82e67bda10a0fb73d383edcc8bd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 29 20:30:35 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 29 20:30:35 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tDocumentation/isdn/00-INDEX\n\tdrivers/net/wireless/iwlwifi/iwl-scan.c\n\tdrivers/net/wireless/rndis_wlan.c\n\tnet/mac80211/main.c\n"
    },
    {
      "commit": "942e4a2bd680c606af0211e64eb216be2e19bf61",
      "tree": "a83af49242d4a8d53aa0f3b5814eb17da72edc09",
      "parents": [
        "bf368e4e70cd4e0f880923c44e95a4273d725ab4"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Apr 28 22:36:33 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 28 22:36:33 2009 -0700"
      },
      "message": "netfilter: revised locking for x_tables\n\nThe x_tables are organized with a table structure and a per-cpu copies\nof the counters and rules. On older kernels there was a reader/writer \nlock per table which was a performance bottleneck. In 2.6.30-rc, this\nwas converted to use RCU and the counters/rules which solved the performance\nproblems for do_table but made replacing rules much slower because of\nthe necessary RCU grace period.\n\nThis version uses a per-cpu set of spinlocks and counters to allow to\ntable processing to proceed without the cache thrashing of a global\nreader lock and keeps the same performance for table updates.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ac5978e7f83a6cbd9a70282d6e39bd936a31b2bc",
      "tree": "249e23c2a0fd18e64747121442501f6beb682139",
      "parents": [
        "6a321cb370ad3db4ba6e405e638b3a42c41089b0"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 28 08:03:26 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 28 08:03:26 2009 -0700"
      },
      "message": "inet_diag: Remove dup assignments\n\nThese are later assigned to other values without being used meanwhile.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "36e7b1b8dac1a785abca3a121b6b0b79f1a8d7df",
      "tree": "cdde7191a6e5d78bf9603983d5a71ec99fd5385b",
      "parents": [
        "edbd9e30306067c3a45c035eb95a6f49daaa2337"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Apr 27 05:44:45 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 27 05:44:45 2009 -0700"
      },
      "message": "gro: Fix COMPLETE checksum handling\n\nOn a brand new GRO skb, we cannot call ip_hdr since the header\nmay lie in the non-linear area.  This patch adds the helper\nskb_gro_network_header to handle this.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c9503e0fe052020e0294cd07d0ecd982eb7c9177",
      "tree": "aa0425fc1f30ebdf8d7455cf59db5c3ea2c7dfd0",
      "parents": [
        "2296e5a0136f7ba64c99f3a48a55a687aa9abcc8"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Mon Apr 27 05:42:24 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 27 05:42:24 2009 -0700"
      },
      "message": "ipv4: Limit size of route cache hash table\n\nRight now we have no upper limit on the size of the route cache hash table.\nOn a 128GB POWER6 box it ends up as 32MB:\n\n    IP route cache hash table entries: 4194304 (order: 9, 33554432 bytes)\n\nIt would be nice to cap this for memory consumption reasons, but a massive\nhashtable also causes a significant spike when measuring OS jitter.\n\nWith a 32MB hashtable and 4 million entries, rt_worker_func is taking\n5 ms to complete. On another system with more memory it\u0027s taking 14 ms.\nEven though rt_worker_func does call cond_sched() to limit its impact,\nin an HPC environment we want to keep all sources of OS jitter to a minimum.\n\nWith the patch applied we limit the number of entries to 512k which\ncan still be overriden by using the rt_entries boot option:\n\n    IP route cache hash table entries: 524288 (order: 6, 4194304 bytes)\n\nWith this patch rt_worker_func now takes 0.460 ms on the same system.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nAcked-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "edf391ff17232f097d72441c9ad467bcb3b5db18",
      "tree": "3d1566e92aff168be842f6033695d234b6597180",
      "parents": [
        "06bd12c3b861f8ca9e1215428b19dc0026c6268f"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Mon Apr 27 02:45:02 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 27 02:45:02 2009 -0700"
      },
      "message": "snmp: add missing counters for RFC 4293\n\nThe IP MIB (RFC 4293) defines stats for InOctets, OutOctets, InMcastOctets and\nOutMcastOctets:\nhttp://tools.ietf.org/html/rfc4293\nBut it seems we don\u0027t track those in any way that easy to separate from other\nprotocols.  This patch adds those missing counters to the stats file. Tested\nsuccessfully by me\n\nWith help from Eric Dumazet.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e5e9743bb7429f53c83ad69b432f7b661e74c3f0",
      "tree": "db3691aef0d46c4aed4a2be6dc8ab7c44c3488cb",
      "parents": [
        "a0f82f64e26929776c58a5c93c2ecb38e3d82815",
        "775d8d931581764a1ec982ebe5a927b12762fb6d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 21 01:32:26 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 21 01:32:26 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/core/dev.c\n"
    },
    {
      "commit": "a0f82f64e26929776c58a5c93c2ecb38e3d82815",
      "tree": "8c39812fc6fc8133cc28944e38b44c941d8fa3ce",
      "parents": [
        "7eebb0b28f755e297d355a205bb04945b256db6b"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Sun Apr 19 09:43:48 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 20 02:25:26 2009 -0700"
      },
      "message": "syncookies: remove last_synq_overflow from struct tcp_sock\n\nlast_synq_overflow eats 4 or 8 bytes in struct tcp_sock, even\nthough it is only used when a listening sockets syn queue\nis full.\n\nWe can (ab)use rx_opt.ts_recent_stamp to store the same information;\nit is not used otherwise as long as a socket is in listen state.\n\nMove linger2 around to avoid splitting struct mtu_probe\nacross cacheline boundary on 32 bit arches.\n\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "52cf3cc8acea52ecb93ef1dddb4ef2ae4e35c319",
      "tree": "b4ef4d7350d57d1512f12d3d529efa677ff94243",
      "parents": [
        "8caf153974f2274301e583fda732cc8e5b80331f"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sat Apr 18 05:48:48 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 20 02:15:00 2009 -0700"
      },
      "message": "tcp: fix mid-wq adjustment helper\n\nJust noticed while doing some new work that the recent\nmid-wq adjustment logic will misbehave when FACK is not\nin use (happens either due sysctl\u0027ed off or auto-detected\nreordering) because I forgot the relevant TCPCB tagbit.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "573636cbafeba88f7c88832ae053dafe265bf94b",
      "tree": "d1acf4db4b18faf23771fd71f183acad1caf6641",
      "parents": [
        "d32da050a340214c5dae0d014e39f75548cac2f2"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Apr 17 04:52:48 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 17 04:52:48 2009 -0700"
      },
      "message": "[PATCH] net: remove superfluous call to synchronize_net()\n\ninet_register_protosw() function is responsible for adding a new\ninet protocol into a global table (inetsw[]) that is used with RCU rules.\n\nAs soon as the store of the pointer is done, other cpus might see\nthis new protocol in inetsw[], so we have to make sure new protocol\nis ready for use. All pending memory updates should thus be committed\nto memory before setting the pointer.\nThis is correctly done using rcu_assign_pointer()\n\nsynchronize_net() is typically used at unregister time, after\nunsetting the pointer, to make sure no other cpu is still using\nthe object we want to dismantle. Using it at register time\nis only adding an artificial delay that could hide a real bug,\nand this bug could popup if/when synchronize_rcu() can proceed\nfaster than now.\n\nThis saves about 13 ms on boot time on a HZ\u003d1000 8 cpus machine  ;) \n(4 calls to inet_register_protosw(), and about 3200 us per call)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a0a69a0106dab8d20596f97f6674bed3b394d1ee",
      "tree": "2477a32cab5f8afdb1c158f0b151048ee7afc594",
      "parents": [
        "9dd014eb9804f19d6230c3cbc10fa25f5416bda7"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Apr 17 02:34:38 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 17 02:34:38 2009 -0700"
      },
      "message": "gro: Fix use after free in tcp_gro_receive\n\nAfter calling skb_gro_receive skb-\u003elen can no longer be relied\non since if the skb was merged using frags, then its pages will\nhave been removed and the length reduced.\n\nThis caused tcp_gro_receive to prematurely end merging which\nresulted in suboptimal performance with ixgbe.\n\nThe fix is to store skb-\u003elen on the stack.\n\nReported-by: Mark Wagner \u003cmwagner@redhat.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "134ffb4cad92a6aa534e55a9be145bca780a32c1",
      "tree": "be2b312eefbe4b38e81efb384fda4d8fdfae9943",
      "parents": [
        "2238aff5bbd9d928b69e579b4c95842f97da95ba",
        "98d500d66cb7940747b424b245fc6a51ecfbf005"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 16 16:32:29 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 16 16:32:29 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6\n"
    }
  ],
  "next": "98d500d66cb7940747b424b245fc6a51ecfbf005"
}
