)]}'
{
  "log": [
    {
      "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"
    }
  ]
}
