)]}'
{
  "log": [
    {
      "commit": "c40af84a6726f63e35740d26f841992e8f31f92c",
      "tree": "dbb8271908d537817915814735cfc2a86130e2f6",
      "parents": [
        "9c3fea6ab04a7bd9298e635bf29b4a5379f6c476"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Apr 19 22:35:50 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 20 03:01:48 2009 -0700"
      },
      "message": "tun: Fix sk_sleep races when attaching/detaching\n\nAs the sk_sleep wait queue actually lives in tfile, which may be\ndetached from the tun device, bad things will happen when we use\nsk_sleep after detaching.\n\nSince the tun device is the persistent data structure here (when\nrequested by the user), it makes much more sense to have the wait\nqueue live there.  There is no reason to have it in tfile at all\nsince the only time we can wait is if we have a tun attached.\nIn fact we already have a wait queue in tun_struct, so we might\nas well use it.\n\nReported-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nTested-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nTested-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9c3fea6ab04a7bd9298e635bf29b4a5379f6c476",
      "tree": "2b9977d85dc5f4de230a2d556e692cb30a6d945a",
      "parents": [
        "5db8765a86a4cbaf45adaf8c231cf9a6ca2dcfaf"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Apr 18 14:15:52 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 20 03:01:47 2009 -0700"
      },
      "message": "tun: Only free a netdev when all tun descriptors are closed\n\nThe commit c70f182940f988448f3c12a209d18b1edc276e33 (\"tun: Fix\nraces between tun_net_close and free_netdev\") fixed a race where\nan asynchronous deletion of a tun device can hose a poll(2) on\na tun fd attached to that device.\n\nHowever, this came at the cost of moving the tun wait queue into\nthe tun file data structure.  The problem with this is that it\nimposes restrictions on when and where the tun device can access\nthe wait queue since the tun file may change at any time due to\ndetaching and reattaching.\n\nIn particular, now that we need to use the wait queue on the\nreceive path it becomes difficult to properly synchronise this\nwith the detachment of the tun device.\n\nThis patch solves the original race in a different way.  Since\nthe race is only because the underlying memory gets freed, we\ncan prevent it simply by ensuring that we don\u0027t do that until\nall tun descriptors ever attached to the device (even if they\nhave since be detached because they may still be sitting in poll)\nhave been closed.\n\nThis is done by using reference counting the attached tun file\ndescriptors.  The refcount in tun-\u003esk has been reappropriated\nfor this purpose since it was already being used for that, albeit\nfrom the opposite angle.\n\nNote that we no longer zero tfile-\u003etun since tun_get will return\nNULL anyway after the refcount on tfile hits zero.  Instead it\nrepresents whether this device has ever been attached to a device.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0eca93bcf73e5939053a94f7c48f8d6fe6199e00",
      "tree": "b4a95f8442b99cea946bfc8a4767489c0107feca",
      "parents": [
        "86bcebafc5e7f5163ccf828792fe694b112ed6fa"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Apr 14 02:09:43 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 14 02:09:43 2009 -0700"
      },
      "message": "tun: Fix crash with non-GSO users\n\nWhen I made the tun driver use non-linear packets as the preferred\noption, it broke non-GSO users because they would end up allocating\na completely non-linear packet, which triggers a crash when we call\neth_type_trans.\n\nThis patch reverts non-GSO users to using linear packets and adds\na check to ensure that GSO users can\u0027t cause crashes in the same\nway.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ab46d779661d7a03b7aa00279eead5dc3f0b3901",
      "tree": "a236f027cec78999581e84b56eae0c27bce31e42",
      "parents": [
        "ce3dd39595d9d64f4ba6ee8dd24c6269a3b56b6a"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Feb 14 20:46:39 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 14 20:46:39 2009 -0800"
      },
      "message": "tun: Fix merge error\n\nWhen forward-porting the tun accounting patch I managed to break\nthe send path compltely by dropping the tun_get call.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0ecc103aec454288cbaa5a33d8960ab3467e8a11",
      "tree": "d911ae41c303a575913b8aca2a49f4acaaf0fc93",
      "parents": [
        "0012985d184b7b9d4513eacd35771715471e06ef",
        "4906f9985e310fc01f956256b0d58ac28b0dcb19"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 09 23:22:21 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 09 23:22:21 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/gianfar.c\n"
    },
    {
      "commit": "cfbf84fcbcda98bb91ada683a8dc8e6901a83ebd",
      "tree": "abc699128c7579183a7d493ca88807d9ba3d710a",
      "parents": [
        "23b904f35128f3c596831cc3320bab1f2db81f60"
      ],
      "author": {
        "name": "Alex Williamson",
        "email": "alex.williamson@hp.com",
        "time": "Sun Feb 08 17:49:17 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 08 17:49:17 2009 -0800"
      },
      "message": "tun: Fix unicast filter overflow\n\nTap devices can make use of a small MAC filter set via the\nTUNSETTXFILTER ioctl.  The filter has a set of exact matches\nplus a hash for imperfect filtering of additional multicast\naddresses.  The current code is unbalanced, adding unicast\naddresses to the multicast hash, but only checking the hash\nagainst multicast addresses.  This results in the filter\ndropping unicast addresses that overflow the exact filter.\nThe fix is simply to disable the filter by leaving count set\nto zero if we find non-multicast addresses after the exact\nmatch table is filled.\n\nSigned-off-by: Alex Williamson \u003calex.williamson@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "33dccbb050bbe35b88ca8cf1228dcf3e4d4b3554",
      "tree": "19435e330ac81b77c59a56ceea6c66d7efc0bc97",
      "parents": [
        "4cc7f68d65558f683c702d4fe3a5aac4c5227b97"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Feb 05 21:25:32 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 05 21:25:32 2009 -0800"
      },
      "message": "tun: Limit amount of queued packets per device\n\nUnlike a normal socket path, the tuntap device send path does\nnot have any accounting.  This means that the user-space sender\nmay be able to pin down arbitrary amounts of kernel memory by\ncontinuing to send data to an end-point that is congested.\n\nEven when this isn\u0027t an issue because of limited queueing at\nmost end points, this can also be a problem because its only\nresponse to congestion is packet loss.  That is, when those\nlocal queues at the end-point fills up, the tuntap device will\nstart wasting system time because it will continue to send\ndata there which simply gets dropped straight away.\n\nOf course one could argue that everybody should do congestion\ncontrol end-to-end, unfortunately there are people in this world\nstill hooked on UDP, and they don\u0027t appear to be going away\nanywhere fast.  In fact, we\u0027ve always helped them by performing\naccounting in our UDP code, the sole purpose of which is to\nprovide congestion feedback other than through packet loss.\n\nThis patch attempts to apply the same bandaid to the tuntap device.\nIt creates a pseudo-socket object which is used to account our\npackets just as a normal socket does for UDP.  Of course things\nare a little complex because we\u0027re actually reinjecting traffic\nback into the stack rather than out of the stack.\n\nThe stack complexities however should have been resolved by preceding\npatches.  So this one can simply start using skb_set_owner_w.\n\nFor now the accounting is essentially disabled by default for\nbackwards compatibility.  In particular, we set the cap to INT_MAX.\nThis is so that existing applications don\u0027t get confused by the\nsudden arrival EAGAIN errors.\n\nIn future we may wish (or be forced to) do this by default.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1bded710a574f20d41bc9e7fb531301db282d623",
      "tree": "02153d39ee525edaee35953c663926cb57075757",
      "parents": [
        "1a5645bc901aea6f3f446888061b2b084bbf1ba6"
      ],
      "author": {
        "name": "Michael Tokarev",
        "email": "mjt@tls.msk.ru",
        "time": "Mon Feb 02 23:34:56 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 02 23:34:56 2009 -0800"
      },
      "message": "tun: Check supplemental groups in TUN/TAP driver.\n\nMichael Tokarev wrote:\n[]\n\u003e 2, and this is the main one: How about supplementary groups?\n\u003e\n\u003e Here I have a valid usage case: a group of testers running various\n\u003e versions of windows using KVM (kernel virtual machine), 1 at a time,\n\u003e to test some software.  kvm is set up to use bridge with a tap device\n\u003e (there should be a way to connect to the machine).  Anyone on that group\n\u003e has to be able to start/stop the virtual machines.\n\u003e\n\u003e My first attempt - pretty obvious when I saw -g option of tunctl - is\n\u003e to add group ownership for the tun device and add a supplementary group\n\u003e to each user (their primary group should be different).  But that fails,\n\u003e since kernel only checks for egid, not any other group ids.\n\u003e\n\u003e What\u0027s the reasoning to not allow supplementary groups and to only check\n\u003e for egid?\n\nSigned-off-by: Michael Tokarev \u003cmjt@tls.msk.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "09640e6365c679b5642b1c41b6d7078f51689ddf",
      "tree": "a2b80c153bd23fe59db8c6994fda29923819fcea",
      "parents": [
        "ee437770c42088b9b653e8b3bf28a61fa647f84e"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Sun Feb 01 00:45:17 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 01 00:45:17 2009 -0800"
      },
      "message": "net: replace uses of __constant_{endian}\n\nBase versions handle constant folding now.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f019a7a594d951f085eb3878c3d825556d447efe",
      "tree": "9abbe6c51ef39a4b9ab3b06dbc71c415ca443b4e",
      "parents": [
        "aec191aa2a04b082238156dc9690fff8ce95dd6b"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@aristanetworks.com",
        "time": "Wed Jan 21 16:02:16 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 21 16:02:16 2009 -0800"
      },
      "message": "tun: Implement ip link del tunXXX\n\nThis greatly simplifies testing to verify I have fixed the problems\nwith a tun device disappearing when the tun file descriptor is still\nheld open.\n\nFurther it allows removal network namespace operations for the tun\ndriver.  Reducing the network namespace handling in the driver to the\nminimum.  i.e. When we are creating a tun device.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aec191aa2a04b082238156dc9690fff8ce95dd6b",
      "tree": "c854088cd3c8308a4f83d836ec94cf89d8d9fcd0",
      "parents": [
        "c70f182940f988448f3c12a209d18b1edc276e33"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Jan 20 11:08:46 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 21 16:00:47 2009 -0800"
      },
      "message": "tun: There is no longer any need to deny changing network namespaces\n\nWith the awkward case between free_netdev and dev_chr_close fixed\nthere is no longer any need to limit tun and tap devices to the\nnetwork namespace they were created in.  So remove the\nNETIF_F_NETNS_LOCAL flag on the network device.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c70f182940f988448f3c12a209d18b1edc276e33",
      "tree": "6469d90befb657f4ef37cc40c03b97de992dba80",
      "parents": [
        "b2430de37ef0bc0799ffba7b5219d38ca417eb76"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Jan 20 11:07:17 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 21 16:00:46 2009 -0800"
      },
      "message": "tun: Fix races between tun_net_close and free_netdev.\n\nThe tun code does not cope gracefully if the network device goes away before\nthe tun file descriptor is closed.  It looks like we can trigger this with\nrmmod, and moving tun devices between network namespaces will allow this\nto be triggered when network namespaces exit.\n\nTo fix this I introduce an intermediate data structure tun_file which\nholds a count of users and a pointer to the struct tun_struct.  tun_get\nincrements that reference count if it is greater than 0.  tun_put decrements\nthat reference count and detaches from the network device if the count is 0.\n\nWhile we have a file attached to the network device I hold a reference\nto the network device keeping it from going away completely.\n\nWhen a network device is unregistered I decrement the count of the\nattached tun_file and if that was the last user I detach the tun_file,\nand all processes on read_wait are woken up to ensure they do not\nsleep indefinitely. As some of those sleeps happen with the count on\nthe tun device elevated waking up the read waiters ensures that\ntun_file will be detached in a timely manner.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b2430de37ef0bc0799ffba7b5219d38ca417eb76",
      "tree": "19a5a5103ed2227f230aa06f87dc7807e871d5b5",
      "parents": [
        "38231b7a8d1b74c920822640d1ce8eb8046377fb"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Jan 20 11:03:21 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 21 16:00:46 2009 -0800"
      },
      "message": "tun: Move read_wait into tun_file\n\nThe poll interface requires that the waitqueue exist while the struct\nfile is open.  In the rare case when a tun device disappears before\nthe tun file closes we fail to provide this property, so move\nread_wait.\n\nThis is safe now that tun_net_xmit is atomic with tun_detach.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "38231b7a8d1b74c920822640d1ce8eb8046377fb",
      "tree": "fc7f1c3cc8ef34a64a740a2938934dbd598f0d93",
      "parents": [
        "36b50bab53207daf34be63ca62fb8b0b08dc6e6b"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Jan 20 11:02:28 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 21 16:00:45 2009 -0800"
      },
      "message": "tun: Make tun_net_xmit atomic wrt tun_attach \u0026\u0026 tun_detach\n\nCurrently this small race allows for a packet to be received when we\ndetach from an tun device and still be enqueued.  Not especially\nimportant but not what the code is trying to do.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "36b50bab53207daf34be63ca62fb8b0b08dc6e6b",
      "tree": "6363b239732a1ad8d9fd516993c8c6c093dc63a2",
      "parents": [
        "631ab46b79559d6fed784fd7883c0cda4d8cfcfa"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Jan 20 11:01:48 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 21 16:00:45 2009 -0800"
      },
      "message": "tun: Grab the netns in open.\n\nGrabbing namespaces in open, and putting them in close always seems to\nbe the cleanest approach with the fewest surprises.\n\nSo now that we have tun_file so we have somepleace to put the network\nnamespace, let\u0027s grab the network namespace on file open and put on\nfile close.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "631ab46b79559d6fed784fd7883c0cda4d8cfcfa",
      "tree": "8f78e43c4b5adf223254da3315f4957ac629a38a",
      "parents": [
        "eac9e902658dab1e097b8ef064e9e3d16c152cc9"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Jan 20 11:00:40 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 21 16:00:44 2009 -0800"
      },
      "message": "tun: Introduce tun_file\n\nCurrently the tun code suffers from only having a single word of\ndata that exists for the entire life of the tun file descriptor.\n\nThis results in peculiar holding of references to the network namespace\nas well as races between free_netdevice and tun_chr_close.\n\nFix this by introducing tun_file which will hold the per file state.\nFor the moment it still holds just a single word so the differences\nare all logic changes with no changes in semantics.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eac9e902658dab1e097b8ef064e9e3d16c152cc9",
      "tree": "a4e9d99cd65a41be06e2740b2d86fdc67bb7bc7d",
      "parents": [
        "a7385ba21102a90f902055f9f185ca02bf62fa43"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Jan 20 10:59:05 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 21 16:00:44 2009 -0800"
      },
      "message": "tun: Use POLLERR not EBADF in tun_chr_poll\n\nEBADF is meaningless in the context of a poll mask so use POLLERR\ninstead.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a7385ba21102a90f902055f9f185ca02bf62fa43",
      "tree": "93aa0f83a70f704e33ed378b2ad4636533bd7bde",
      "parents": [
        "74a3e5a71c9b54c63bff978e9cafbcef67600f0b"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Jan 20 10:57:48 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 21 16:00:43 2009 -0800"
      },
      "message": "tun: Fix races in tun_set_iff\n\nIt is possible for two different tasks with access to the same file\ndescriptor to call tun_set_iff on it at the same time and race to\nattach to a tap device.  Prevent this by placing all of the logic to\nattach to a file descriptor in one function and testing the file\ndescriptor to be certain it is not already attached to another tun\ndevice.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "74a3e5a71c9b54c63bff978e9cafbcef67600f0b",
      "tree": "b6c3c043a40e62e5ba0e922c90545ee2a986616f",
      "parents": [
        "f5882c30508c1e3c4fbbdaa9ca08d0922c5fb071"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Jan 20 10:56:20 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 21 16:00:43 2009 -0800"
      },
      "message": "tun: Remove unnecessary tun_get_by_name\n\nCurrently the tun driver keeps a private list of tun devices for what\nappears to be a small gain in performance when reconnecting a file\ndescriptor to an existing tun or tap device.  So simplify the code by\nremoving it.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "745417e20684e4951afcabfe74583a3884e54980",
      "tree": "c9691a508557edd2a912207bb03b357ae24e957b",
      "parents": [
        "f26251eb68ea766a98fed922593c154d15127621"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Jan 04 17:14:46 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 04 17:14:46 2009 -0800"
      },
      "message": "tun: Eliminate sparse signedness warning\n\nregister_pernet_gen_device() expects \u0027int*\u0027, found via sparse.\n\n CHECK   drivers/net/tun.c\n drivers/net/tun.c:1245:36: warning: incorrect type in argument 1 (different signedness)\n drivers/net/tun.c:1245:36:    expected int *id\n drivers/net/tun.c:1245:36:    got unsigned int static [toplevel] *\u003cnoident\u003e\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7a0a9608e4459afdf2e4a7831c1cbeb41353adf6",
      "tree": "4f67fafa9ab6532dedbce1c7830a450a5e274bb0",
      "parents": [
        "36f8b9238373751b684650871fd161546b10116c"
      ],
      "author": {
        "name": "Kusanagi Kouichi",
        "email": "slash@ma.neweb.ne.jp",
        "time": "Mon Dec 29 18:23:28 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 29 18:23:28 2008 -0800"
      },
      "message": "tun: Fix SIOCSIFHWADDR error.\n\nSet proper operations.\n\nSigned-off-by: Kusanagi Kouichi \u003cslash@ma.neweb.ne.jp\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0191b625ca5a46206d2fb862bb08f36f2fcb3b31",
      "tree": "454d1842b1833d976da62abcbd5c47521ebe9bd7",
      "parents": [
        "54a696bd07c14d3b1192d03ce7269bc59b45209a",
        "eb56092fc168bf5af199d47af50c0d84a96db898"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 28 12:49:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 28 12:49:40 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1429 commits)\n  net: Allow dependancies of FDDI \u0026 Tokenring to be modular.\n  igb: Fix build warning when DCA is disabled.\n  net: Fix warning fallout from recent NAPI interface changes.\n  gro: Fix potential use after free\n  sfc: If AN is enabled, always read speed/duplex from the AN advertising bits\n  sfc: When disabling the NIC, close the device rather than unregistering it\n  sfc: SFT9001: Add cable diagnostics\n  sfc: Add support for multiple PHY self-tests\n  sfc: Merge top-level functions for self-tests\n  sfc: Clean up PHY mode management in loopback self-test\n  sfc: Fix unreliable link detection in some loopback modes\n  sfc: Generate unique names for per-NIC workqueues\n  802.3ad: use standard ethhdr instead of ad_header\n  802.3ad: generalize out mac address initializer\n  802.3ad: initialize ports LACPDU from const initializer\n  802.3ad: remove typedef around ad_system\n  802.3ad: turn ports is_individual into a bool\n  802.3ad: turn ports is_enabled into a bool\n  802.3ad: make ntt bool\n  ixgbe: Fix set_ringparam in ixgbe to use the same memory pools.\n  ...\n\nFixed trivial IPv4/6 address printing conflicts in fs/cifs/connect.c due\nto the conversion to %pI (in this networking merge) and the addition of\ndoing IPv6 addresses (from the earlier merge of CIFS).\n"
    },
    {
      "commit": "008298231abbeb91bc7be9e8b078607b816d1a4a",
      "tree": "8cb0c17720086ef97c614b96241f06aa63ce8511",
      "parents": [
        "6ab33d51713d6d60c7677c0d020910a8cb37e513"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Nov 20 20:14:53 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 20:14:53 2008 -0800"
      },
      "message": "netdev: add more functions to netdevice ops\n\nThis patch moves neigh_setup and hard_start_xmit into the network device ops\nstructure. For bisection, fix all the previously converted drivers as well.\nBonding driver took the biggest hit on this.\n\nAdded a prefetch of the hard_start_xmit in the fast path to try and reduce\nany impact this would have.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "758e43b74c903ad368ceced31601ba5d96f31238",
      "tree": "6942bc3aae54bd1d46067dc9462f8b0eb4dc9c77",
      "parents": [
        "48dfcde46ef23cfad1e0c0f13d4eae15c7f46efc"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Nov 19 22:10:37 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 19 22:42:47 2008 -0800"
      },
      "message": "tun: convert to net_device_ops\n\nConvert the TUN/TAP tunnel driver to net_device_ops.\nSplit the ops in two, and retain compatability.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "86a264abe542cfececb4df129bc45a0338d8cdb9",
      "tree": "30152f04ba847f311028d5ca697f864c16c7ebb3",
      "parents": [
        "f1752eec6145c97163dbce62d17cf5d928e28a27"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:18 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:18 2008 +1100"
      },
      "message": "CRED: Wrap current-\u003ecred and a few other accessors\n\nWrap current-\u003ecred and a few other accessors to hide their actual\nimplementation.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "ee9785ada3573700efe77b78c03d4e26a4e1bf26",
      "tree": "8e7ed03fa61a04c3a35b99cab0835b99d41488ea",
      "parents": [
        "0e164b685cab357546a9a09ef234922b82ecbfaf"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:38:43 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:38:43 2008 +1100"
      },
      "message": "CRED: Wrap task credential accesses in the network device drivers\n\nWrap access to task credentials so that they can be separated more easily from\nthe task_struct during the introduction of COW creds.\n\nChange most current-\u003e(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().\n\nChange some task-\u003ee?[ug]id to task_e?[ug]id().  In some places it makes more\nsense to use RCU directly rather than a convenient wrapper; these will be\naddressed by later patches.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: netdev@vger.kernel.org\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "9eeda9abd1faf489f3df9a1f557975f4c8650363",
      "tree": "3e0a58e25b776cfbee193195460324dccb1886c7",
      "parents": [
        "61c9eaf90081cbe6dc4f389e0056bff76eca19ec",
        "4bab0ea1d42dd1927af9df6fbf0003fc00617c50"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 06 22:43:03 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 06 22:43:03 2008 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/wireless/ath5k/base.c\n\tnet/8021q/vlan_core.c\n"
    },
    {
      "commit": "babcda74e9d96bb58fd9c6c5112dbdbff169e695",
      "tree": "fcbe5e70f1fff01ad49504171e964c387a5ad7f8",
      "parents": [
        "ab2910921064b657610a3b501358a305e13087ea"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 03 21:11:17 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 03 21:11:17 2008 -0800"
      },
      "message": "drivers/net: Kill now superfluous -\u003elast_rx stores.\n\nThe generic packet receive code takes care of setting\nnetdev-\u003elast_rx when necessary, for the sake of the\nbonding ARP monitor.\n\nDrivers need not do it any more.\n\nSome cases had to be skipped over because the drivers\nwere making use of the -\u003elast_rx value themselves.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "233e70f4228e78eb2f80dc6650f65d3ae3dbf17c",
      "tree": "4e18fbe1851e6d2161b7f18265cb21f8a61e3ce7",
      "parents": [
        "3318a386e4ca68c76e0294363d29bdc46fcad670"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Oct 31 23:28:30 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 01 09:49:46 2008 -0700"
      },
      "message": "saner FASYNC handling on file close\n\nAs it is, all instances of -\u003erelease() for files that have -\u003efasync()\nneed to remember to evict file from fasync lists; forgetting that\ncreates a hole and we actually have a bunch that *does* forget.\n\nSo let\u0027s keep our lives simple - let __fput() check FASYNC in\nfile-\u003ef_flags and call -\u003efasync() there if it\u0027s been set.  And lose that\ncrap in -\u003erelease() instances - leaving it there is still valid, but we\ndon\u0027t have to bother anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e174961ca1a0b28f7abf0be47973ad57cb74e5f0",
      "tree": "e8f74ecd420a0e380a71670e5aec5c2a0c15640a",
      "parents": [
        "0c68ae2605dbcf67414d8d1f19af93be44b355fb"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Oct 27 15:59:26 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 27 17:06:18 2008 -0700"
      },
      "message": "net: convert print_mac to %pM\n\nThis converts pretty much everything to print_mac. There were\na few things that had conflicts which I have just dropped for\nnow, no harm done.\n\nI\u0027ve built an allyesconfig with this and looked at the files\nthat weren\u0027t built very carefully, but it\u0027s a huge patch.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f42157cb568c1eb02eca7df4da67553a9edae24a",
      "tree": "f8c104a73ae5558e104a07e254a9eafd7839269d",
      "parents": [
        "db543c1f973cd1d557cc32ceee76737c1e4d2898"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Aug 15 15:15:10 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 15 19:52:31 2008 -0700"
      },
      "message": "tun: fallback if skb_alloc() fails on big packets\n\nskb_alloc produces linear packets (using kmalloc()).  That can fail,\nso should we fall back to making paged skbs.\n\nMy original version of this patch always allocate paged skbs for big\npackets.  But that made performance drop from 8.4 seconds to 8.8\nseconds on 1G lguest-\u003eHost TCP xmit.  So now we only do that as a\nfallback.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e3b99556975907530aeb9745e7b3945a0da48f17",
      "tree": "97f764e5c8587efcba64ad8d0edce9fee094e143",
      "parents": [
        "04a0551c87363f100b04d28d7a15a632b70e18e7"
      ],
      "author": {
        "name": "Mark McLoughlin",
        "email": "markmc@redhat.com",
        "time": "Fri Aug 15 15:09:56 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 15 19:52:19 2008 -0700"
      },
      "message": "tun: TUNGETIFF interface to query name and flags\n\nAdd a TUNGETIFF interface so that userspace can query a\ntun/tap descriptor for its name and flags.\n\nThis is needed because it is common for one app to create\na tap interface, exec another app and pass it the file\ndescriptor for the interface. Without TUNGETIFF the spawned\napp has no way of detecting wheter the interface has e.g.\nIFF_VNET_HDR set.\n\nSigned-off-by: Mark McLoughlin \u003cmarkmc@redhat.com\u003e\nAcked-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c0e5a8c21bb9bb222917c36eba503ae88af52c34",
      "tree": "9bcbd5d424b18a8f1984963b9c570fbb1960615b",
      "parents": [
        "25ac3c24839002298e9329a5fda305e5383b1dc7"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Jul 16 12:45:34 2008 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Jul 22 17:54:17 2008 -0400"
      },
      "message": "net: tun.c fix cast\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "49997d75152b3d23c53b0fa730599f2f74c92c65",
      "tree": "46e93126170d02cfec9505172e545732c1b69656",
      "parents": [
        "a0c80b80e0fb48129e4e9d6a9ede914f9ff1850d",
        "5b664cb235e97afbf34db9c4d77f08ebd725335e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 02:39:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 02:39:39 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tDocumentation/powerpc/booting-without-of.txt\n\tdrivers/atm/Makefile\n\tdrivers/net/fs_enet/fs_enet-main.c\n\tdrivers/pci/pci-acpi.c\n\tnet/8021q/vlan.c\n\tnet/iucv/iucv.c\n"
    },
    {
      "commit": "f271b2cc78f09c93ccd00a2056d3237134bf994c",
      "tree": "25b379fa23a84627992c197d2e18793fd90c2a7e",
      "parents": [
        "89146504cbfeb120dd08ec7f9f8314c4986189b8"
      ],
      "author": {
        "name": "Max Krasnyansky",
        "email": "maxk@qualcomm.com",
        "time": "Mon Jul 14 22:18:19 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 22:18:19 2008 -0700"
      },
      "message": "tun: Fix/rewrite packet filtering logic\n\nPlease see the following thread to get some context on this\n\thttp://marc.info/?l\u003dlinux-netdev\u0026m\u003d121564433018903\u0026w\u003d2\n\nBasically the issue is that current multi-cast filtering stuff in\nthe TUN/TAP driver is seriously broken.\nOriginal patch went in without proper review and ACK. It was broken and\nconfusing to start with and subsequent patches broke it completely.\nTo give you an idea of what\u0027s broken here are some of the issues:\n\n- Very confusing comments throughout the code that imply that the\ncharacter device is a network interface in its own right, and that packets\nare passed between the two nics. Which is completely wrong.\n\n- Wrong set of ioctls is used for setting up filters. They look like\nshortcuts for manipulating state of the tun/tap network interface but\nin reality manipulate the state of the TX filter.\n\n- ioctls that were originally used for setting address of the the TX filter\ngot \"fixed\" and now set the address of the network interface itself. Which\nmade filter totaly useless.\n\n- Filtering is done too late. Instead of filtering early on, to avoid\nunnecessary wakeups, filtering is done in the read() call.\n\nThe list goes on and on :)\n\nSo the patch cleans all that up. It introduces simple and clean interface for\nsetting up TX filters (TUNSETTXFILTER + tun_filter spec) and does filtering\nbefore enqueuing the packets.\n\nTX filtering is useful in the scenarios where TAP is part of a bridge, in\nwhich case it gets all broadcast, multicast and potentially other packets when\nthe bridge is learning. So for example Ethernet tunnelling app may want to\nsetup TX filters to avoid tunnelling multicast traffic. QEMU and other\nhypervisors can push RX filtering that is currently done in the guest into the\nhost context therefore saving wakeups and unnecessary data transfer.\n\nSigned-off-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2aec609fb45e84d65bc8eabc7b650bbecb1cc179",
      "tree": "eb3e8a79604113392d0ee74b19dbc1dfce579c11",
      "parents": [
        "4c8894980010536915c4f5513ee180e3614aeca9",
        "9076689ab07974a6f5d230fc241448f7a77e9078"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 20:23:54 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 14 20:23:54 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tnet/netfilter/nf_conntrack_proto_tcp.c\n"
    },
    {
      "commit": "2fceef397f9880b212a74c418290ce69e7ac00eb",
      "tree": "d9cc09ab992825ef7fede4a688103503e3caf655",
      "parents": [
        "feae1ef116ed381625d3731c5ae4f4ebcb3fa302",
        "bce7f793daec3e65ec5c5705d2457b81fe7b5725"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Jul 14 15:29:34 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Jul 14 15:29:34 2008 -0600"
      },
      "message": "Merge commit \u0027v2.6.26\u0027 into bkl-removal\n"
    },
    {
      "commit": "e35259a95331ae4a9146cc03ab49aad641cab957",
      "tree": "703ee0018e29c07215e2bb3f3bc0b9040d2ce6fe",
      "parents": [
        "ccf9b3b83d0e56fbf20c00a08b15031ce13204a7"
      ],
      "author": {
        "name": "Max Krasnyansky",
        "email": "maxk@qualcomm.com",
        "time": "Thu Jul 10 16:59:11 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 10 16:59:11 2008 -0700"
      },
      "message": "tun: Persistent devices can get stuck in xoff state\n\nThe scenario goes like this. App stops reading from tun/tap.\nTX queue gets full and driver does netif_stop_queue().\nApp closes fd and TX queue gets flushed as part of the cleanup.\nNext time the app opens tun/tap and starts reading from it but\nthe xoff state is not cleared. We\u0027re stuck.\nNormally xoff state is cleared when netdev is brought up. But\nin the case of persistent devices this happens only during\ninitial setup.\n\nThe fix is trivial. If device is already up when an app opens\nit we clear xoff state and that gets things moving again.\n\nSigned-off-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nTested-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f43798c27684ab925adde7d8acc34c78c6e50df8",
      "tree": "21e952a07534dd382835246d02245d5e776c4d8b",
      "parents": [
        "5228ddc98fa49b3cedab4024e269d62410a0d806"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 03 03:48:02 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 03 03:48:02 2008 -0700"
      },
      "message": "tun: Allow GSO using virtio_net_hdr\n\nAdd a IFF_VNET_HDR flag.  This uses the same ABI as virtio_net\n(ie. prepending struct virtio_net_hdr to packets) to indicate GSO and\nchecksum information.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5228ddc98fa49b3cedab4024e269d62410a0d806",
      "tree": "0d3cceeac55ec09b0fa593666bc03373954b3d9a",
      "parents": [
        "07240fd0902c872f044f523893364a1a24c9f278"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 03 03:46:16 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 03 03:46:16 2008 -0700"
      },
      "message": "tun: TUNSETFEATURES to set gso features.\n\nethtool is useful for setting (some) device fields, but it\u0027s\nroot-only.  Finer feature control is available through a tun-specific\nioctl.\n\n(Includes Mark McLoughlin \u003cmarkmc@redhat.com\u003e\u0027s fix to hold rtnl sem).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "07240fd0902c872f044f523893364a1a24c9f278",
      "tree": "096286005c0b1a19c23011b3c7418710704b833e",
      "parents": [
        "44d28ab19c64d095314ac66f765d0c747519f4ed"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 03 03:45:32 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 03 03:45:32 2008 -0700"
      },
      "message": "tun: Interface to query tun/tap features.\n\nThe problem with introducing checksum offload and gso to tun is they\nneed to set dev-\u003efeatures to enable GSO and/or checksumming, which is\nsupposed to be done before register_netdevice(), ie. as part of\nTUNSETIFF.\n\nUnfortunately, TUNSETIFF has always just ignored flags it doesn\u0027t\nunderstand, so there\u0027s no good way of detecting whether the kernel\nsupports new IFF_ flags.\n\nThis patch implements a TUNGETFEATURES ioctl which returns all the valid IFF\nflags.  It could be extended later to include other features.\n\nHere\u0027s an example program which uses it:\n\n#include \u003clinux/if_tun.h\u003e\n#include \u003csys/types.h\u003e\n#include \u003csys/ioctl.h\u003e\n#include \u003csys/stat.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cerr.h\u003e\n#include \u003cstdio.h\u003e\n\nstatic struct {\n\tunsigned int flag;\n\tconst char *name;\n} known_flags[] \u003d {\n\t{ IFF_TUN, \"TUN\" },\n\t{ IFF_TAP, \"TAP\" },\n\t{ IFF_NO_PI, \"NO_PI\" },\n\t{ IFF_ONE_QUEUE, \"ONE_QUEUE\" },\n};\n\nint main()\n{\n\tunsigned int features, i;\n\n\tint netfd \u003d open(\"/dev/net/tun\", O_RDWR);\n\tif (netfd \u003c 0)\n\t\terr(1, \"Opening /dev/net/tun\");\n\n\tif (ioctl(netfd, TUNGETFEATURES, \u0026features) !\u003d 0) {\n\t\tprintf(\"Kernel does not support TUNGETFEATURES, guessing\\n\");\n\t\tfeatures \u003d (IFF_TUN|IFF_TAP|IFF_NO_PI|IFF_ONE_QUEUE);\n\t}\n\tprintf(\"Available features are: \");\n\tfor (i \u003d 0; i \u003c sizeof(known_flags)/sizeof(known_flags[0]); i++) {\n\t\tif (features \u0026 known_flags[i].flag) {\n\t\t\tfeatures \u0026\u003d ~known_flags[i].flag;\n\t\t\tprintf(\"%s \", known_flags[i].name);\n\t\t}\n\t}\n\tif (features)\n\t\tprintf(\"(UNKNOWN %#x)\", features);\n\tprintf(\"\\n\");\n\treturn 0;\n}\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d319522576ce0b2fd023a965445f9c3739ee6f1",
      "tree": "c4e2f1634d5f54a4ee3a77adf62cb2556169c239",
      "parents": [
        "743115ee05f09f356d86763316acf627a7f5a6b3"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Thu Jun 19 15:50:37 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Wed Jul 02 15:06:27 2008 -0600"
      },
      "message": "tun: fasync BKL pushdown\n\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "fd3e05b6c82ebee06f888482975172028e89382d",
      "tree": "e76544e8cf04a629271c04074458ae9b04e86ca4",
      "parents": [
        "db41bc9c4dfeed656dfd63d26883f81abc4005df"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue May 20 19:16:24 2008 +0200"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Wed Jul 02 15:06:23 2008 -0600"
      },
      "message": "net-tun: BKL pushdown\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "f09f7ee20c867818bacf79426cf491b2749e7eff",
      "tree": "c570f7385827241c45dae25611759b0909ede9ce",
      "parents": [
        "fe833fca2eac6b3d3ad5e35f44ad4638362f1da8"
      ],
      "author": {
        "name": "Ang Way Chuang",
        "email": "wcang@nav6.org",
        "time": "Tue Jun 17 21:10:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 17 21:10:33 2008 -0700"
      },
      "message": "tun: Proper handling of IPv6 header in tun driver when TUN_NO_PI is set\n\nBy default, tun.c running in TUN_TUN_DEV mode will set the protocol of\npacket to IPv4 if TUN_NO_PI is set. My program failed to work when I\nassumed that the driver will check the first nibble of packet,\ndetermine IP version and set the appropriate protocol.\n\nSigned-off-by: Ang Way Chuang \u003cwcang@nav6.org\u003e\nAcked-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9edb74cc6ccb3a893c3d40727b7003c3c16f85a0",
      "tree": "8f45047eb778c13150809df837c1a1327a3f6c05",
      "parents": [
        "5e659e4cb0eedacdc1f621a61e400a4611ddef8a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 24 03:44:43 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 24 03:44:43 2008 -0700"
      },
      "message": "tun: Multicast handling in tun_chr_ioctl() needs proper locking.\n\nSince these operations don\u0027t go through the normal\ndevice calls, we have to ensure we synchronize with\nthose paths.\n\nNoticed by Alan Cox.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "48abfe05cd01279afe27159e98d7c7f932598f42",
      "tree": "b2a408b97806ee86003a804734972523453b8164",
      "parents": [
        "8c0469cdd08df4dacabc8ca33256ce20de43d73f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 23 19:37:58 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 23 19:37:58 2008 -0700"
      },
      "message": "tun: Fix minor race in TUNSETLINK ioctl handling.\n\nNoticed by Alan Cox.\n\nThe IFF_UP test is a bit racey, because other entities\noutside of this driver\u0027s ioctl handler can modify that\nstate, even though this ioctl handler runs under\nlock_kernel().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc54c65853dbfd2f70ff827b73344f9de4e4b501",
      "tree": "eba647feaa75df68b852b2d5d948e5ee5f7dbddf",
      "parents": [
        "d647a591dae06ccc96210cea938aa0342ef935fc"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Apr 16 00:41:53 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 16 00:41:53 2008 -0700"
      },
      "message": "[TUN]: Allow to register tun devices in namespace.\n\nThis is basically means that a net is set for a new device, but\nactually also involves two more steps:\n\n1. mark the tun device as \"local\", i.e. do not allow for it to\n   move across namespaces.\n\nThis is done so, since tun device is most often associated to some\nfile (and thus to some process) and moving the device alone is not\nvalid while keeping the file and the process outside. The need in \nability to move a detached persistent device is to be investigated \nlater.\n\n2. get the tun device\u0027s net when tun becomes attached and put one\n   when it becomes detached.\n\nThis is needed to handle the case when a task owning the tun dies,\nbut a files lives for some more time - in this case we must not\nallow for net to be freed, since its exit hook will spoil that file\u0027s\nprivate data by unregistering the tun from under tun_chr_close.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d647a591dae06ccc96210cea938aa0342ef935fc",
      "tree": "26bcb08b810e411b73a5f63bf486f1651c27cd2e",
      "parents": [
        "79d1760491a25bfc70aeac363142cadd3f1cda71"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Apr 16 00:41:16 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 16 00:41:16 2008 -0700"
      },
      "message": "[TUN]: Make the tun_dev_list per-net.\n\nRemove the static tun_dev_list and replace its occurrences in\ndriver with per-net one.\n\nIt is used in two places - in tun_set_iff and tun_cleanup. In \nthe first case it\u0027s legal to use current net_ns. In the cleanup\ncall - move the loop, that unregisters all devices in net exit\nhook.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "79d1760491a25bfc70aeac363142cadd3f1cda71",
      "tree": "8c5a2d8f2d1b0f09097013abad7b8c2dc2852494",
      "parents": [
        "17515408a15fa51c553e67c415502e785145cd7f"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Apr 16 00:40:46 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 16 00:40:46 2008 -0700"
      },
      "message": "[TUN]: Introduce the tun_net structure and init/exit net ops.\n\nThis is the first step in making tuntap devices work in net \nnamespaces. The structure mentioned is pointed by generic\nnet pointer with tun_net_id id, and tun driver fills one on \nits load. It will contain only the tun devices list.\n\nSo declare this structure and introduce net init and exit hooks.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e01bf1c83332c4653ffd30eed20a94a9c83d82b2",
      "tree": "bb39605cba8ced4b5cc3f0aca63b345ec02e29a9",
      "parents": [
        "14daa02139dcb3193b2b0250c0720a23ef610c49"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Apr 12 18:49:30 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 12 18:49:30 2008 -0700"
      },
      "message": "net: check for underlength tap writes\n\nIf the user gives a packet under 14 bytes, we\u0027ll end up reading off the end\nof the skb (not oopsing, just reading off the end).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Max Krasnyanskiy \u003cmaxk@qualcomm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "14daa02139dcb3193b2b0250c0720a23ef610c49",
      "tree": "cc83e98b48f62363f2295c39d03b8a40a180924a",
      "parents": [
        "a40a7d15ba602b547f56b7b19e0282fe4fc3dee3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Apr 12 18:48:58 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 12 18:48:58 2008 -0700"
      },
      "message": "net: make struct tun_struct private to tun.c\n\nThere\u0027s no reason for this to be in the header, and it just hurts\nrecompile time.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Max Krasnyanskiy \u003cmaxk@qualcomm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "401023710d73aaef1191ab4d6a79d39c51add828",
      "tree": "a19260d86b6fa1cdb27a368a3d77335cdfb27dbf",
      "parents": [
        "459eea74104ad85c30e17541c2b30d776445e985"
      ],
      "author": {
        "name": "Kim B. Heino",
        "email": "Kim.Heino@bluegiga.com",
        "time": "Fri Feb 29 12:26:21 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 29 12:26:21 2008 -0800"
      },
      "message": "[TUN]: Fix RTNL-locking in tun/tap driver\n\nCurrent tun/tap driver sets also net device\u0027s hw address when asked to\nchange character device\u0027s hw address. This is a good idea, but it\nmisses RTLN-locking, resulting following error message in 2.6.25-rc3\u0027s\ninetdev_event() function:\n\nRTNL: assertion failed at net/ipv4/devinet.c (1050)\n\nAttached patch fixes this problem.\n\nSigned-off-by: Kim B. Heino \u003cKim.Heino@bluegiga.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a26af1e08a3a1e0f88e6f2685ac2313d713a59c9",
      "tree": "c4b9cdf04305c094e88e2446ec25f7823d38158e",
      "parents": [
        "cd8d627a6b66d9755637b4dad2083864a9bfce9a"
      ],
      "author": {
        "name": "Nathaniel Filardo",
        "email": "nwfilardo@gmail.com",
        "time": "Tue Feb 05 03:05:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 05 03:05:07 2008 -0800"
      },
      "message": "tun: impossible to deassert IFF_ONE_QUEUE or IFF_NO_PI\n\nFrom: \"Nathaniel Filardo\" \u003cnwfilardo@gmail.com\u003e\n\nTaken from http://bugzilla.kernel.org/show_bug.cgi?id\u003d9806\n\nThe TUN/TAP driver only permits one-way transitions of IFF_NO_PI or\nIFF_ONE_QUEUE during the lifetime of a tap/tun interface.  Note that\ntun_set_iff contains\n\n 541         if (ifr-\u003eifr_flags \u0026 IFF_NO_PI)\n 542                 tun-\u003eflags |\u003d TUN_NO_PI;\n 543 \n 544         if (ifr-\u003eifr_flags \u0026 IFF_ONE_QUEUE)\n 545                 tun-\u003eflags |\u003d TUN_ONE_QUEUE;\n\nThis is easily fixed by adding else branches which clear these bits.\n\nSteps to reproduce:\n\nThis is easily reproduced by setting an interface persistant using tunctl then\nattempting to open it as IFF_TAP or IFF_TUN, without asserting the IFF_NO_PI\nflag.  The ioctl() will succeed and the ifr.flags word is not modified, but the\ninterface remains in IFF_NO_PI mode (as it was set by tunctl).\n\nAcked-by: Maxim Krasnyansky \u003cmaxk@qualcomm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a3edb08311fc559652ffc959e93eb5be9294443f",
      "tree": "5e3795acaf64e34703c006a548f013ff0401e97a",
      "parents": [
        "7eefb04eb0761ce220890975fe33b7c262612c0d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Dec 22 17:52:42 2007 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:07:57 2008 -0800"
      },
      "message": "annotate tun\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "52427c9d11477d5a2633d81050f52523decf9eff",
      "tree": "e4107505fb7f7041344e0ec77a9ac714383f9b4a",
      "parents": [
        "02d45827fa211093202f96bdd58020cc8687929f"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Nov 19 22:46:51 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:34 2008 -0800"
      },
      "message": "[TUN]: Use iov_length()\n\nUse iov_length() instead of tun\u0027s homemade iov_total().\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c6e991de4bd22dcdf9b9d9035e18b63b0bf2d198",
      "tree": "67589b3e54d7f17e2e23062c3369a0f5f1e1483a",
      "parents": [
        "fae718ddaf2b00e222dddec6717aca023376723c"
      ],
      "author": {
        "name": "Toyo Abe",
        "email": "tabe@miraclelinux.com",
        "time": "Mon Dec 24 21:29:35 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 26 19:36:34 2007 -0800"
      },
      "message": "[TUNTAP]: Fix wrong debug message.\n\nThis is a trivial fix of debug message.\nWhen a persist flag is set, the message should say \"enabled\".\n\nSigned-off-by: Toyo Abe \u003ctabe@miraclelinux.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0795af5729b18218767fab27c44b1384f72dc9ad",
      "tree": "67c16df84aa6ec219340b8ea1b5cfb0e8150a216",
      "parents": [
        "95ea36275f3c9a1d3d04c217b4b576c657c4e70e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Oct 03 17:59:30 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:51:42 2007 -0700"
      },
      "message": "[NET]: Introduce and use print_mac() and DECLARE_MAC_BUF()\n\nThis is nicer than the MAC_FMT stuff.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4885a50476b95fa0f4caad179a80783508c2fe86",
      "tree": "55a5b007e593e8ee810e142517854a42b23af6fe",
      "parents": [
        "0b69d4bd263c75b3e2ec94f1c72f338b84be817e"
      ],
      "author": {
        "name": "Ed Swierk",
        "email": "eswierk@arastra.com",
        "time": "Sun Sep 16 12:21:38 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:51:19 2007 -0700"
      },
      "message": "[TAP]: Configurable interface MTU.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "09f75cd7bf13720738e6a196cc0107ce9a5bd5a0",
      "tree": "4c85b0b395abe7f88c87162fc22570e5de255cb1",
      "parents": [
        "ff8ac60948ba819b89e9c87083e8050fc2f89999"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Oct 03 17:41:50 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:51:16 2007 -0700"
      },
      "message": "[NET] drivers/net: statistics cleanup #1 -- save memory and shrink code\n\nWe now have struct net_device_stats embedded in struct net_device,\nand the default -\u003eget_stats() hook does the obvious thing for us.\n\nRun through drivers/net/* and remove the driver-local storage of\nstatistics, and driver-local -\u003eget_stats() hook where applicable.\n\nThis was just the low-hanging fruit in drivers/net; plenty more drivers\nremain to be updated.\n\n[ Resolved conflicts with napi_struct changes and fix sunqe build\n  regression... -DaveM ]\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "10d024c1b2fd58af8362670d7d6e5ae52fc33353",
      "tree": "dbfb03c539986e2c1270385eb0083aaf0dfca8ab",
      "parents": [
        "596c5c97431eab8465739c169401ea611127b9ad"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Sep 17 13:11:17 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:51:13 2007 -0700"
      },
      "message": "[NET]: Nuke SET_MODULE_OWNER macro.\n\nIt\u0027s been a useless no-op for long enough in 2.6 so I figured it\u0027s time to\nremove it.  The number of people that could object because they\u0027re\nmaintaining unified 2.4 and 2.6 drivers is probably rather small.\n\n[ Handled drivers added by netdev tree and some missed IRDA cases... -DaveM ]\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "881d966b48b035ab3f3aeaae0f3d3f9b584f45b2",
      "tree": "c579d59a4107cbbe9e2b85939bc0d496b815c887",
      "parents": [
        "b4b510290b056b86611757ce1175a230f1080f53"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Sep 17 11:56:21 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:10 2007 -0700"
      },
      "message": "[NET]: Make the device list and device lookups per namespace.\n\nThis patch makes most of the generic device layer network\nnamespace safe.  This patch makes dev_base_head a\nnetwork namespace variable, and then it picks up\na few associated variables.  The functions:\ndev_getbyhwaddr\ndev_getfirsthwbytype\ndev_get_by_flags\ndev_get_by_name\n__dev_get_by_name\ndev_get_by_index\n__dev_get_by_index\ndev_ioctl\ndev_ethtool\ndev_load\nwireless_process_ioctl\n\nwere modified to take a network namespace argument, and\ndeal with it.\n\nvlan_ioctl_set and brioctl_set were modified so their\nhooks will receive a network namespace argument.\n\nSo basically anthing in the core of the network stack that was\naffected to by the change of dev_base was modified to handle\nmultiple network namespaces.  The rest of the network stack was\nsimply modified to explicitly use \u0026init_net the initial network\nnamespace.  This can be fixed when those components of the network\nstack are modified to handle multiple network namespaces.\n\nFor now the ifindex generator is left global.\n\nFundametally ifindex numbers are per namespace, or else\nwe will have corner case problems with migration when\nwe get that far.\n\nAt the same time there are assumptions in the network stack\nthat the ifindex of a network device won\u0027t change.  Making\nthe ifindex number global seems a good compromise until\nthe network stack can cope with ifindex changes when\nyou change namespaces, and the like.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "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": "36226a8ded46b89a94f9de5976f554bb5e02d84c",
      "tree": "44fcfa54c6300dc2a843537cafb4a6f0d7075566",
      "parents": [
        "48491e6bdb8fa73751cc95f740175ec799db5d55"
      ],
      "author": {
        "name": "Brian Braunstein",
        "email": "linuxkernel@bristyle.com",
        "time": "Thu Apr 26 01:00:55 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 26 01:00:55 2007 -0700"
      },
      "message": "[NET] tun/tap: fixed hw address handling\n\nFixed tun/tap driver\u0027s handling of hw addresses.  The hw address is stored\nin both the net_device.dev_addr and tun.dev_addr fields.  These fields were\nnot kept synchronized, and in fact weren\u0027t even initialized to the same\nvalue.  Now during both init and when performing SIOCSIFHWADDR on the tun\ndevice these values are both updated.  However, if SIOCSIFHWADDR is\nperformed on the net device directly (for instance, setting the hw address\nusing ifconfig), the tun device does not get updated.  Perhaps the\ntun.dev_addr field should be removed completely at some point, as it is\nredundant and net_device.dev_addr can be used anywhere it is used.\n\nSigned-off-by: Brian Braunstein \u003clinuxkernel@bristyle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d626f62b11e00c16e81e4308ab93d3f13551812a",
      "tree": "fac4af6ced853755e12fc709d55f0c2bec51265d",
      "parents": [
        "2a123b86e2b242a4a6db990d2851d45e192f88e5"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Mar 27 18:55:52 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:23 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_copy_from_linear_data{_offset}\n\nTo clearly state the intent of copying from linear sk_buffs, _offset being a\noverly long variant but interesting for the sake of saving some bytes.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "459a98ed881802dee55897441bc7f77af614368e",
      "tree": "b81f76632d8f2e21eb91ec3d885091a98398d93e",
      "parents": [
        "4c13eb6657fe9ef7b4dc8f1a405c902e9e5234e0"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 19 15:30:44 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:32 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_reset_mac_header(skb)\n\nFor the common, open coded \u0027skb-\u003emac.raw \u003d skb-\u003edata\u0027 operation, so that we can\nlater turn skb-\u003emac.raw into a offset, reducing the size of struct sk_buff in\n64bit land while possibly keeping it as a pointer on 32bit.\n\nThis one touches just the most simple case, next will handle the slightly more\n\"complex\" cases.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4c13eb6657fe9ef7b4dc8f1a405c902e9e5234e0",
      "tree": "d338fad7a61824d8c14c079c0be437ea4ad83f01",
      "parents": [
        "029720f15dcd3c6c16824177cfc486083b229411"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 17:40:23 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:30 2007 -0700"
      },
      "message": "[ETH]: Make eth_type_trans set skb-\u003edev like the other *_type_trans\n\nOne less thing for drivers writers to worry about.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d54b1fdb1d9f82e375a299e22bd366aad52d4c34",
      "tree": "f94768d59702dbbc0beb9a70d9be65dbc5e5108d",
      "parents": [
        "fa027c2a0a0d6d1df6b29ee99048502c93da0dd4"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:34 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:45 2007 -0800"
      },
      "message": "[PATCH] mark struct file_operations const 5\n\nMany struct file_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "609d7fa9565c754428d2520cac2accc9052e1245",
      "tree": "1c5114ec3720166fe99ce3885e8767929a8a84e0",
      "parents": [
        "bde0d2c98bcfc9acc83ac79c33a6ac1335b95a92"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:17:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:14 2006 -0700"
      },
      "message": "[PATCH] file: modify struct fown_struct to use a struct pid\n\nFile handles can be requested to send sigio and sigurg to processes.  By\ntracking the destination processes using struct pid instead of pid_t we make\nthe interface safe from all potential pid wrap around problems.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ee0b3e671baff681d69fbf0db33b47603c0a8280",
      "tree": "3202ff815b2196c6c353bc5b28d7a2800df273ec",
      "parents": [
        "027445c37282bc1ed26add45e573ad2d3e4860a5"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sat Sep 30 23:28:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:28 2006 -0700"
      },
      "message": "[PATCH] Remove readv/writev methods and use aio_read/aio_write instead\n\nThis patch removes readv() and writev() methods and replaces them with\naio_read()/aio_write() methods.\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7282d491ecaee9883233a0e27283c4c79486279a",
      "tree": "172ffa70716f5493db57976ceef7652120b3332f",
      "parents": [
        "76fd85937097a0c2ec8ab23bf21dc10992d1c398"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 13 14:30:00 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 13 14:30:00 2006 -0400"
      },
      "message": "drivers/net: const-ify ethtool_ops declarations\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6aa20a2235535605db6d6d2bd850298b2fe7f31e",
      "tree": "df0b855043407b831d57f2f2c271f8aab48444f4",
      "parents": [
        "7a291083225af6e22ffaa46b3d91cfc1a1ccaab4"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 13 13:24:59 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 13 13:24:59 2006 -0400"
      },
      "message": "drivers/net: Trim trailing whitespace\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "96192ff1a9d0c6ef365d21667080259d83ea2f5b",
      "tree": "b13caa3bedb3cde8bd1beecfc3c76bac894df42a",
      "parents": [
        "ff23eca3e8f613034e0d20ff86f6a89b62f5a14e"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 21:15:16 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 26 12:25:08 2006 -0700"
      },
      "message": "[PATCH] devfs: Remove the miscdevice devfs_name field as it\u0027s no longer needed\n\nAlso fixes all drivers that set this field.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "ca6bb5d7ab22ac79f608fe6cbc6b12de6a5a19f0",
      "tree": "7255df98fa5692c498605d2bd80402ec866f134a",
      "parents": [
        "f4b8ea7849544114e9d3d682df4d400180854677"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Thu Jun 22 16:07:52 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jun 23 02:07:44 2006 -0700"
      },
      "message": "[NET]: Require CAP_NET_ADMIN to create tuntap devices.\n\nThe tuntap driver allows an admin to create persistent devices and\nassign ownership of them to individual users. Unfortunately, relaxing\nthe permissions on the /dev/net/tun device node so that they can\nactually use those devices will _also_ allow those users to create\narbitrary new devices of their own. This patch corrects that, and\nadjusts the recommended permissions for the device node accordingly.\n\nSigned-off-By: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8f22757ee84da64d4f662f1dd03dae95358a1efe",
      "tree": "ebbf96d3c733c5cad9ab002740f1d4b829e07a4e",
      "parents": [
        "535744878e34d01a53f946f26dfbca37186f2cf8"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sat Mar 11 18:49:13 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 11 18:49:13 2006 -0800"
      },
      "message": "[TUN]: Fix leak in tun_get_user()\n\nWe\u0027re leaking an skb in a failure path in this function.\n\nCoverity #632\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ff4cc3ac93e1d0369928fd60ec1fe82417afc576",
      "tree": "c8f9380cfaedfd9f63f8e2eb0fff2d660aa81bab",
      "parents": [
        "80ac2912f846c01d702774bb6aa7100ec71e88b9"
      ],
      "author": {
        "name": "Mike Kershaw",
        "email": "dragorn@kismetwireless.net",
        "time": "Thu Sep 01 17:40:05 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 01 17:40:05 2005 -0700"
      },
      "message": "[TUNTAP]: Allow setting the linktype of the tap device from userspace\n\nCurrently tun/tap only supports the EN10MB ARP type.  For use with\nwireless and other networking types it should be possible to set the\nARP type via an ioctl.\n\nPatch v2: Included check that the tap interface is down before changing the\nlink type out from underneath it\n\nSigned-off-by: Mike Kershaw \u003cdragorn@kismetwireless.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b03efcfb2180289718991bb984044ce6c5b7d1b0",
      "tree": "f3b0c6c4eaf0991c28b7116a20994b48398eea57",
      "parents": [
        "a92b7b80579fe68fe229892815c750f6652eb6a9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 08 14:57:23 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 08 14:57:23 2005 -0700"
      },
      "message": "[NET]: Transform skb_queue_len() binary tests into skb_queue_empty()\n\nThis is part of the grand scheme to eliminate the qlen\nmember of skb_queue_head, and subsequently remove the\n\u0027list\u0027 member of sk_buff.\n\nMost users of skb_queue_len() want to know if the queue is\nempty or not, and that\u0027s trivially done with skb_queue_empty()\nwhich doesn\u0027t use the skb_queue_head-\u003eqlen member and instead\nuses the queue list emptyness as the test.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
