)]}'
{
  "log": [
    {
      "commit": "ccb79bdce71f2c04cfa9bfcbaf4d37e2f963d684",
      "tree": "5f41d7d1daade309b96492301a6f973caba3a2a4",
      "parents": [
        "1d93a9cbad608f6398ba6c5b588c504ccd35a2ca"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@gmx.de",
        "time": "Sat Jul 07 22:16:00 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:58 2007 -0700"
      },
      "message": "[NETFILTER]: x_tables: switch xt_match-\u003echeckentry to bool\n\nSwitch the return type of match functions to boolean\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@gmx.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1d93a9cbad608f6398ba6c5b588c504ccd35a2ca",
      "tree": "df02632a70f0438efb0e5baab9900f4f2acf98a1",
      "parents": [
        "cff533ac12494fa002e2c46acc94d670e5f636a2"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@gmx.de",
        "time": "Sat Jul 07 22:15:35 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:57 2007 -0700"
      },
      "message": "[NETFILTER]: x_tables: switch xt_match-\u003ematch to bool\n\nSwitch the return type of match functions to boolean\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@gmx.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cff533ac12494fa002e2c46acc94d670e5f636a2",
      "tree": "ab159436fa3f5c282455afafcf136fd03fa8225a",
      "parents": [
        "7bfe24611671ec76b44281e582b38535e21f01a9"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@gmx.de",
        "time": "Sat Jul 07 22:15:12 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:56 2007 -0700"
      },
      "message": "[NETFILTER]: x_tables: switch hotdrop to bool\n\nSwitch the \"hotdrop\" variables to boolean\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@gmx.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7bfe24611671ec76b44281e582b38535e21f01a9",
      "tree": "72b04c7220842c58b0f0da274eac78896a28d142",
      "parents": [
        "558585aad0c0ef83d3d14a1c7576b1e404ca1fbc"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki@netfilter.org",
        "time": "Sat Jul 07 22:14:23 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:55 2007 -0700"
      },
      "message": "[NETFILTER]: ip6_tables: fix explanation of valid upper protocol number\n\nThis explains the allowed upper protocol numbers. IP6T_F_NOPROTO was\nintroduced to use 0 as Hop-by-Hop option header, not wildcard. But that\nseemed to be forgotten. 0 has been used as wildcard since 2002-08-23.\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki@netfilter.org\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "558585aad0c0ef83d3d14a1c7576b1e404ca1fbc",
      "tree": "c0c196e304373addcb4562fd84067ecd29da5d44",
      "parents": [
        "067b207b281db5e3f03f8d244286c20f61aa2343"
      ],
      "author": {
        "name": "Jing Min Zhao",
        "email": "zhaojingmin@vivecode.com",
        "time": "Sat Jul 07 22:13:17 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:54 2007 -0700"
      },
      "message": "[NETFILTER]: nf_conntrack_h323: check range first in sequence extension\n\nCheck range before checking STOP flag. This optimization may save a\nnanosecond or less :)\n\nSigned-off-by: Jing Min Zhao \u003czhaojingmin@vivecode.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "067b207b281db5e3f03f8d244286c20f61aa2343",
      "tree": "a947ba1fdc03ca82fdb2c7d6f8334b995c1c5ab2",
      "parents": [
        "93cce3d3657bfb5d04789afcd5104f8c48700f32"
      ],
      "author": {
        "name": "James Chapman",
        "email": "jchapman@katalix.com",
        "time": "Thu Jul 05 17:08:05 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:53 2007 -0700"
      },
      "message": "[UDP]: Cleanup UDP encapsulation code\n\nThis cleanup fell out after adding L2TP support where a new encap_rcv\nfuncptr was added to struct udp_sock. Have XFRM use the new encap_rcv\nfuncptr, which allows us to move the XFRM encap code from udp.c into\nxfrm4_input.c.\n\nMake xfrm4_rcv_encap() static since it is no longer called externally.\n\nSigned-off-by: James Chapman \u003cjchapman@katalix.com\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "93cce3d3657bfb5d04789afcd5104f8c48700f32",
      "tree": "03d9392aec25c4386c390d0b45f3ec3f50bd8702",
      "parents": [
        "66f5e51ed5a300291b34bf3e2b1e22ac28ca3631"
      ],
      "author": {
        "name": "G. Liakhovetski",
        "email": "gl@dsa-ac.de",
        "time": "Mon Jul 02 22:56:57 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:52 2007 -0700"
      },
      "message": "[IrDA]: tsap init routine factorisation.\n\nThis patch extracts common code from irttp_open_tsap() and irttp_dup()\ninto a new function to 1) avoid code duplication, 2) help avoid\nforgetting object initialization in the tsap duplication path in the\nfuture.\n\nSigned-off-by: G. Liakhovetski \u003cgl@dsa-ac.de\u003e\nSigned-off-by: Samuel Ortiz \u003csamuel@sortiz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "66f5e51ed5a300291b34bf3e2b1e22ac28ca3631",
      "tree": "fe70bb70b332f27b8143905d5b2b5b7a999f1315",
      "parents": [
        "411725280bd0058ebb83c0e32133b7a94902c3a6"
      ],
      "author": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Mon Jul 02 22:56:15 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:45 2007 -0700"
      },
      "message": "[IrDA]: kingsun-sir.c charset fix.\n\nSigned-off-by: Samuel Ortiz \u003csamuel@sortiz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "411725280bd0058ebb83c0e32133b7a94902c3a6",
      "tree": "7fc21a6c4b07ad80cf426c466400ed4679834e98",
      "parents": [
        "89da1ecf5483e6aa29b456a15ad6d05a6797c5a5"
      ],
      "author": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Mon Jul 02 22:55:31 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:44 2007 -0700"
      },
      "message": "[IrDA]: Monitor mode.\n\nThrough the IrDA netlink set mode command, we switch to IrDA monitor\nmode, where one IrLAP instance receives all the packets on the media,\nwithout ever responding to them.\n\nSigned-off-by: Samuel Ortiz \u003csamuel@sortiz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "89da1ecf5483e6aa29b456a15ad6d05a6797c5a5",
      "tree": "f9c6305e9c230f90e9cc2f862527eb8943a9e89c",
      "parents": [
        "8c644623fe7e41f59fe97cdf666cba3cb7ced7d8"
      ],
      "author": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Mon Jul 02 22:54:18 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:43 2007 -0700"
      },
      "message": "[IrDA]: Netlink layer.\n\nFirst IrDA configuration netlink layer implementation.\nCurrently, we only support the set/get mode commands.\n\nSigned-off-by: Samuel Ortiz \u003csamuel@sortiz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8c644623fe7e41f59fe97cdf666cba3cb7ced7d8",
      "tree": "42ed72e59e73b6ec840aa4ea97a34630f3544093",
      "parents": [
        "0ba48053831d5b89ee2afaefaae1c06eae80cb05"
      ],
      "author": {
        "name": "Guido Guenther",
        "email": "agx@sigxcpu.org",
        "time": "Mon Jul 02 22:50:25 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:42 2007 -0700"
      },
      "message": "[NET]: Allow group ownership of TUN/TAP devices.\n\nIntroduce a new syscall TUNSETGROUP for group ownership setting of tap\ndevices. The user now is allowed to send packages if either his euid or\nhis egid matches the one specified via tunctl (via -u or -g\nrespecitvely). If both, gid and uid, are set via tunctl, both have to\nmatch.\n\nSigned-off-by: Guido Guenther \u003cagx@sigxcpu.org\u003e\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0ba48053831d5b89ee2afaefaae1c06eae80cb05",
      "tree": "4da20f12b2d4e69cfa22ee74d0319141ddc39801",
      "parents": [
        "ee39e10c27ca5293c72addb95bff864095e19904"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jul 02 22:49:07 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:41 2007 -0700"
      },
      "message": "[NET_SCHED]: Remove unnecessary includes\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee39e10c27ca5293c72addb95bff864095e19904",
      "tree": "ab88b149b0aee405933e55a1bdb3806b3253a481",
      "parents": [
        "4bdf39911e7a887c4499161422423cbaf16684e8"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jul 02 22:48:13 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:39 2007 -0700"
      },
      "message": "[NET_SCHED]: sch_htb: use generic estimator\n\nUse the generic estimator instead of reimplementing (parts of) it.\nFor compatibility always create a default estimator for new classes.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4bdf39911e7a887c4499161422423cbaf16684e8",
      "tree": "3bf1ac8b4ee1e2682d7aff722d41175a694d41dc",
      "parents": [
        "876d48aabf30e4981653f1a0a7ae1e262b8c8b6f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jul 02 22:47:37 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:38 2007 -0700"
      },
      "message": "[NET_SCHED]: Remove unnecessary stats_lock pointers\n\nRemove stats_lock pointers from qdisc-internal structures, in all cases\nit points to dev-\u003equeue_lock. The only case where it is necessary is for\ntop-level qdiscs, where it might also point to dev-\u003eingress_lock in case\nof the ingress qdisc. Also remove it from actions completely, it always\npoints to the actions internal lock.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "876d48aabf30e4981653f1a0a7ae1e262b8c8b6f",
      "tree": "49dace46f70bc243605ecf73af4a3f06e607a2be",
      "parents": [
        "a553e4a6317b2cfc7659542c10fe43184ffe53da"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jul 02 22:46:07 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:37 2007 -0700"
      },
      "message": "[NET_SCHED]: Remove CONFIG_NET_ESTIMATOR option\n\nThe generic estimator is always built in anways and all the config options\ndoes is prevent including a minimal amount of code for setting it up.\nAdditionally the option is already automatically selected for most cases.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a553e4a6317b2cfc7659542c10fe43184ffe53da",
      "tree": "ac0f046c4e0a40513e0f8405c3e628a6e515b83f",
      "parents": [
        "628529b6ee334fedc8d25ce56205bb99566572b9"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Mon Jul 02 22:41:59 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:36 2007 -0700"
      },
      "message": "[PKTGEN]: IPSEC support\n\nAdded transport mode ESP support for starters.  I will send more of\nthese modes and types once i have resolved the tunnel mode isses.\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: Robert Olsson \u003crobert.olsson@its.uu.se\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "628529b6ee334fedc8d25ce56205bb99566572b9",
      "tree": "4545df6f7ecdec05c903bb2c11ba9fb4380ac71c",
      "parents": [
        "007a531b0a0c902392a3deff730acd28ce6625c7"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Mon Jul 02 22:41:14 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:35 2007 -0700"
      },
      "message": "[XFRM] Introduce standalone SAD lookup\n\nThis allows other in-kernel functions to do SAD lookups.\nThe only known user at the moment is pktgen.\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "007a531b0a0c902392a3deff730acd28ce6625c7",
      "tree": "4b8be9cdb0aa51f186f759d285f943284e40312d",
      "parents": [
        "16dab72f65a6aab0aa72866e00c91b58a2794082"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Mon Jul 02 22:40:36 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:27 2007 -0700"
      },
      "message": "[PKTGEN]: Introduce sequential flows\n\nBy default all flows in pktgen are randomly selected.\nThis patch introduces ability to have all defined flows to\nbe sent sequentially. Robert defined randomness to be the\ndefault behavior.\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: Robert Olsson \u003crobert.olsson@its.uu.se\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "16dab72f65a6aab0aa72866e00c91b58a2794082",
      "tree": "2e0b5871e75b9b4cef7c38d2d783147b942086ae",
      "parents": [
        "eef6caf8a916f32f8d9b2a02d4fa7674736c00ac"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Mon Jul 02 22:39:50 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:26 2007 -0700"
      },
      "message": "[PKTGEN]: Centralize packet overhead tracking\n\nTrack the extra packet overhead for VLAN tags, MPLS, IPSEC etc\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: Robert Olsson \u003crobert.olsson@its.uu.se\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eef6caf8a916f32f8d9b2a02d4fa7674736c00ac",
      "tree": "d9ecce23fc7d8b2c4c94905bc43f42dc77424822",
      "parents": [
        "d0410051164bbbc597e15f068b53c06a954ae0d4"
      ],
      "author": {
        "name": "Larry Finger",
        "email": "Larry.Finger@lwfinger.net",
        "time": "Mon Jul 02 22:36:38 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:25 2007 -0700"
      },
      "message": "[MAC80211]: Set low initial rate in rc80211_simple\n\nThe initial rate for STA\u0027s using rc80211_simple is set to the last\nrate in the rate table. For situations for which the signal is weak,\nthe rate may be too high for authentication and association. Although\nthe rc80211_simple module will adjust the speed, the response may not\nbe fast enough for a successful connection. This modification sets the\ninitial rate to the lowest supported value.\n\nSigned-off-by: Larry Finger \u003cLarry.Finger@lwfinger.net\u003e\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d0410051164bbbc597e15f068b53c06a954ae0d4",
      "tree": "9b3385d276eac1b33d7347934773c976cc2b4a81",
      "parents": [
        "61cbc2fca6335be52788773b21efdc52a2750924"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Mon Jul 02 22:07:22 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:24 2007 -0700"
      },
      "message": "[TCP]: SACK fastpath did override adjusted fackets_out\n\nDo same adjustment to SACK fastpath counters provided that\nthey\u0027re valid.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "61cbc2fca6335be52788773b21efdc52a2750924",
      "tree": "489e6a9571c7fabd49dcff384dd634635fe66555",
      "parents": [
        "d62733c8e437fdb58325617c4b3331769ba82d70"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jun 30 13:35:52 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:23 2007 -0700"
      },
      "message": "[NET]: Fix secondary unicast/multicast address count maintenance\n\nWhen a reference to an existing address is increased or decreased without\nhitting zero, the address count is incorrectly adjusted.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d62733c8e437fdb58325617c4b3331769ba82d70",
      "tree": "fcbef07b66cda79b047092e7d53dfd005046838a",
      "parents": [
        "f25f4e44808f0f6c9875d94ef1c41ef86c288eb2"
      ],
      "author": {
        "name": "Peter P Waskiewicz Jr",
        "email": "peter.p.waskiewicz.jr@intel.com",
        "time": "Thu Jun 28 21:04:31 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:22 2007 -0700"
      },
      "message": "[SCHED]: Qdisc changes and sch_rr added for multiqueue\n\nAdd the new sch_rr qdisc for multiqueue network device support.  Allow\nsch_prio and sch_rr to be compiled with or without multiqueue hardware\nsupport.\n\nsch_rr is part of sch_prio, and is referenced from MODULE_ALIAS.  This\nwas done since sch_prio and sch_rr only differ in their dequeue\nroutine.\n\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f25f4e44808f0f6c9875d94ef1c41ef86c288eb2",
      "tree": "d7809dd5e957f1626185326d0c3438ff9a04d350",
      "parents": [
        "a093bf006e09a305e95ff0938c0a18b7520aef67"
      ],
      "author": {
        "name": "Peter P Waskiewicz Jr",
        "email": "peter.p.waskiewicz.jr@intel.com",
        "time": "Fri Jul 06 13:36:20 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:21 2007 -0700"
      },
      "message": "[CORE] Stack changes to add multiqueue hardware support API\n\nAdd the multiqueue hardware device support API to the core network\nstack.  Allow drivers to allocate multiple queues and manage them at\nthe netdev level if they choose to do so.\n\nAdded a new field to sk_buff, namely queue_mapping, for drivers to\nknow which tx_ring to select based on OS classification of the flow.\n\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a093bf006e09a305e95ff0938c0a18b7520aef67",
      "tree": "034bb8195b9aec792a577d020341cfa83caec2bb",
      "parents": [
        "a298830cd026b4c0cde45ef3679a5f68a17577e6"
      ],
      "author": {
        "name": "Peter P Waskiewicz Jr",
        "email": "peter.p.waskiewicz.jr@intel.com",
        "time": "Thu Jun 28 20:45:47 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:20 2007 -0700"
      },
      "message": "[NET]: [DOC] Multiqueue hardware support documentation\n\nAdd a brief howto to Documentation/networking for multiqueue.  It\nexplains how to use the multiqueue API in a driver to support\nmultiqueue paths from the stack, as well as the qdiscs to use for\nfeeding a multiqueue device.\n\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a298830cd026b4c0cde45ef3679a5f68a17577e6",
      "tree": "211a4d13360027e8136b32453ebc6d97a87b8ef7",
      "parents": [
        "58e50a904ec78caf4ca938801c031413b0d3f962"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jun 28 13:44:37 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:19 2007 -0700"
      },
      "message": "[NET]: Fix TX checksum feature check\n\nThis patch fixes a boolean error in the new TX checksum check\nthat causes bogus TSO packets to be generated.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "58e50a904ec78caf4ca938801c031413b0d3f962",
      "tree": "73a5443d31a5e0dbb3761fab4c20ce61f7545af5",
      "parents": [
        "a6d2370b0839c228ae4e680e75263ecf0a73e251"
      ],
      "author": {
        "name": "James Chapman",
        "email": "jchapman@katalix.com",
        "time": "Wed Jun 27 15:53:49 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:18 2007 -0700"
      },
      "message": "[L2TP]: Add PPPoL2TP in-kernel documentation\n\nSigned-off-by: James Chapman \u003cjchapman@katalix.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a6d2370b0839c228ae4e680e75263ecf0a73e251",
      "tree": "3f2941e6ccc50f01eeec9cc59dbb2c550967b33c",
      "parents": [
        "38d15b656258b52a659fcf3e181f85b51bd1851f"
      ],
      "author": {
        "name": "James Chapman",
        "email": "jchapman@katalix.com",
        "time": "Wed Jun 27 15:53:17 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:01 2007 -0700"
      },
      "message": "[L2TP]: Add PPPoL2TP maintainer\n\nSigned-off-by: James Chapman \u003cjchapman@katalix.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "38d15b656258b52a659fcf3e181f85b51bd1851f",
      "tree": "4fdd8b20afa4532d1a7ac4dc698c0ccc9361f3a2",
      "parents": [
        "3557baabf28088f49bdf72a048fd33ab62e205b1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Jun 27 15:52:25 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:16:00 2007 -0700"
      },
      "message": "[PPPOL2TP]: Use proper printf format specifier for size_t.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3557baabf28088f49bdf72a048fd33ab62e205b1",
      "tree": "c0e2f8f03b037758a9fd790adf9bfa1580109910",
      "parents": [
        "cf14a4d06742d59ecb2d837a3f53bb24d1ff9acb"
      ],
      "author": {
        "name": "James Chapman",
        "email": "jchapman@katalix.com",
        "time": "Wed Jun 27 15:49:24 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:59 2007 -0700"
      },
      "message": "[L2TP]: PPP over L2TP driver core\n\nThis driver handles only L2TP data frames; control frames are handled\nby a userspace application. It implements L2TP using the PPPoX socket\nfamily. There is a PPPoX socket for each L2TP session in an L2TP\ntunnel.  PPP data within each session is passed through the kernel\u0027s\nPPP subsystem via this driver. Kernel parameters of each socket can be\nread or modified using ioctl() or [gs]etsockopt() calls.\n\nSigned-off-by: James Chapman \u003cjchapman@katalix.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf14a4d06742d59ecb2d837a3f53bb24d1ff9acb",
      "tree": "78b8058dd7bd8b1cfba243d7d478495e0ba9281b",
      "parents": [
        "342f0234c71b40da785dd6a7ce1dd481ecbfdb81"
      ],
      "author": {
        "name": "James Chapman",
        "email": "jchapman@katalix.com",
        "time": "Wed Jun 27 15:43:43 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:58 2007 -0700"
      },
      "message": "[L2TP]: Changes to existing ppp and socket kernel headers for L2TP\n\nAdd struct sockaddr_pppol2tp to carry L2TP-specific address\ninformation for the PPPoX (PPPoL2TP) socket. Unfortunately we can\u0027t\nuse the union inside struct sockaddr_pppox because the L2TP-specific\ndata is larger than the current size of the union and we must preserve\nthe size of struct sockaddr_pppox for binary compatibility.\n\nAlso add a PPPIOCGL2TPSTATS ioctl to allow userspace to obtain\nL2TP counters and state from the kernel.\n\nAdd new if_pppol2tp.h header.\n\n[ Modified to use aligned_u64 in statistics structure -DaveM ]\n\nSigned-off-by: James Chapman \u003cjchapman@katalix.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "342f0234c71b40da785dd6a7ce1dd481ecbfdb81",
      "tree": "b6d7295cd484449f3f6478fe3e796fc8988534a3",
      "parents": [
        "4417da668c0021903464f92db278ddae348e0299"
      ],
      "author": {
        "name": "James Chapman",
        "email": "jchapman@katalix.com",
        "time": "Wed Jun 27 15:37:46 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:57 2007 -0700"
      },
      "message": "[UDP]: Introduce UDP encapsulation type for L2TP\n\nThis patch adds a new UDP_ENCAP_L2TPINUDP encapsulation type for UDP\nsockets. When a UDP socket\u0027s encap_type is UDP_ENCAP_L2TPINUDP, the\nskb is delivered to a function pointed to by the udp_sock\u0027s\nencap_rcv funcptr. If the skb isn\u0027t wanted by L2TP, it returns \u003e0, which\ncauses it to be passed through to UDP.\n\nInclude padding to put the new encap_rcv field on a 4-byte boundary.\n\nPreviously, the only user of UDP encap sockets was ESP, so when\nCONFIG_XFRM was not defined, some of the encap code was compiled\nout. This patch changes that. As a result, udp_encap_rcv() will\nnow do a little more work when CONFIG_XFRM is not defined.\n\nSigned-off-by: James Chapman \u003cjchapman@katalix.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4417da668c0021903464f92db278ddae348e0299",
      "tree": "a4330cbc2e69a5714fee0a04bcfbabe97109de46",
      "parents": [
        "3fba5a8b1e3df2384b90493538161e83cf15dd5f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 27 01:28:10 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:56 2007 -0700"
      },
      "message": "[NET]: dev: secondary unicast address support\n\nAdd support for configuring secondary unicast addresses on network\ndevices. To support this devices capable of filtering multiple\nunicast addresses need to change their set_multicast_list function\nto configure unicast filters as well and assign it to dev-\u003eset_rx_mode\ninstead of dev-\u003eset_multicast_list. Other devices are put into promiscous\nmode when secondary unicast addresses are present.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3fba5a8b1e3df2384b90493538161e83cf15dd5f",
      "tree": "f38bb73c1bf2516c6c973c9e7cd18fd5a20b1c20",
      "parents": [
        "bf742482d7a647c5c6f03f78eb35a862e159ecf5"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 27 01:26:58 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:55 2007 -0700"
      },
      "message": "[NET]: dev_mcast: switch to generic net_device address lists\n\nUse generic net_device address lists for multicast list handling.\nSome defines are used to keep drivers working.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bf742482d7a647c5c6f03f78eb35a862e159ecf5",
      "tree": "80a822df5fa5eb6b766489b1983c4dc83d4f7668",
      "parents": [
        "75ebe8f73610636be8bbd8d73db883512850e6be"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 27 01:26:19 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:54 2007 -0700"
      },
      "message": "[NET]: dev: introduce generic net_device address lists\n\nIntroduce struct dev_addr_list and list maintenance functions\nbased on dev_mc_list and the related functions. This will be\nused by follow-up patches for both multicast and secondary\nunicast addresses.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "75ebe8f73610636be8bbd8d73db883512850e6be",
      "tree": "60ea3cc1b5fa6a942667d0c9352df838b2f0094b",
      "parents": [
        "d212f87b068c9d72065ef579d85b5ee6b8b59381"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 27 01:25:11 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:53 2007 -0700"
      },
      "message": "[NET]: dev_mcast: unexport dev_mc_upload\n\ndev_mc_add/dev_mc_delete take care of uploading the list when\nnecessary and thats the only interface other code should use.\nAlso remove two incorrect calls in DECnet.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d212f87b068c9d72065ef579d85b5ee6b8b59381",
      "tree": "a194d5c667c277c7ea5392c9cf97857a0cd1d321",
      "parents": [
        "d3d6dd3adaaad71eae20902ed81808a66a40a5b9"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Wed Jun 27 00:47:37 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:52 2007 -0700"
      },
      "message": "[NET]: IPV6 checksum offloading in network devices\n\nThe existing model for checksum offload does not correctly handle\ndevices that can offload IPV4 and IPV6 only. The NETIF_F_HW_CSUM flag\nimplies device can do any arbitrary protocol.\n\nThis patch:\n * adds NETIF_F_IPV6_CSUM for those devices\n * fixes bnx2 and tg3 devices that need it\n * add NETIF_F_IPV6_CSUM to ipv6 output (incl GSO)\n * fixes assumptions about NETIF_F_ALL_CSUM in nat\n * adjusts bridge union of checksumming computation\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d3d6dd3adaaad71eae20902ed81808a66a40a5b9",
      "tree": "b08faa2174867f3f589889695bfa8388d2237f1e",
      "parents": [
        "59fbb3a61e02deaeaa4fb50792217921f3002d64"
      ],
      "author": {
        "name": "Masahide NAKAMURA",
        "email": "nakam@linux-ipv6.org",
        "time": "Tue Jun 26 23:57:49 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:43 2007 -0700"
      },
      "message": "[XFRM]: Add module alias for transformation type.\n\nIt is clean-up for XFRM type modules and adds aliases with its\nprotocol:\n ESP, AH, IPCOMP, IPIP and IPv6 for IPsec\n ROUTING and DSTOPTS for MIPv6\n\nIt is almost the same thing as XFRM mode alias, but it is added\nnew defines XFRM_PROTO_XXX for preprocessing since some protocols\nare defined as enum.\n\nSigned-off-by: Masahide NAKAMURA \u003cnakam@linux-ipv6.org\u003e\nAcked-by: Ingo Oeser \u003cnetdev@axxeo.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "59fbb3a61e02deaeaa4fb50792217921f3002d64",
      "tree": "7455815c2566ba9b898cd6ea2c710159bbeb624f",
      "parents": [
        "136ebf08b46f839e2dc9db34322b654e5d9b9936"
      ],
      "author": {
        "name": "Masahide NAKAMURA",
        "email": "nakam@linux-ipv6.org",
        "time": "Tue Jun 26 23:56:32 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:42 2007 -0700"
      },
      "message": "[IPV6] MIP6: Loadable module support for MIPv6.\n\nThis patch makes MIPv6 loadable module named \"mip6\".\n\nHere is a modprobe.conf(5) example to load it automatically\nwhen user application uses XFRM state for MIPv6:\n\nalias xfrm-type-10-43 mip6\nalias xfrm-type-10-60 mip6\n\nSome MIPv6 feature is not included by this modular, however,\nit should not be affected to other features like either IPsec\nor IPv6 with and without the patch.\nWe may discuss XFRM, MH (RAW socket) and ancillary data/sockopt\nseparately for future work.\n\nLoadable features:\n* MH receiving check (to send ICMP error back)\n* RO header parsing and building (i.e. RH2 and HAO in DSTOPTS)\n* XFRM policy/state database handling for RO\n\nThese are NOT covered as loadable:\n* Home Address flags and its rule on source address selection\n* XFRM sub policy (depends on its own kernel option)\n* XFRM functions to receive RO as IPv6 extension header\n* MH sending/receiving through raw socket if user application\n  opens it (since raw socket allows to do so)\n* RH2 sending as ancillary data\n* RH2 operation with setsockopt(2)\n\nSigned-off-by: Masahide NAKAMURA \u003cnakam@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "136ebf08b46f839e2dc9db34322b654e5d9b9936",
      "tree": "6a38a3c546def150ff73effcf4afd9c55881f49c",
      "parents": [
        "2371baa4bdab3268b32009926f75e7a5d3a41506"
      ],
      "author": {
        "name": "Masahide NAKAMURA",
        "email": "nakam@linux-ipv6.org",
        "time": "Tue Jun 26 23:51:41 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:41 2007 -0700"
      },
      "message": "[IPV6] MIP6: Kill unnecessary ifdefs.\n\nKill unnecessary CONFIG_IPV6_MIP6.\n\no It is redundant for RAW socket to keep MH out with the config then\n  it can handle any protocol.\no Clean-up at AH.\n\nSigned-off-by: Masahide NAKAMURA \u003cnakam@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2371baa4bdab3268b32009926f75e7a5d3a41506",
      "tree": "1c9d118ee17261b92da75550ef2a7b453bbe5bc9",
      "parents": [
        "afdc3238ec948531205f5c5f77d2de7bae519c71"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jun 26 03:23:44 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:40 2007 -0700"
      },
      "message": "[RTNETLINK]: Fix rtnetlink compat attribute patch\n\nSent the wrong patch previously.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "afdc3238ec948531205f5c5f77d2de7bae519c71",
      "tree": "ce69a6ed3095ba5049673340304672381068b3af",
      "parents": [
        "1092cb219774a82b1f16781aec7b8d4ec727c981"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jun 25 14:30:16 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:39 2007 -0700"
      },
      "message": "[RTNETLINK]: Add nested compat attribute\n\nAdd a nested compat attribute type that can be used to convert\nattributes that contain a structure to nested attributes in a\nbackwards compatible way.\n\nThe attribute looks like this:\n\nstruct {\n        [ compat contents ]\n        struct rtattr {\n                .rta_len        \u003d total size,\n                .rta_type       \u003d type,\n        } rta;\n        struct old_structure struct;\n\n        [ nested top-level attribute ]\n        struct rtattr {\n                .rta_len        \u003d nest size,\n                .rta_type       \u003d type,\n        } nest_attr;\n\n        [ optional 0 .. n nested attributes ]\n        struct rtattr {\n                .rta_len        \u003d private attribute len,\n                .rta_type       \u003d private attribute typ,\n        } nested_attr;\n        struct nested_data data;\n};\n\nSince both userspace and kernel deal correctly with attributes that are\nlarger than expected old versions will just parse the compat part and\nignore the rest.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1092cb219774a82b1f16781aec7b8d4ec727c981",
      "tree": "dddd1d559e08c07b41715d8cf2678ff7d45d5230",
      "parents": [
        "334a8132d9950f769f390f0f35c233d099688e7a"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jun 25 13:49:35 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:38 2007 -0700"
      },
      "message": "[NETLINK]: attr: add nested compat attribute type\n\nAdd a nested compat attribute type that can be used to convert\nattributes that contain a structure to nested attributes in a\nbackwards compatible way.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "334a8132d9950f769f390f0f35c233d099688e7a",
      "tree": "0a9e988971d4c20e720e99bccfa6f5feeca5d94a",
      "parents": [
        "e50c41b53d7aa48152dd9c633b04fc7abd536f1f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jun 25 04:35:20 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:37 2007 -0700"
      },
      "message": "[SKBUFF]: Keep track of writable header len of headerless clones\n\nCurrently NAT (and others) that want to modify cloned skbs copy them,\neven if in the vast majority of cases its not necessary because the\nskb is a clone made by TCP and the portion NAT wants to modify is\nactually writable because TCP release the header reference before\ncloning.\n\nThe problem is that there is no clean way for NAT to find out how\nlong the writable header area is, so this patch introduces skb-\u003ehdr_len\nto hold this length. When a headerless skb is cloned skb-\u003ehdr_len\nis set to the current headroom, for regular clones it is copied from\nthe original. A new function skb_clone_writable(skb, len) returns\nwhether the skb is writable up to len bytes from skb-\u003edata. To avoid\nenlarging the skb the mac_len field is reduced to 16 bit and the\nnew hdr_len field is put in the remaining 16 bit.\n\nI\u0027ve done a few rough benchmarks of NAT (not with this exact patch,\nbut a very similar one). As expected it saves huge amounts of system\ntime in case of sendfile, bringing it down to basically the same\namount as without NAT, with sendmsg it only helps on loopback,\nprobably because of the large MTU.\n\nTransmit a 1GB file using sendfile/sendmsg over eth0/lo with and\nwithout NAT:\n\n- sendfile eth0, no NAT:\tsys     0m0.388s\n- sendfile eth0, NAT:\t\tsys     0m1.835s\n- sendfile eth0: NAT + path:\tsys     0m0.370s\t(~ -80%)\n\n- sendfile lo, no NAT:\t\tsys     0m0.258s\n- sendfile lo, NAT:\t\tsys     0m2.609s\n- sendfile lo, NAT + patch:\tsys     0m0.260s\t(~ -90%)\n\n- sendmsg eth0, no NAT:\t\tsys     0m2.508s\n- sendmsg eth0, NAT:\t\tsys     0m2.539s\n- sendmsg eth0, NAT + patch:\tsys     0m2.445s\t(no change)\n\n- sendmsg lo, no NAT:\t\tsys\t0m2.151s\n- sendmsg lo, NAT:\t\tsys     0m3.557s\n- sendmsg lo, NAT + patch:\tsys     0m2.159s\t(~ -40%)\n\nI expect other users can see a similar performance improvement,\npacket mangling iptables targets, ipip and ip_gre come to mind ..\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e50c41b53d7aa48152dd9c633b04fc7abd536f1f",
      "tree": "3f9ecdbf7a685820ad06321dadc73441e850ba10",
      "parents": [
        "6c1361a6f285bf3df4b502651c0dd38d0eedc044"
      ],
      "author": {
        "name": "Krishna Kumar",
        "email": "krkumar2@in.ibm.com",
        "time": "Sun Jun 24 19:57:27 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:36 2007 -0700"
      },
      "message": "[NET]: qdisc_restart - couple of optimizations.\n\nChanges :\n\n- netif_queue_stopped need not be called inside qdisc_restart as\n  it has been called already in qdisc_run() before the first skb\n  is sent, and in __qdisc_run() after each intermediate skb is\n  sent (note : we are the only sender, so the queue cannot get\n  stopped while the tx lock was got in the ~LLTX case).\n\n- BUG_ON((int) q-\u003eq.qlen \u003c 0) was a relic from old times when -1\n  meant more packets are available, and __qdisc_run used to loop\n  when qdisc_restart() returned -1. During those days, it was\n  necessary to make sure that qlen is never less than zero, since\n  __qdisc_run would get into an infinite loop if no packets are on\n  the queue and this bug in qdisc was there (and worse - no more\n  skbs could ever get queue\u0027d as we hold the queue lock too). With\n  Herbert\u0027s recent change to return values, this check is not\n  required.  Hopefully Herbert can validate this change. If at all\n  this is required, it should be added to skb_dequeue (in failure\n  case), and not to qdisc_qlen.\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6c1361a6f285bf3df4b502651c0dd38d0eedc044",
      "tree": "b0a89bc11d04bd32451b6b0637da6396fa1c8549",
      "parents": [
        "49d66a70cf9fd94057aacd6055334299ab3a5eac"
      ],
      "author": {
        "name": "Krishna Kumar",
        "email": "krkumar2@in.ibm.com",
        "time": "Sun Jun 24 19:56:09 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:35 2007 -0700"
      },
      "message": "[NET]: qdisc_restart - readability changes plus one bug fix.\n\nNew changes :\n\n- Incorporated Peter Waskiewicz\u0027s comments.\n- Re-added back one warning message (on driver returning wrong value).\n\nPrevious changes :\n\n- Converted to use switch/case code which looks neater.\n\n- \"if (ret \u003d\u003d NETDEV_TX_LOCKED \u0026\u0026 lockless)\" is buggy, and the lockless\n  check should be removed, since driver will return NETDEV_TX_LOCKED only\n  if lockless is true and driver has to do the locking. In the original\n  code as well as the latest code, this code can result in a bug where\n  if LLTX is not set for a driver (lockless \u003d\u003d 0) but the driver is written\n  wrongly to do a trylock (despite LLTX being set), the driver returns\n  LOCKED. But since lockless is zero, the packet is requeue\u0027d instead of\n  calling collision code which will issue warning and free up the skb.\n  Instead this skb will be retried with this driver next time, and the same\n  result will ensue. Removing this check will catch these driver bugs instead\n  of hiding the problem. I am keeping this change to readability section\n  since :\n  \ta. it is confusing to check two things as it is; and\n  \tb. it is difficult to keep this check in the changed \u0027switch\u0027 code.\n\n- Changed some names, like try_get_tx_pkt to dev_dequeue_skb (as that is\n  the work being done and easier to understand) and do_dev_requeue to\n  dev_requeue_skb, merged handle_dev_cpu_collision and tx_islocked to\n  dev_handle_collision (handle_dev_cpu_collision is a small routine with only\n  one caller, so there is no need to have two separate routines which also\n  results in getting rid of two macros, etc.\n\n- Removed an XXX comment as it should never fail (I suspect this was related\n  to batch skb WIP, Jamal ?). Converted some functions to original coding\n  style of having the return values and the function name on same line, eg\n  prio2list.\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "49d66a70cf9fd94057aacd6055334299ab3a5eac",
      "tree": "2feed7f094e3b2a45b7d3a211c2a3b33c61cbfb1",
      "parents": [
        "8132da4d412ad51c34bad11133a8f0941e2a1972"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Jun 16 13:48:50 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:34 2007 -0700"
      },
      "message": "[CCID3]: Fix a bug in the send time processing\n\nccid3_hc_tx_send_packet currently returns 0 when the time difference between\ncurrent time and t_nom is less than 1000 microseconds.\n\nIn this case the packet is sent immediately; but, unlike other packets that can\nbe emitted on first attempt, it will not have its window counter updated and\nits options set as required. This is a bug.\n\nFix: Require the time difference to be at least 1000 microseconds. The\nalgorithm then converges: time differences \u003e 1000 microseconds trigger the\ntimer in dccp_write_xmit; after timer expiry this function is tried again; when\nthe time difference is less than 1000, the packet will have its options added\nand window counter updated as required.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\n"
    },
    {
      "commit": "8132da4d412ad51c34bad11133a8f0941e2a1972",
      "tree": "9c8539609c1fce671d3b060cef98ad98e0c59fe6",
      "parents": [
        "1e180f726a58089d15637b5495fecbad8c50c833"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Jun 16 13:34:02 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:27 2007 -0700"
      },
      "message": "[CCID3]: Sending time: update to ktime_t\n\nThis updates the computation of t_nom and t_last_win_count to use the newer\ngettimeofday interface.\n\nCommitter note: used ktime_to_timeval to set the \u0027now\u0027 variable to t_ld in\n                ccid3hctx_no_feedback_timer\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\n"
    },
    {
      "commit": "1e180f726a58089d15637b5495fecbad8c50c833",
      "tree": "bf969bc3483ad5b7c653e34f8d38594c52959ed5",
      "parents": [
        "f1c91da44728fba24927e44056a56e507c11cf7b"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Sat Jun 16 12:39:38 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:26 2007 -0700"
      },
      "message": "[KTIME]: Introduce ktime_add_us\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\n"
    },
    {
      "commit": "f1c91da44728fba24927e44056a56e507c11cf7b",
      "tree": "0b5c2347c91d364a71b39c9ed24a36c172aeef6b",
      "parents": [
        "dd36a9aba44e4ddbac011de2cb14a70444487303"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Jun 16 12:38:51 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:25 2007 -0700"
      },
      "message": "[KTIME]: Introduce ktime_us_delta\n\nThis provides a reusable time difference function which returns the difference in\nmicroseconds, as often used in the DCCP code.\n\nCommiter note: renamed ktime_delta to ktime_us_delta and put it in ktime.h.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\n"
    },
    {
      "commit": "dd36a9aba44e4ddbac011de2cb14a70444487303",
      "tree": "6a218c6b7300c8b710ecc1ea2788cad6fe2f53b1",
      "parents": [
        "cc4d6a3a34ce3976d7d01d044f3093cddc2921c2"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon May 28 18:56:44 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:24 2007 -0700"
      },
      "message": "loss_interval: make struct dccp_li_hist_entry private\n\nnet/dccp/ccids/lib/loss_interval.c is the only place where this struct is used.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "cc4d6a3a34ce3976d7d01d044f3093cddc2921c2",
      "tree": "ddf0a5d4aaac4661f3bb1fadd60082febc21b9ef",
      "parents": [
        "c70b729e662a1b3ee2ef5370c1e4c9bc3ddc239f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon May 28 18:53:08 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:23 2007 -0700"
      },
      "message": "loss_interval: Nuke dccp_li_hist\n\nIt had just a slab cache, so, for the sake of simplicity just make\ndccp_trfc_lib module init routine create the slab cache, no need for users of\nthe lib to create a private loss_interval object.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "c70b729e662a1b3ee2ef5370c1e4c9bc3ddc239f",
      "tree": "eddbd3ddd84e5ebfc0513f8c4dbe23c9eabd8492",
      "parents": [
        "8c281780c6f867460c84bd78d9c3885c10f00ae1"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon May 28 18:25:12 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:22 2007 -0700"
      },
      "message": "loss_interval: Make dccp_li_hist_entry_{new,delete} private\n\nNot used outside the loss_interval code anymore.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "8c281780c6f867460c84bd78d9c3885c10f00ae1",
      "tree": "01e690f1fb96bb671dc2c730c2c5391a96931aa4",
      "parents": [
        "cc0a910b942d11069d35f52b2c0ed0e229e2fb46"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon May 28 18:21:53 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:21 2007 -0700"
      },
      "message": "loss_interval: unexport dccp_li_hist_interval_new\n\nNow its only used inside the loss_interval code.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "cc0a910b942d11069d35f52b2c0ed0e229e2fb46",
      "tree": "9d378b79a25b7c5f03ce9f713f00648781953dbd",
      "parents": [
        "878ac60023c4ba11a7fbf0b1dfe07b8472c0d6ce"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Jun 14 17:41:28 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:20 2007 -0700"
      },
      "message": "[DCCP] loss_interval: Move ccid3_hc_rx_update_li to loss_interval\n\nRenaming it to dccp_li_update_li.\n\nAlso based on previous work by Ian McDonald.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\n"
    },
    {
      "commit": "878ac60023c4ba11a7fbf0b1dfe07b8472c0d6ce",
      "tree": "91c32ebc926cc34906dbe2766da169d4302aff92",
      "parents": [
        "d83258a3da1d3c7ae7b75549c8bf7ed689562c62"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Jun 14 12:24:46 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:19 2007 -0700"
      },
      "message": "[CCID3]: Pass ccid3_li_hist to ccid3_hc_rx_update_li\n\nNow ccid3_hc_rx_update_li is ready to be moved to\nnet/dccp/ccids/lib/loss_interval, it uses the same interface as the other\nfunctions there.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "d83258a3da1d3c7ae7b75549c8bf7ed689562c62",
      "tree": "e19e448fd411c9006e96d6add09ed56d8c5a9e4e",
      "parents": [
        "6bc7efe8efa627077f8f65d01dbb762fc9356a2f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon May 28 18:04:14 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:18 2007 -0700"
      },
      "message": "Remove accesses to ccid3_hc_rx_sock in ccid3_hc_rx_{update,calc_first}_li\n\nThis is a preparatory patch for moving these loss interval functions from\nnet/dccp/ccids/ccid3.c to net/dccp/ccids/lib/loss_interval.c.\n\nBased on a patch by Ian McDonald.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\n"
    },
    {
      "commit": "6bc7efe8efa627077f8f65d01dbb762fc9356a2f",
      "tree": "0e84e3602911a290e0d49bd5523cc2b09c479d0a",
      "parents": [
        "e961811fcde4202ae5c3c9ce81dcfc244e8959bb"
      ],
      "author": {
        "name": "Ian McDonald",
        "email": "ian.mcdonald@jandi.co.nz",
        "time": "Mon May 28 16:37:45 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:06 2007 -0700"
      },
      "message": "loss_interval: Fix timeval initialisation\n\nWhen compiling with EXTRA_CFLAGS\u003d-W noticed that tstamp is not initialised\ncorrectly in dccp_li_calc_first_li.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\n"
    },
    {
      "commit": "e961811fcde4202ae5c3c9ce81dcfc244e8959bb",
      "tree": "8d289d7c5c4f0724e454170b16fb42889587d541",
      "parents": [
        "b2f41ff4139c0df8d06f352acc962a62fc07a0c3"
      ],
      "author": {
        "name": "Ian McDonald",
        "email": "ian.mcdonald@jandi.co.nz",
        "time": "Mon May 28 16:32:26 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:05 2007 -0700"
      },
      "message": "Fix dccp_sum_coverage\n\nWhen compiling with EXTRA_CFLAGS\u003d-W notice that we have signed/unsigned issue\nin dccp.h.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\n"
    },
    {
      "commit": "b2f41ff4139c0df8d06f352acc962a62fc07a0c3",
      "tree": "6c099cbecccb37aafee2c0bbd2d6cfd0e1f3d5b1",
      "parents": [
        "07b5b17e157b7018d0ca40ca0d1581a23096fb45"
      ],
      "author": {
        "name": "Ian McDonald",
        "email": "ian.mcdonald@jandi.co.nz",
        "time": "Mon May 28 12:23:29 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:04 2007 -0700"
      },
      "message": "ccid3: Update copyrights\n\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\n"
    },
    {
      "commit": "07b5b17e157b7018d0ca40ca0d1581a23096fb45",
      "tree": "6dd11652eb4cd1f6c008a6c57e7eaeca10aa9143",
      "parents": [
        "a4bf3af4ac46802436d352ef409cee4fe80445b3"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:07:54 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:03 2007 -0700"
      },
      "message": "[VLAN]: Use rtnl_link API\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a4bf3af4ac46802436d352ef409cee4fe80445b3",
      "tree": "e03e7ceb21ff17d886485c9b137f8a47c1b58c56",
      "parents": [
        "b020cb488586f982f40eb257a32e92a4de710d65"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:07:37 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:02 2007 -0700"
      },
      "message": "[VLAN]: Introduce symbolic constants for flag values\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b020cb488586f982f40eb257a32e92a4de710d65",
      "tree": "a6476a48f969688256079c53b02d8ab20e1d7719",
      "parents": [
        "734423cf38021966a5d3bd5f5c6aaecaf32fb4ac"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:07:22 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:01 2007 -0700"
      },
      "message": "[VLAN]: Keep track of number of QoS mappings\n\nKeep track of the number of configured ingress/egress QoS mappings to\navoid iteration while calculating the netlink attribute size.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "734423cf38021966a5d3bd5f5c6aaecaf32fb4ac",
      "tree": "6bf9f1e8998769d9b56e21fbef06bd61ca2a45f5",
      "parents": [
        "2ae0bf69b716d07126f0a9c17fcc2d76da172cb6"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:07:07 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:15:00 2007 -0700"
      },
      "message": "[VLAN]: Use 32 bit value for skb-\u003epriority mapping\n\nskb-\u003epriority has only 32 bits and even VLAN uses 32 bit values in its API.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2ae0bf69b716d07126f0a9c17fcc2d76da172cb6",
      "tree": "a7cbfcbfa3e5fe95ae77e1fc0a73745f657edf7a",
      "parents": [
        "e89fe42cd03c8fd3686df82d8390a235717a66de"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:06:43 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:59 2007 -0700"
      },
      "message": "[VLAN]: Return proper error codes in register_vlan_device\n\nThe returned device is unused, return proper error codes instead and avoid\nhaving the ioctl handler guess the error.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e89fe42cd03c8fd3686df82d8390a235717a66de",
      "tree": "f5b788a96f44554a90fe1dc1a3c51fa3a8460209",
      "parents": [
        "c1d3ee9925ca714a5ed3f8fce01a7027137f4e3f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:06:29 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:58 2007 -0700"
      },
      "message": "[VLAN]: Move device registation to seperate function\n\nMove device registration and configuration of the underlying device to a\nseperate function.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1d3ee9925ca714a5ed3f8fce01a7027137f4e3f",
      "tree": "df187c7d8a015729ae38e3d1ba3db4584b25190a",
      "parents": [
        "42429aaee5eb44f4a48fdb056d77d0c06ef5aebc"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:06:14 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:57 2007 -0700"
      },
      "message": "[VLAN]: Split up device checks\n\nMove the checks of the underlying device to a seperate function.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "42429aaee5eb44f4a48fdb056d77d0c06ef5aebc",
      "tree": "a23bc4a9464dd3f6323f707246b9738c87ed5482",
      "parents": [
        "2f4284a406cb25d1e41454cbf9ec4545b5ed70a1"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:05:59 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:40 2007 -0700"
      },
      "message": "[VLAN]: Move vlan_group allocation to seperate function\n\nMove group allocation to a seperate function to clean up the code a bit\nand allocate groups before registering the device. Device registration\nis globally visible and causes netlink events, so we shouldn\u0027t fail\nafterwards.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2f4284a406cb25d1e41454cbf9ec4545b5ed70a1",
      "tree": "dcc09152f9e1e59e263fe47e2633547914f98445",
      "parents": [
        "c17d8874f9959070552fddf1b4e1d73c0c144c0f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:05:41 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:39 2007 -0700"
      },
      "message": "[VLAN]: Move some device intialization code to dev-\u003einit callback\n\nMove some device initialization code to new dev-\u003einit callback to make\nit shareable with netlink. Additionally this fixes a minor bug, dev-\u003eiflink\nis set after registration, which causes an incorrect value in the initial\nnetlink message.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c17d8874f9959070552fddf1b4e1d73c0c144c0f",
      "tree": "ea5a61e37f71218f8cb69033293a55631511b470",
      "parents": [
        "9ba2cd656021e7f70038ba9d551224e04d0bfcef"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:05:22 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:38 2007 -0700"
      },
      "message": "[VLAN]: Convert name-based configuration functions to struct netdevice *\n\nMove the device lookup and checks to the ioctl handler under the RTNL and\nchange all name-based interfaces to take a struct net_device * instead.\n\nThis allows to use them from a netlink interface, which identifies devices\nbased on ifindex not name. It also avoids races between the ioctl interface\nand the (upcoming) netlink interface since now all changes happen under the\nRTNL.\n\nAs a nice side effect this greatly simplifies error handling in the helper\nfunctions and fixes a number of incorrect error codes like -EINVAL for\ndevice not found.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9ba2cd656021e7f70038ba9d551224e04d0bfcef",
      "tree": "428e65a439316fddcc00518ddca929dc1f150a93",
      "parents": [
        "62b7ffcaaa4e91ed547fc55758076ac536bd5571"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:05:06 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:37 2007 -0700"
      },
      "message": "[IFB]: Use rtnl_link API\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62b7ffcaaa4e91ed547fc55758076ac536bd5571",
      "tree": "d383b7834d1faceb10b4b33c6c55c150cddd7864",
      "parents": [
        "5d5cb173d85ebf6dfb16f456a8148ecb4b1cecbc"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:04:51 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:36 2007 -0700"
      },
      "message": "[IFB]: Keep ifb devices on list\n\nUse a list instead of an array to allow creating new devices.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5d5cb173d85ebf6dfb16f456a8148ecb4b1cecbc",
      "tree": "58b6befc0007a0166ba6c69b9eb16934c17319d1",
      "parents": [
        "206c9fb26f5df2ea6d440fb64159faf4d8665398"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:04:34 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:29 2007 -0700"
      },
      "message": "[DUMMY]: Use rtnl_link API\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "206c9fb26f5df2ea6d440fb64159faf4d8665398",
      "tree": "feb0240bfe4c87f21d74dc16e897cc5e043e3acb",
      "parents": [
        "58651b24acfd9a6fd3b217b52e577ce34b0932af"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:04:20 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:25 2007 -0700"
      },
      "message": "[DUMMY]: Keep dummy devices on list\n\nUse a list instead of an array to allow creating new devices.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "58651b24acfd9a6fd3b217b52e577ce34b0932af",
      "tree": "7e6d77a0de777c5a8391a6e25b9bc4493ee43401",
      "parents": [
        "38f7b870d4a6a5d3ec21557e849620cb7d032965"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:04:06 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:23 2007 -0700"
      },
      "message": "[DUMMY]: Use dev-\u003estats\n\nUse dev-\u003estats instead of netdev_priv().\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "38f7b870d4a6a5d3ec21557e849620cb7d032965",
      "tree": "a3a35058298554a87f90b8bd1694cac5c5a1eaa6",
      "parents": [
        "0157f60c0caea24fa8347f4c0ed53297c412fce1"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:03:51 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:20 2007 -0700"
      },
      "message": "[RTNETLINK]: Link creation API\n\nAdd rtnetlink API for creating, changing and deleting software devices.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0157f60c0caea24fa8347f4c0ed53297c412fce1",
      "tree": "da02eb5bd1230395e4a431e5d61779ba89d4188b",
      "parents": [
        "6472ce6096bf27d85a1f2580964a36f290bd60a9"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:03:36 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:16 2007 -0700"
      },
      "message": "[RTNETLINK]: Split up rtnl_setlink\n\nSplit up rtnl_setlink into a function performing validation and a function\nperforming the actual changes. This allows to share the modifcation logic\nwith rtnl_newlink, which is introduced by the next patch.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6472ce6096bf27d85a1f2580964a36f290bd60a9",
      "tree": "48ad046be2fdc6e8cbebdfe29e5ba94a5c4c8d8d",
      "parents": [
        "b3d88ad49a0623d09efcf998beb26288c8029f75"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jun 13 12:03:21 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:13 2007 -0700"
      },
      "message": "[NET]: Mark struct net_device * argument to netdev_priv const\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b3d88ad49a0623d09efcf998beb26288c8029f75",
      "tree": "4ac9aa2462ebac150698f71f900772f14e911c87",
      "parents": [
        "8c7b7faaa630fef7f68d8728cee1cce398cc9697"
      ],
      "author": {
        "name": "Larry Finger",
        "email": "Larry.Finger@lwfinger.net",
        "time": "Sun Jun 10 17:57:33 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:14:07 2007 -0700"
      },
      "message": "[MAC80211]: Add support for SIOCGIWRATE ioctl\n\nAt present, transmission rate information for mac80211 is available only\nif verbose debugging is turned on, and then only in the logs. This patch\nimplements the SIOCGIWRATE ioctl, which adds the current transmission rate to\nthe output of iwconfig.\n\nSigned-off-by: Larry Finger \u003cLarry.Finger@lwfinger.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8c7b7faaa630fef7f68d8728cee1cce398cc9697",
      "tree": "844c5c5aad361b7c1e24f8d0b8f3195c4a4ad816",
      "parents": [
        "a7ab4b501f9b8a9dc4d5cee542db67b6ccd1088b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 10 22:08:12 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 10 22:08:12 2007 -0700"
      },
      "message": "[NET]: Kill eth_copy_and_sum().\n\nIt hasn\u0027t \"summed\" anything in over 7 years, and it\u0027s\njust a straight mempcy ala skb_copy_to_linear_data()\nso just get rid of it.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a7ab4b501f9b8a9dc4d5cee542db67b6ccd1088b",
      "tree": "f84fa3241fddf8ed8320ace50fed11170ce7860b",
      "parents": [
        "c716a81ab946c68a8d84022ee32eb14674e72650"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Jun 10 17:33:08 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:06:20 2007 -0700"
      },
      "message": "[TCPv4]: Improve BH latency in /proc/net/tcp\n\nCurrently the code for /proc/net/tcp disable BH while iterating\nover the entire established hash table.  Even though we call\ncond_resched_softirq for each entry, we still won\u0027t process\nsoftirq\u0027s as regularly as we would otherwise do which results\nin poor performance when the system is loaded near capacity.\n\nThis anomaly comes from the 2.4 code where this was all in a\nsingle function and the local_bh_disable might have made sense\nas a small optimisation.\n\nThe cost of each local_bh_disable is so small when compared\nagainst the increased latency in keeping it disabled over a\nlarge but mostly empty TCP established hash table that we\nshould just move it to the individual read_lock/read_unlock\ncalls as we do in inet_diag.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c716a81ab946c68a8d84022ee32eb14674e72650",
      "tree": "be9e428265d85a605ee0fe003fab7c14d516ef61",
      "parents": [
        "05646c91109bfd129361d57dc5d98464ab6f6578"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Sun Jun 10 17:31:24 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:06:16 2007 -0700"
      },
      "message": "[NET_SCHED]: Cleanup readability of qdisc restart\n\nOver the years this code has gotten hairier. Resulting in many long\ndiscussions over long summer days and patches that get it wrong.\nThis patch helps tame that code so normal people will understand it.\n\nThanks to Thomas Graf, Peter J. waskiewicz Jr, and Patrick McHardy\nfor their valuable reviews.\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "05646c91109bfd129361d57dc5d98464ab6f6578",
      "tree": "647639854d1ffb86820d2304419cbcb1bec21451",
      "parents": [
        "5eee6a6dc945acc5bf4da12956b2f698bbb102b9"
      ],
      "author": {
        "name": "Allan Stephens",
        "email": "allan.stephens@windriver.com",
        "time": "Sun Jun 10 17:25:24 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:06:12 2007 -0700"
      },
      "message": "[TIPC]: Optimize stream send routine to avoid fragmentation\n\nThis patch enhances TIPC\u0027s stream socket send routine so that\nit avoids transmitting data in chunks that require fragmentation\nand reassembly, thereby improving performance at both the\nsending and receiving ends of the connection.\n\nThe \"maximum packet size\" hint that records MTU info allows\nthe socket to decide how big a chunk it should send; in the\nevent that the hint has become stale, fragmentation may still\noccur, but the data will be passed correctly and the hint will\nbe updated in time for the following send.  Note: The 66060 byte\npseudo-MTU used for intra-node connections requires the send\nroutine to perform an additional check to ensure it does not\nexceed TIPC\"s limit of 66000 bytes of user data per chunk.\n\nSigned-off-by: Allan Stephens \u003callan.stephens@windriver.com\u003e\nSigned-off-by: Jon Paul Maloy \u003cjon.maloy@ericsson.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5eee6a6dc945acc5bf4da12956b2f698bbb102b9",
      "tree": "9473dcb87f56529006c927af8e415ea2d2842405",
      "parents": [
        "f3ec75f627c746cfe460482d38a33b06a84d038f"
      ],
      "author": {
        "name": "Allan Stephens",
        "email": "allan.stephens@windriver.com",
        "time": "Sun Jun 10 17:24:55 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:06:09 2007 -0700"
      },
      "message": "[TIPC]: Use standard socket \"not implemented\" routines\n\nThis patch modifies TIPC\u0027s socket API to utilize existing\ngeneric routines to indicate unsupported operations, rather\nthan adding similar TIPC-specific routines.\n\nSigned-off-by: Allan Stephens \u003callan.stephens@windriver.com\u003e\nSigned-off-by: Jon Paul Maloy \u003cjon.maloy@ericsson.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f3ec75f627c746cfe460482d38a33b06a84d038f",
      "tree": "dec16d74b5b5204692d14e07d57fd6c35c6c162e",
      "parents": [
        "e06e7c615877026544ad7f8b309d1a3706410383"
      ],
      "author": {
        "name": "Allan Stephens",
        "email": "allan.stephens@windriver.com",
        "time": "Sun Jun 10 17:24:20 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:06:02 2007 -0700"
      },
      "message": "[TIPC]: Improved support for Ethernet traffic filtering\n\nThis patch simplifies TIPC\u0027s Ethernet receive routine to take\nadvantage of information already present in each incoming sk_buff\nindicating whether the packet was explicitly sent to the interface,\nhas been broadcast to all interfaces, or was picked up because the\ninterface is in promiscous mode.\n\nThis new approach also fixes the problem of TIPC accepting unwanted\ntraffic through UML\u0027s multicast-based Ethernet interfaces (which\ndeliver traffic in a promiscuous manner even if the interface is\nnot configured to be promiscuous).\n\nSigned-off-by: Allan Stephens \u003callan.stephens@windriver.com\u003e\nSigned-off-by: Jon Paul Maloy \u003cjon.maloy@ericsson.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e06e7c615877026544ad7f8b309d1a3706410383",
      "tree": "eb087b49279e6db492039a5d684ca9acb13265a3",
      "parents": [
        "4eb6bf6bfb580afaf1e1a1d30cba17a078530cf4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Jun 10 17:22:39 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 10 22:05:57 2007 -0700"
      },
      "message": "[IPV4]: The scheduled removal of multipath cached routing support.\n\nWith help from Chris Wedgwood.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4eb6bf6bfb580afaf1e1a1d30cba17a078530cf4",
      "tree": "f587497c783b04f3e89b4b0e5c105b0533489624",
      "parents": [
        "bcf67e16251c42302499499b1c50f7d35622f564"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Jul 10 17:22:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 17:51:13 2007 -0700"
      },
      "message": "lots-of-architectures: enable arbitary speed tty support\n\nAdd the termios2 structure ready for enabling on most platforms.  One or\ntwo like Sparc are plain weird so have been left alone.  Most can use the\nsame structure as ktermios for termios2 (ie the newer ioctl uses the\nstructure matching the current kernel structure)\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Bryan Wu \u003cbryan.wu@analog.com\u003e\nCc: Ian Molton \u003cspyro@f2s.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Richard Curnow \u003crc@rc0.org.uk\u003e\nCc: Miles Bader \u003cuclinux-v850@lsi.nec.co.jp\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bcf67e16251c42302499499b1c50f7d35622f564",
      "tree": "3df64aa83005c0a153acf3a1a0d7a6e6d49dc688",
      "parents": [
        "c14d444b55f285063a4018c10d521614b70b581a"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@sw.ru",
        "time": "Tue Jul 10 17:22:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 17:51:13 2007 -0700"
      },
      "message": "Make common helpers for seq_files that work with list_heads\n\nMany places in kernel use seq_file API to iterate over a regular list_head.\nThe code for such iteration is identical in all the places, so it\u0027s worth\nintroducing a common helpers.\n\nThis makes code about 300 lines smaller:\n\nThe first version of this patch made the helper functions static inline\nin the seq_file.h header. This patch moves them to the fs/seq_file.c as\nAndrew proposed. The vmlinux .text section sizes are as follows:\n\n2.6.22-rc1-mm1:              0x001794d5\nwith the previous version:   0x00179505\nwith this patch:             0x00179135\n\nThe config file used was make allnoconfig with the \"y\" inclusion of all\nthe possible options to make the files modified by the patch compile plus\ndrivers I have on the test node.\n\nThis patch:\n\nMany places in kernel use seq_file API to iterate over a regular list_head.\nThe code for such iteration is identical in all the places, so it\u0027s worth\nintroducing a common helpers.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c14d444b55f285063a4018c10d521614b70b581a",
      "tree": "6bcf518665f937f46247ab99ffe6744bda6d8b8d",
      "parents": [
        "64c70b1cf43de158282bc1675918d503e5b15cc1"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Tue Jul 10 17:22:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 17:51:13 2007 -0700"
      },
      "message": "sx: switch subven and subid values\n\nsx.c is failing to locate Graham\u0027s card.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Graham Murray \u003cgmurray@webwayone.co.uk\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64c70b1cf43de158282bc1675918d503e5b15cc1",
      "tree": "e7797ee372de94bb9129300e55d23034a7d05f9a",
      "parents": [
        "4c75f7416f51b0c6855952467a5db04f9c598f09"
      ],
      "author": {
        "name": "Richard Purdie",
        "email": "rpurdie@openedhand.com",
        "time": "Tue Jul 10 17:22:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 17:51:13 2007 -0700"
      },
      "message": "Add LZO1X algorithm to the kernel\n\nThis is a hybrid version of the patch to add the LZO1X compression\nalgorithm to the kernel.  Nitin and myself have merged the best parts of\nthe various patches to form this version which we\u0027re both happy with (and\nare jointly signing off).\n\nThe performance of this version is equivalent to the original minilzo code\nit was based on.  Bytecode comparisons have also been made on ARM, i386 and\nx86_64 with favourable results.\n\nThere are several users of LZO lined up including jffs2, crypto and reiser4\nsince its much faster than zlib.\n\nSigned-off-by: Nitin Gupta \u003cnitingupta910@gmail.com\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@openedhand.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c75f7416f51b0c6855952467a5db04f9c598f09",
      "tree": "dbe06f7e69d68cf99b20567577c9c5488e4e1e8c",
      "parents": [
        "6ed911fb04886c5510a41cd89203b931b1c5d261",
        "ed99c541e0a15281c57530d54a4a5e3272f74fb9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 14:57:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 14:57:52 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc:\n  mmc: at91_mci: fix hanging and rework to match flowcharts\n  mmc: at91_mci typo\n  sdhci: Fix \"Unexpected interrupt\" handling\n  mmc: fix silly copy-and-paste error\n  mmc: move layer init and workqueue to core file\n  mmc: refactor host class handling\n  mmc: refactor bus operations\n  sdhci: add ene controller id\n  mmc: bounce requests for simple hosts\n"
    },
    {
      "commit": "6ed911fb04886c5510a41cd89203b931b1c5d261",
      "tree": "b4ee4111fe5371fb84a0c632b8aa749ae49cc874",
      "parents": [
        "64b853aa328f34dd58e4e617cded91e2ddbcac13",
        "4ad072c984ebe329c99965ddd1e58b0bb24af12b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 14:56:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 14:56:22 2007 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6\n\n* \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (40 commits)\n  bonding/bond_main.c: make 2 functions static\n  ps3: gigabit ethernet driver for PS3, take3\n  [netdrvr] Fix dependencies for ax88796 ne2k clone driver\n  eHEA: Capability flag for DLPAR support\n  Remove sk98lin ethernet driver.\n  sunhme.c:quattro_pci_find() must be __devinit\n  bonding / ipv6: no addrconf for slaves separately from master\n  atl1: remove write-only var in tx handler\n  macmace: use \"unsigned long flags;\"\n  Cleanup usbnet_probe() return value handling\n  netxen: deinline and sparse fix\n  eeprom_93cx6: shorten pulse timing to match spec (bis)\n  phylib: Add Marvell 88E1112 phy id\n  phylib: cleanup marvell.c a bit\n  AX88796 network driver\n  IOC3: Switch to pci refcounting safe APIs\n  e100: Fix Tyan motherboard e100 not receiving IPMI commands\n  QE Ethernet driver writes to wrong register to mask interrupts\n  rrunner.c:rr_init() must be __devinit\n  tokenring/3c359.c:xl_init() must be __devinit\n  ...\n"
    },
    {
      "commit": "64b853aa328f34dd58e4e617cded91e2ddbcac13",
      "tree": "34b201d952bc93ead6ca91ed18dab5fb87dacf03",
      "parents": [
        "0f166396e7e8931bb4acfd1a6ea1bd4f0b43f1dd",
        "c1e4fe711a410a139095e6b3e3ce3f07f466063c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 14:50:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 14:50:16 2007 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: (32 commits)\n  [libata] sata_mv: print out additional chip info during probe\n  [libata] Use ATA_UDMAx standard masks when filling driver\u0027s udma_mask info\n  [libata] AHCI: Add support for Marvell AHCI-like chips (initially 6145)\n  [libata] Clean up driver udma_mask initializers\n  libata: Support chips with 64K PRD quirk\n  Add a PCI ID for santa rosa\u0027s PATA controller.\n  sata_sil24: sil24_interrupt() micro-optimisation\n  Add irq_flags to struct pata_platform_info\n  sata_promise: cleanups\n  [libata] pata_ixp4xx: kill unused var\n  ata_piix: fix pio/mwdma programming\n  [libata] ahci: minor internal cleanups\n  [ATA] Add named constant for ATAPI command DEVICE RESET\n  [libata] sata_sx4, sata_via: minor documentation updates\n  [libata] ahci: minor internal cleanups\n  [libata] ahci: Factor out SATA port init into a separate function\n  [libata] pata_sil680: minor cleanups from benh\n  [libata] sata_sx4: named constant cleanup\n  [libata] pata_ixp4xx: convert to new EH\n  [libata] pdc_adma: Reorder initializers with a couple structs\n  ...\n"
    },
    {
      "commit": "0f166396e7e8931bb4acfd1a6ea1bd4f0b43f1dd",
      "tree": "6279fa70695a4c56b7e935018a4c0fc1dfa82e68",
      "parents": [
        "5f60cfd932b42c69ed3226400cb5eab152576c3a",
        "105b1bca4d7bed85bb296f7e7caec2fc643e9fbf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 14:48:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 14:48:43 2007 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://ftp.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://ftp.linux-mips.org/pub/scm/upstream-linus: (62 commits)\n  [MIPS] PNX8550: Cleanup proc code.\n  [MIPS] WRPPMC: Fix build.\n  [MIPS] Yosemite: Fix modpost warnings.\n  [MIPS] Change names of local variables to silence sparse\n  [MIPS] SB1: Fix modpost warning.\n  [MIPS] PNX: Fix modpost warnings.\n  [MIPS] Alchemy: Fix modpost warnings.\n  [MIPS] Non-FPAFF: Fix warning.\n  [MIPS] DEC: Fix modpost warning.\n  [MIPS] MIPSsim: Enable MIPSsim virtual network driver.\n  [MIPS] Delete Ocelot 3 support.\n  [MIPS] remove LASAT Networks platforms support\n  [MIPS] Early check for SMTC kernel on non-MT processor\n  [MIPS] Add debugfs files to show fpuemu statistics\n  [MIPS] Add some debugfs files to debug unaligned accesses\n  [MIPS] rbtx4938: Fix secondary PCIC and glue internal NICs\n  [MIPS] tc35815: Load MAC address via platform_device\n  [MIPS] Move FPU affinity code into separate file.\n  [MIPS] Make ioremap() work on TX39/49 special unmapped segment\n  [MIPS] rbtx4938: Update and minimize defconfig\n  ...\n"
    },
    {
      "commit": "5f60cfd932b42c69ed3226400cb5eab152576c3a",
      "tree": "70e4feba5158e76060d36a6c015be8297c294bca",
      "parents": [
        "9f9d76321659b5ebc9939101481f7c3ce228ea6e",
        "d7ce6d1d5f6e307a2fbb69626cf120e20e793fe7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 14:47:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 14:47:59 2007 -0700"
      },
      "message": "Merge git://git.infradead.org/~dwmw2/battery-2.6\n\n* git://git.infradead.org/~dwmw2/battery-2.6:\n  [BATTERY] ds2760 W1 slave\n  [BATTERY] One Laptop Per Child power/battery driver\n  [BATTERY] Apple PMU driver\n  [BATTERY] 1-Wire ds2760 chip battery driver\n  [BATTERY] APM emulation driver for class batteries\n  [BATTERY] pda_power platform driver\n  [BATTERY] Universal power supply class (was: battery class)\n"
    },
    {
      "commit": "9f9d76321659b5ebc9939101481f7c3ce228ea6e",
      "tree": "7abd21796ad85ba6c606cd2a93e787fb90b3abe6",
      "parents": [
        "1b21f458ddbc8fb6fceeb68158e9e04b2571dabd",
        "f60d89108f3481ca11672b82cf7e67171e050ce4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 14:46:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 14:46:09 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git390.osdl.marist.edu/pub/scm/linux-2.6\n\n* \u0027for-linus\u0027 of git://git390.osdl.marist.edu/pub/scm/linux-2.6:\n  [S390] vmlogrdr function annotation.\n  [S390] s390: rename CPU_IDLE to S390_CPU_IDLE\n  [S390] cio: Remove prototype for non-existing function cmf_reset().\n  [S390] zcrypt: fix request timeout handling\n  [S390] system call optimization.\n  [S390] dasd: Avoid compile warnings on !CONFIG_DASD_PROFILE\n  [S390] Remove volatile from atomic_t\n  [S390] Program check in diag 210 under 31 bit\n  [S390] Bogomips calculation for 64 bit.\n  [S390] smp: Merge smp_count_cpus() and smp_get_save_areas().\n  [S390] zcore: Fix __user annotation.\n  [S390] fixed cdl-format detection.\n  [S390] sclp: Test facility list before executing a service call.\n  [S390] sclp: introduce some new interfaces.\n  [S390] Fixed comment typo.\n  [S390] vmcp cleanup\n"
    },
    {
      "commit": "1b21f458ddbc8fb6fceeb68158e9e04b2571dabd",
      "tree": "6ad7a02eba52a17e7a5d2e5de07b2918705c97bb",
      "parents": [
        "01370f0603f8435d415a19f7e62d1bab826c3589",
        "3ebf44902f77537b5784eb5059c2b78d8b5a920a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 13:56:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 13:56:13 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (57 commits)\n  [GFS2] Accept old format NFS filehandles\n  [GFS2] Small fixes to logging code\n  [DLM] dump more lock values\n  [GFS2] Remove i_mode passing from NFS File Handle\n  [GFS2] Obtaining no_formal_ino from directory entry\n  [GFS2] git-gfs2-nmw-build-fix\n  [GFS2] System won\u0027t suspend with GFS2 file system mounted\n  [GFS2] remounting w/o acl option leaves acls enabled\n  [GFS2] inode size inconsistency\n  [DLM] Telnet to port 21064 can stop all lockspaces\n  [GFS2] Fix gfs2_block_truncate_page err return\n  [GFS2] Addendum to the journaled file/unmount patch\n  [GFS2] Simplify multiple glock aquisition\n  [GFS2] assertion failure after writing to journaled file, umount\n  [GFS2] Use zero_user_page() in stuffed_readpage()\n  [GFS2] Remove bogus \u0027\\0\u0027 in rgrp.c\n  [GFS2] Journaled file write/unstuff bug\n  [DLM] don\u0027t require FS flag on all nodes\n  [GFS2] Fix deallocation issues\n  [GFS2] return conflicts for GETLK\n  ...\n"
    },
    {
      "commit": "01370f0603f8435d415a19f7e62d1bab826c3589",
      "tree": "d3ce7c36c6f9e33bd1d8328ef58f2fca41a18cb3",
      "parents": [
        "5cbc39a726eafa1198c18adb3cf56ccee371dba1",
        "0845718dafea3e16041d270c256e8516acf4e13d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 13:51:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 13:51:06 2007 -0700"
      },
      "message": "Merge branch \u0027splice-2.6.23\u0027 of git://git.kernel.dk/data/git/linux-2.6-block\n\n* \u0027splice-2.6.23\u0027 of git://git.kernel.dk/data/git/linux-2.6-block:\n  pipe: add documentation and comments\n  pipe: change the -\u003epin() operation to -\u003econfirm()\n  Remove remnants of sendfile()\n  xip sendfile removal\n  splice: completely document external interface with kerneldoc\n  sendfile: remove bad_sendfile() from bad_file_ops\n  shmem: convert to using splice instead of sendfile()\n  relay: use splice_to_pipe() instead of open-coding the pipe loop\n  pipe: allow passing around of ops private pointer\n  splice: divorce the splice structure/function definitions from the pipe header\n  splice: relay support\n  sendfile: convert nfsd to splice_direct_to_actor()\n  sendfile: convert nfs to using splice_read()\n  loop: convert to using splice_direct_to_actor() instead of sendfile()\n  splice: add void cookie to the actor data\n  sendfile: kill generic_file_sendfile()\n  sendfile: remove .sendfile from filesystems that use generic_file_sendfile()\n  sys_sendfile: switch to using -\u003esplice_read, if available\n  vmsplice: add vmsplice-to-user support\n  splice: abstract out actor data\n"
    },
    {
      "commit": "5cbc39a726eafa1198c18adb3cf56ccee371dba1",
      "tree": "116e2fabb6076825081549b66fec4b7ccb53e242",
      "parents": [
        "65f88f89c94d877794a6006f210d75d2974a182e",
        "c0613c1c940dac991b9e54db75dc9976491d9f0a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 13:49:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 13:49:46 2007 -0700"
      },
      "message": "Merge branch \u0027trivial-2.6.23\u0027 of git://git.kernel.dk/data/git/linux-2.6-block\n\n* \u0027trivial-2.6.23\u0027 of git://git.kernel.dk/data/git/linux-2.6-block:\n  Documentation/block/barrier.txt is not in sync with the actual code: - blk_queue_ordered() no longer has a gfp_mask parameter - blk_queue_ordered_locked() no longer exists - sd_prepare_flush() looks slightly different\n  Use list_for_each_entry() instead of list_for_each() in the block device\n  Make a \"menuconfig\" out of the Kconfig objects \"menu, ..., endmenu\",\n  block/Kconfig already has its own \"menuconfig\" so remove these\n  Use menuconfigs instead of menus, so the whole menu can be disabled at once\n  cfq-iosched: fix async queue behaviour\n  unexport bio_{,un}map_user\n  Remove legacy CDROM drivers\n  [PATCH] fix request-\u003ecmd \u003d\u003d INT cases\n  cciss: add new controller support for P700m\n  [PATCH] Remove acsi.c\n  [BLOCK] drop unnecessary bvec rewinding from flush_dry_bio_endio\n  [PATCH] cdrom_sysctl_info fix\n  blk_hw_contig_segment(): bad segment size checks\n  [TRIVIAL PATCH] Kill blk_congestion_wait() stub for !CONFIG_BLOCK\n"
    },
    {
      "commit": "4ad072c984ebe329c99965ddd1e58b0bb24af12b",
      "tree": "08474fde537dff35865e2e13d1f81a33ae31a9bd",
      "parents": [
        "02c1889166b47b9ade309a8f4b7c4ddf0489d869"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jul 09 11:51:12 2007 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 10 14:31:45 2007 -0400"
      },
      "message": "bonding/bond_main.c: make 2 functions static\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Chad Tindel \u003cctindel@users.sourceforge.net\u003e\nCc: Jay Vosburgh \u003cfubar@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    }
  ],
  "next": "02c1889166b47b9ade309a8f4b7c4ddf0489d869"
}
