)]}'
{
  "log": [
    {
      "commit": "b1cdc4670b9508fcd47a15fbd12f70d269880b37",
      "tree": "fea9e2650170886d539488f8b1e064f6ca60ad36",
      "parents": [
        "ce7d0226198aac42ed311dd2783232adc16b296d",
        "f925b1303e0672effc78547353bd2ddfe11f5b5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 16:59:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 16:59:51 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (63 commits)\n  drivers/net/usb/asix.c: Fix pointer cast.\n  be2net: Bug fix to avoid disabling bottom half during firmware upgrade.\n  proc_dointvec: write a single value\n  hso: add support for new products\n  Phonet: fix potential use-after-free in pep_sock_close()\n  ath9k: remove VEOL support for ad-hoc\n  ath9k: change beacon allocation to prefer the first beacon slot\n  sock.h: fix kernel-doc warning\n  cls_cgroup: Fix build error when built-in\n  macvlan: do proper cleanup in macvlan_common_newlink() V2\n  be2net: Bug fix in init code in probe\n  net/dccp: expansion of error code size\n  ath9k: Fix rx of mcast/bcast frames in PS mode with auto sleep\n  wireless: fix sta_info.h kernel-doc warnings\n  wireless: fix mac80211.h kernel-doc warnings\n  iwlwifi: testing the wrong variable in iwl_add_bssid_station()\n  ath9k_htc: rare leak in ath9k_hif_usb_alloc_tx_urbs()\n  ath9k_htc: dereferencing before check in hif_usb_tx_cb()\n  rt2x00: Fix rt2800usb TX descriptor writing.\n  rt2x00: Fix failed SLEEP-\u003eAWAKE and AWAKE-\u003eSLEEP transitions.\n  ...\n"
    },
    {
      "commit": "578454ff7eab61d13a26b568f99a89a2c9edc881",
      "tree": "6abdaf9acdd797767c92cb53e04574d3c755779e",
      "parents": [
        "ec96e2fe954c23a54bfdf2673437a39e193a1822"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu May 20 18:07:20 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue May 25 15:08:26 2010 -0700"
      },
      "message": "driver core: add devname module aliases to allow module on-demand auto-loading\n\nThis adds:\n  alias: devname:\u003cname\u003e\nto some common kernel modules, which will allow the on-demand loading\nof the kernel module when the device node is accessed.\n\nIdeally all these modules would be compiled-in, but distros seems too\nmuch in love with their modularization that we need to cover the common\ncases with this new facility. It will allow us to remove a bunch of pretty\nuseless init scripts and modprobes from init scripts.\n\nThe static device node aliases will be carried in the module itself. The\nprogram depmod will extract this information to a file in the module directory:\n  $ cat /lib/modules/2.6.34-00650-g537b60d-dirty/modules.devname\n  # Device nodes to trigger on-demand module loading.\n  microcode cpu/microcode c10:184\n  fuse fuse c10:229\n  ppp_generic ppp c108:0\n  tun net/tun c10:200\n  dm_mod mapper/control c10:235\n\nUdev will pick up the depmod created file on startup and create all the\nstatic device nodes which the kernel modules specify, so that these modules\nget automatically loaded when the device node is accessed:\n  $ /sbin/udevd --debug\n  ...\n  static_dev_create_from_modules: mknod \u0027/dev/cpu/microcode\u0027 c10:184\n  static_dev_create_from_modules: mknod \u0027/dev/fuse\u0027 c10:229\n  static_dev_create_from_modules: mknod \u0027/dev/ppp\u0027 c108:0\n  static_dev_create_from_modules: mknod \u0027/dev/net/tun\u0027 c10:200\n  static_dev_create_from_modules: mknod \u0027/dev/mapper/control\u0027 c10:235\n  udev_rules_apply_static_dev_perms: chmod \u0027/dev/net/tun\u0027 0666\n  udev_rules_apply_static_dev_perms: chmod \u0027/dev/fuse\u0027 0666\n\nA few device nodes are switched to statically allocated numbers, to allow\nthe static nodes to work. This might also useful for systems which still run\na plain static /dev, which is completely unsafe to use with any dynamic minor\nnumbers.\n\nNote:\nThe devname aliases must be limited to the *common* and *single*instance*\ndevice nodes, like the misc devices, and never be used for conceptually limited\nsystems like the loop devices, which should rather get fixed properly and get a\ncontrol node for losetup to talk to, instead of creating a random number of\ndevice nodes in advance, regardless if they are ever used.\n\nThis facility is to hide the mess distros are creating with too modualized\nkernels, and just to hide that these modules are not compiled-in, and not to\npaper-over broken concepts. Thanks! :)\n\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Tigran Aivazian \u003ctigran@aivazian.fsnet.co.uk\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nSigned-Off-By: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "8286274284e15b11b0f531b6ceeef21fbe00a8dd",
      "tree": "1e63dabdbc60f3409710cf58ed351e2a1f262941",
      "parents": [
        "f845172531fb7410c7fb7780b1a6e51ee6df7d52"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon May 24 00:14:10 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 24 00:14:10 2010 -0700"
      },
      "message": "tun: Update classid on packet injection\n\nThis patch makes tun update its socket classid every time we\ninject a packet into the network stack.  This is so that any\nupdates made by the admin to the process writing packets to\ntun is effected.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee289b6440c3b0ccb9459495783e8c299bec6604",
      "tree": "6c3eeae205789e50657fd93853d7f3ce5802810c",
      "parents": [
        "5113fec0984276836cb6f0677f7cb53586ec3451"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon May 17 22:47:34 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 17 22:47:34 2010 -0700"
      },
      "message": "drivers/net: remove useless semicolons\n\nswitch and while statements don\u0027t need semicolons at end of statement\n\n[ Fixup minor conflicts with recent wimax merge... -DaveM ]\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a4b770972b8f819e408d7cc3ae9637e15bff62f6",
      "tree": "62e3c413b084c106d750cf6cc0701709cde30100",
      "parents": [
        "21ce849ba5cc178740c6532ba3dded852296ad91"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri May 14 00:19:28 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 14 00:19:28 2010 -0700"
      },
      "message": "drivers/net: Remove unnecessary returns from void function()s\n\nThis patch removes from drivers/net/ all the unnecessary\nreturn; statements that precede the last closing brace of\nvoid functions.\n\nIt does not remove the returns that are immediately\npreceded by a label as gcc doesn\u0027t like that.\n\nIt also does not remove null void functions with return.\n\nDone via:\n$ grep -rP --include\u003d*.[ch] -l \"return;\\n}\" net/ | \\\n  xargs perl -i -e \u0027local $/ ; while (\u003c\u003e) { s/\\n[ \\t\\n]+return;\\n}/\\n}/g; print; }\u0027\n\nwith some cleanups by hand.\n\nCompile tested x86 allmodconfig only.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ae5dc342ac78d7a42965fd1f323815f6f5ef2c1",
      "tree": "d1955a7639e99832590df26466a34d5786a880ae",
      "parents": [
        "2b0b05ddc04b6d45e71cd36405df512075786f1e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon May 10 05:01:31 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 10 05:01:31 2010 -0700"
      },
      "message": "net: trans_start cleanups\n\nNow that core network takes care of trans_start updates, dont do it\nin drivers themselves, if possible. Drivers can avoid one cache miss\n(on dev-\u003etrans_start) in their start_xmit() handler.\n\nExceptions are NETIF_F_LLTX drivers\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d9d52b5178af586d679c1052fb161ee05ea2e83f",
      "tree": "6148fda40e5aa28f3e8ceb438ffc51c5bb08dd86",
      "parents": [
        "7ef527377b88ff05fb122a47619ea506c631c914"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Wed Mar 17 17:45:01 2010 +0200"
      },
      "committer": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon May 03 12:33:13 2010 +0300"
      },
      "message": "tun: add ioctl to modify vnet header size\n\nvirtio added mergeable buffers mode where 2 bytes of extra info is put\nafter vnet header but before actual data (tun does not need this data).\nIn hindsight, it would have been better to add the new info *before* the\npacket: as it is, users need a lot of tricky code to skip the extra 2\nbytes in the middle of the iovec, and in fact applications seem to get\nit wrong, and only work with specific iovec layout.  The fact we might\nneed to split iovec also means we might in theory overflow iovec max\nsize.\n\nThis patch adds a simpler way for applications to handle this,\nand future proofs the interface against further extensions,\nby making the size of the virtio net header configurable\nfrom userspace. As a result, tun driver will simply\nskip the extra 2 bytes on both input and output.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "43815482370c510c569fd18edb57afcb0fa8cab6",
      "tree": "063efaae3758402b84f056438b704d1de68f7837",
      "parents": [
        "83d7eb2979cd3390c375470225dd2d8f2009bc70"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Apr 29 11:01:49 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 01 15:00:15 2010 -0700"
      },
      "message": "net: sock_def_readable() and friends RCU conversion\n\nsk_callback_lock rwlock actually protects sk-\u003esk_sleep pointer, so we\nneed two atomic operations (and associated dirtying) per incoming\npacket.\n\nRCU conversion is pretty much needed :\n\n1) Add a new structure, called \"struct socket_wq\" to hold all fields\nthat will need rcu_read_lock() protection (currently: a\nwait_queue_head_t and a struct fasync_struct pointer).\n\n[Future patch will add a list anchor for wakeup coalescing]\n\n2) Attach one of such structure to each \"struct socket\" created in\nsock_alloc_inode().\n\n3) Respect RCU grace period when freeing a \"struct socket_wq\"\n\n4) Change sk_sleep pointer in \"struct sock\" by sk_wq, pointer to \"struct\nsocket_wq\"\n\n5) Change sk_sleep() function to use new sk-\u003esk_wq instead of\nsk-\u003esk_sleep\n\n6) Change sk_has_sleeper() to wq_has_sleeper() that must be used inside\na rcu_read_lock() section.\n\n7) Change all sk_has_sleeper() callers to :\n  - Use rcu_read_lock() instead of read_lock(\u0026sk-\u003esk_callback_lock)\n  - Use wq_has_sleeper() to eventually wakeup tasks.\n  - Use rcu_read_unlock() instead of read_unlock(\u0026sk-\u003esk_callback_lock)\n\n8) sock_wake_async() is modified to use rcu protection as well.\n\n9) Exceptions :\n  macvtap, drivers/net/tun.c, af_unix use integrated \"struct socket_wq\"\ninstead of dynamically allocated ones. They dont need rcu freeing.\n\nSome cleanups or followups are probably needed, (possible\nsk_callback_lock conversion to a spinlock for example...).\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aa395145165cb06a0d0885221bbe0ce4a564391d",
      "tree": "118b0403621f10db8dc3dbf12079f9af5b19e05d",
      "parents": [
        "ab9304717f7624c41927f442e6b6d418b2d8b3e4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Apr 20 13:03:51 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 16:37:13 2010 -0700"
      },
      "message": "net: sk_sleep() helper\n\nDefine a new function to return the waitqueue of a \"struct sock\".\n\nstatic inline wait_queue_head_t *sk_sleep(struct sock *sk)\n{\n\treturn sk-\u003esk_sleep;\n}\n\nChange all read occurrences of sk_sleep by a call to this function.\n\nNeeded for a future RCU conversion. sk_sleep wont be a field directly\navailable.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0110d6f22f392f976e84ab49da1b42f85b64a3c5",
      "tree": "6894f343f66337babdb5615c5a384c49396ade20",
      "parents": [
        "5c659322a904a7cc0265e7b183372b9bdebec6db"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Tue Apr 13 04:59:44 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 14 04:52:03 2010 -0700"
      },
      "message": "tun: orphan an skb on tx\n\nThe following situation was observed in the field:\ntap1 sends packets, tap2 does not consume them, as a result\ntap1 can not be closed. This happens because\ntun/tap devices can hang on to skbs undefinitely.\n\nAs noted by Herbert, possible solutions include a timeout followed by a\ncopy/change of ownership of the skb, or always copying/changing\nownership if we\u0027re going into a hostile device.\n\nThis patch implements the second approach.\n\nNote: one issue still remaining is that since skbs\nkeep reference to tun socket and tun socket has a\nreference to tun device, we won\u0027t flush backlog,\ninstead simply waiting for all skbs to get transmitted.\nAt least this is not user-triggerable, and\nthis was not reported in practice, my assumption is\nother devices besides tap complete an skb\nwithin finite time after it has been queued.\n\nA possible solution for the second issue\nwould not to have socket reference the device,\ninstead, implement dev-\u003edestructor for tun, and\nwait for all skbs to complete there, but this\nneeds some thought, probably too risky for 2.6.34.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nTested-by: Yan Vugenfirer \u003cyvugenfi@redhat.com\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "318ae2edc3b29216abd8a2510f3f80b764f06858",
      "tree": "ce595adde342f57f379d277b25e4dd206988a052",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176",
        "3e58974027b04e84f68b964ef368a6cd758e2f84"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\tDocumentation/filesystems/proc.txt\n\tarch/arm/mach-u300/include/mach/debug-macro.S\n\tdrivers/net/qlge/qlge_ethtool.c\n\tdrivers/net/qlge/qlge_main.c\n\tdrivers/net/typhoon.c\n"
    },
    {
      "commit": "99405162598176e830d17ae6d4f3d9e070ad900c",
      "tree": "41a23acd64d3f18de729c2abadc98f7c4687aa45",
      "parents": [
        "5ff3f073670b544a9c0547cc6fef1f7eed5762ed"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Sun Feb 14 01:01:10 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 17 16:35:17 2010 -0800"
      },
      "message": "tun: socket filter support\n\nThis patch adds Linux Socket Filter support to\ntun driver.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3ad2f3fbb961429d2aa627465ae4829758bc7e07",
      "tree": "f365c513e8f5b477a61336a600ff54f32b7ad6e1",
      "parents": [
        "1537a3638cbf741d3826c1002026cce487a6bee0"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Wed Feb 03 08:01:28 2010 +0800"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 09 11:13:56 2010 +0100"
      },
      "message": "tree-wide: Assorted spelling fixes\n\nIn particular, several occurances of funny versions of \u0027success\u0027,\n\u0027unknown\u0027, \u0027therefore\u0027, \u0027acknowledge\u0027, \u0027argument\u0027, \u0027achieve\u0027, \u0027address\u0027,\n\u0027beginning\u0027, \u0027desirable\u0027, \u0027separate\u0027 and \u0027necessary\u0027 are fixed.\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Junio C Hamano \u003cgitster@pobox.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "05c2828c72c4eabf62376adfe27bd24797621f62",
      "tree": "4db94de98ef8e75d5038f6a889dd434f3747c9d3",
      "parents": [
        "ad72c347e56bf3a0231b9d686e17764157d2961c"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Jan 14 06:17:09 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jan 15 01:43:28 2010 -0800"
      },
      "message": "tun: export underlying socket\n\nTun device looks similar to a packet socket\nin that both pass complete frames from/to userspace.\n\nThis patch fills in enough fields in the socket underlying tun driver\nto support sendmsg/recvmsg operations, and message flags\nMSG_TRUNC and MSG_DONTWAIT, and exports access to this socket\nto modules.  Regular read/write behaviour is unchanged.\n\nThis way, code using raw sockets to inject packets\ninto a physical device, can support injecting\npackets into host network stack almost without modification.\n\nFirst user of this interface will be vhost virtualization\naccelerator.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "80924e5f7dbe00d964b7249160c7ca25fa3cd889",
      "tree": "8c1973dc42042703f2b50db5203efb30e9cf4a8f",
      "parents": [
        "08fafd8461c0ca8d1b389b7dc11d17e7b2331282"
      ],
      "author": {
        "name": "Vitaliy Gusev",
        "email": "vgusev@openvz.org",
        "time": "Fri Dec 25 07:17:43 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Dec 26 20:24:44 2009 -0800"
      },
      "message": "tun: use tun_sk instead container_of\n\nUsing macro tun_sk is more clear and shorter. However tun.c has tun_sk,\nbut doesn\u0027t use it.\n\nSigned-off-by: Vitaliy Gusev \u003cvgusev@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "50857e2a59d8beddc6bb76137df026d67f30d5ca",
      "tree": "7b6d244ad6fa07ff199c7d1436750d535b6b8dcd",
      "parents": [
        "2dceba14ef0e62738d58777a1bd4018130d47a74"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Nov 06 22:52:32 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 06 22:52:32 2009 -0800"
      },
      "message": "net/tun: handle compat_ioctl directly\n\nThe tun driver is the only code in the kernel that operates\non a character device with struct ifreq. Change the driver\nto handle the conversion itself so we can contain the\nremaining ifreq handling in the socket layer.\n\nThis also fixes a bug in the handling of invalid ioctl\nnumbers on an unbound tun device. The driver treats this\nas a TUNSETIFF in native mode, but there is no way for\nthe generic compat_ioctl() function to emulate this\nbehaviour. Possibly the driver was only doing this\naccidentally anyway, but if any code relies on this\nmisfeature, it now also works in compat mode.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "deed49fbb68d7d07ec6c3dfd06bffc74e9abc6fa",
      "tree": "e9cb9de1f67f7cdd47f57237b4fa6c1d51ab9941",
      "parents": [
        "421355de876b9f3fcc7e4cb6026e416fb12a5068"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Oct 14 01:19:46 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 14 01:19:46 2009 -0700"
      },
      "message": "net: Remove BKL from tun\n\nThe lock_kernel/unlock_kernel() in cycle_kernel_lock() which is called\nin tun_chr_open() is not serializing against anything and safe to\nremove.\n\ntun_chr_fasync() is serialized by get/put_tun() and fasync_helper()\nhas no dependency on BKL. The modification of tun-\u003eflags is racy with\nand without the BKL so removing it does not make it worse.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8b3f6af86378d0a10ca2f1ded1da124aef13b62c",
      "tree": "de6ca90295730343c495be8d98be8efa322140ef",
      "parents": [
        "139d6065c83071d5f66cd013a274a43699f8e2c1",
        "94e0fb086fc5663c38bbc0fe86d698be8314f82f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:13:11 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 24 15:13:11 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tdrivers/staging/Kconfig\n\tdrivers/staging/Makefile\n\tdrivers/staging/cpc-usb/TODO\n\tdrivers/staging/cpc-usb/cpc-usb_drv.c\n\tdrivers/staging/cpc-usb/cpc.h\n\tdrivers/staging/cpc-usb/cpc_int.h\n\tdrivers/staging/cpc-usb/cpcusb.h\n"
    },
    {
      "commit": "36989b90879c785f95b877bdcf65a2527dadd893",
      "tree": "d9ee451eca172d28112e092bac53dca927f98044",
      "parents": [
        "9cc4085585a011179caf86a6408225626f6c2263"
      ],
      "author": {
        "name": "Kusanagi Kouichi",
        "email": "slash@ma.neweb.ne.jp",
        "time": "Wed Sep 16 21:36:13 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 22 14:00:16 2009 -0700"
      },
      "message": "tun: Return -EINVAL if neither IFF_TUN nor IFF_TAP is set.\n\nAfter commit 2b980dbd77d229eb60588802162c9659726b11f4\n(\"lsm: Add hooks to the TUN driver\") tun_set_iff doesn\u0027t\nreturn -EINVAL though neither IFF_TUN nor IFF_TAP is set.\n\nSigned-off-by: Kusanagi Kouichi \u003cslash@ma.neweb.ne.jp\u003e\nReviewed-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e454cea20bdcff10ee698d11b8882662a0153a47",
      "tree": "f44581fe57787aef0a4f4dc00993a90ea8e688f6",
      "parents": [
        "78f28b7c555359c67c2a0d23f7436e915329421e"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Fri Sep 18 23:01:12 2009 +0200"
      },
      "committer": {
        "name": "Live-CD User",
        "email": "linux@linux.site",
        "time": "Sat Sep 19 12:50:38 2009 -0700"
      },
      "message": "Driver-Core: extend devnode callbacks to provide permissions\n\nThis allows subsytems to provide devtmpfs with non-default permissions\nfor the device node. Instead of the default mode of 0600, null, zero,\nrandom, urandom, full, tty, ptmx now have a mode of 0666, which allows\nnon-privileged processes to access standard device nodes in case no\nother userspace process applies the expected permissions.\n\nThis also fixes a wrong assignment in pktcdvd and a checkpatch.pl complain.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "d7e9660ad9d5e0845f52848bce31bcf5cdcdea6b",
      "tree": "c6c67d145771187b194d79d603742b31090a59d6",
      "parents": [
        "b8cb48aae1b8c50b37dcb7710363aa69a7a0d9ca",
        "13af7a6ea502fcdd4c0e3d7de6e332b102309491"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 10:37:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 10:37:28 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1623 commits)\n  netxen: update copyright\n  netxen: fix tx timeout recovery\n  netxen: fix file firmware leak\n  netxen: improve pci memory access\n  netxen: change firmware write size\n  tg3: Fix return ring size breakage\n  netxen: build fix for INET\u003dn\n  cdc-phonet: autoconfigure Phonet address\n  Phonet: back-end for autoconfigured addresses\n  Phonet: fix netlink address dump error handling\n  ipv6: Add IFA_F_DADFAILED flag\n  net: Add DEVTYPE support for Ethernet based devices\n  mv643xx_eth.c: remove unused txq_set_wrr()\n  ucc_geth: Fix hangs after switching from full to half duplex\n  ucc_geth: Rearrange some code to avoid forward declarations\n  phy/marvell: Make non-aneg speed/duplex forcing work for 88E1111 PHYs\n  drivers/net/phy: introduce missing kfree\n  drivers/net/wan: introduce missing kfree\n  net: force bridge module(s) to be GPL\n  Subject: [PATCH] appletalk: Fix skb leak when ipddp interface is not loaded\n  ...\n\nFixed up trivial conflicts:\n\n - arch/x86/include/asm/socket.h\n\n   converted to \u003casm-generic/socket.h\u003e in the x86 tree.  The generic\n   header has the same new #define\u0027s, so that works out fine.\n\n - drivers/net/tun.c\n\n   fix conflict between 89f56d1e9 (\"tun: reuse struct sock fields\") that\n   switched over to using \u0027tun-\u003esocket.sk\u0027 instead of the redundantly\n   available (and thus removed) \u0027tun-\u003esk\u0027, and 2b980dbd (\"lsm: Add hooks\n   to the TUN driver\") which added a new \u0027tun-\u003esk\u0027 use.\n\n   Noted in \u0027next\u0027 by Stephen Rothwell.\n"
    },
    {
      "commit": "89f56d1e91cfa535ccc6cc60e9e12e02682fd972",
      "tree": "21231979479b0e2e0c7b4666f709bd657a89849a",
      "parents": [
        "86393e52c3f1e2f6be18383f6ecdbcdc5727d545"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Sun Aug 30 07:04:42 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 01 17:40:33 2009 -0700"
      },
      "message": "tun: reuse struct sock fields\n\nAs tun always has an embeedded struct sock,\nuse sk and sk_receive_queue fields instead of\nduplicating them in tun_struct.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "424efe9caf6047ffbcd6b383ff4d2347254aabf1",
      "tree": "d0ed516baa5b452ed8bc3a88fbd061f6e415bfb9",
      "parents": [
        "6518bbb803fe02b15a3211c8db2afdff0ac4f808"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Aug 31 19:50:51 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 01 01:13:40 2009 -0700"
      },
      "message": "netdev: convert pseudo drivers to netdev_tx_t\n\nThese are all drivers that don\u0027t touch real hardware.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2b980dbd77d229eb60588802162c9659726b11f4",
      "tree": "78a7f734d0721029e4b4c961ca61d35abe9e6dbc",
      "parents": [
        "d8e180dcd5bbbab9cd3ff2e779efcf70692ef541"
      ],
      "author": {
        "name": "Paul Moore",
        "email": "paul.moore@hp.com",
        "time": "Fri Aug 28 18:12:43 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Sep 01 08:29:48 2009 +1000"
      },
      "message": "lsm: Add hooks to the TUN driver\n\nThe TUN driver lacks any LSM hooks which makes it difficult for LSM modules,\nsuch as SELinux, to enforce access controls on network traffic generated by\nTUN users; this is particularly problematic for virtualization apps such as\nQEMU and KVM.  This patch adds three new LSM hooks designed to control the\ncreation and attachment of TUN devices, the hooks are:\n\n * security_tun_dev_create()\n   Provides access control for the creation of new TUN devices\n\n * security_tun_dev_post_create()\n   Provides the ability to create the necessary socket LSM state for newly\n   created TUN devices\n\n * security_tun_dev_attach()\n   Provides access control for attaching to existing, persistent TUN devices\n   and the ability to update the TUN device\u0027s socket LSM state as necessary\n\nSigned-off-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nAcked-by: Eric Paris \u003ceparis@parisplace.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "aa11d958d1a6572eda08214d7c6a735804fe48a5",
      "tree": "d025b05270ad1e010660d17eeadc6ac3c1abbd7d",
      "parents": [
        "07f6642ee9418e962e54cbc07471cfe2e559c568",
        "9799218ae36910af50f002a5db1802d576fffb43"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 12 17:44:53 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 12 17:44:53 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tarch/microblaze/include/asm/socket.h\n"
    },
    {
      "commit": "876bfd4d0f18cd1f698249870c7e7fb944de1c26",
      "tree": "62959754494fb97f48d7c4f811d913321b046554",
      "parents": [
        "9555b31e8c29d2000e1e1f569f6f242ebd596e47"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Aug 06 14:22:44 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 09 21:45:35 2009 -0700"
      },
      "message": "tun: Extend RTNL lock coverage over whole ioctl\n\nAs it is, parts of the ioctl runs under the RTNL and parts of\nit do not.  The unlocked section is still protected by the BKL,\nbut there can be subtle races.  For example, Eric Biederman and\nPaul Moore observed that if two threads tried to create two tun\ndevices on the same file descriptor, then unexpected results\nmay occur.\n\nAs there isn\u0027t anything in the ioctl that is expected to sleep\nindefinitely, we can prevent this from occurring by extending\nthe RTNL lock coverage.\n\nThis also allows to get rid of the BKL.\n\nFinally, I changed tun_get_iff to take a tun device in order to\navoid calling tun_put which would dead-lock as it also tries to\ntake the RTNL lock.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e36aa25a533962b08402530e8443ac804a454e27",
      "tree": "2b61eba6b8cac10487467d1dec8f1d9072a75621",
      "parents": [
        "5c5167515d80f78f6bb538492c423adcae31ad65"
      ],
      "author": {
        "name": "Sridhar Samudrala",
        "email": "sri@us.ibm.com",
        "time": "Tue Jul 14 14:21:04 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 17 10:11:00 2009 -0700"
      },
      "message": "tun: Allow tap device to send/receive UFO packets.\n\n- Allow setting UFO on tap device and handle UFO packets.\n\nSigned-off-by: Sridhar Samudrala \u003csri@us.ibm.com\u003e\n\n---------------------------------------------------------\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e5a8a896f5180f2950695d2d0b79db348d200ca4",
      "tree": "04adc57ae51a6d30a89ffae970770b81ee81fc23",
      "parents": [
        "bff38771e1065c7fc3de87e47ba366151eea573c",
        "e594e96e8a14101a6decabf6746bd5186287debc"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 09 20:18:24 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 09 20:18:24 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "460deefae62db4472e8bd16b21c7d70f3c7fd785",
      "tree": "870d0b16f5ba309e57ce224112d1a965bc2d9153",
      "parents": [
        "50f238fdf38e37f0350be17c36e3ec0fd298cc40"
      ],
      "author": {
        "name": "Paul Moore",
        "email": "paul.moore@hp.com",
        "time": "Tue Jul 07 08:11:33 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 07 19:22:11 2009 -0700"
      },
      "message": "tun: Remove a dead line of code\n\nRemove an unnecessary assignment.\n\nSigned-off-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3c8a9c63d5fd738c261bd0ceece04d9c8357ca13",
      "tree": "7c60ab7e391f73ffcbcb98613ee454f843d7b3d1",
      "parents": [
        "1ded3f59f35a2642852b3e2a1c0fa8a97777e9af"
      ],
      "author": {
        "name": "Mariusz Kozlowski",
        "email": "m.kozlowski@tuxland.pl",
        "time": "Sun Jul 05 19:48:35 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 06 12:47:07 2009 -0700"
      },
      "message": "tun/tap: Fix crashes if open() /dev/net/tun and then poll() it.\n\nFix NULL pointer dereference in tun_chr_pool() introduced by commit\n33dccbb050bbe35b88ca8cf1228dcf3e4d4b3554 (\"tun: Limit amount of queued\npackets per device\") and triggered by this code:\n\n\tint fd;\n\tstruct pollfd pfd;\n\tfd \u003d open(\"/dev/net/tun\", O_RDWR);\n\tpfd.fd \u003d fd;\n\tpfd.events \u003d POLLIN | POLLOUT;\n\tpoll(\u0026pfd, 1, 0);\n\nReported-by: Eugene Kapun \u003cabacabadabacaba@gmail.com\u003e\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ed106549d17474ca17a16057f4c0ed4eba5a7ca",
      "tree": "b98c09081509b3a9757339b6b66779e4126dfa29",
      "parents": [
        "0e8635a8e1f2d4a9e1bfc6c3b21419a5921e674f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jun 23 06:03:08 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 05 19:16:04 2009 -0700"
      },
      "message": "net: use NETDEV_TX_OK instead of 0 in ndo_start_xmit() functions\n\nThis patch is the result of an automatic spatch transformation to convert\nall ndo_start_xmit() return values of 0 to NETDEV_TX_OK.\n\nSome occurences are missed by the automatic conversion, those will be\nhandled in a seperate patch.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d23e43658aed286b885d398ff0810f04f6aae97f",
      "tree": "49449c308390dc319fc83378dbd357041c7f27ea",
      "parents": [
        "c001c213b109c8baeeb6d012b422bf059b18368f"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Jul 02 23:03:55 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 05 18:03:18 2009 -0700"
      },
      "message": "tun: Fix device unregister race\n\nIt is currently possible for an asynchronous device unregister\nto cause the same tun device to be unregistered twice.  This\nis because the unregister in tun_chr_close only checks whether\n__tun_get(tfile) !\u003d NULL.  This however has nothing to do with\nwhether the device has already been unregistered.  All it tells\nyou is whether __tun_detach has been called.\n\nThis patch fixes this by using the most obvious thing to test\nwhether the device has been unregistered.\n\nIt also moves __tun_detach outside of rtnl_unlock since nothing\nthat it does requires that lock.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d405640539555b601e52f7d18f1f0b1345d18bf5",
      "tree": "6a748c0acea0fa72c732d2f188e57153418395e0",
      "parents": [
        "6fcf53acccf85b4b0d0260e66c692a341760f464"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Apr 30 15:23:42 2009 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:30:25 2009 -0700"
      },
      "message": "Driver Core: misc: add nodename support for misc devices.\n\nThis adds support for misc devices to report their requested nodename to\nuserspace.  It also updates a number of misc drivers to provide the\nneeded subdirectory and device name to be used for them.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f0a4d0e5b5bfd271e6737f7c095994835b70d450",
      "tree": "a3ee9afad29dd6e01d7fe36c45ec1cca8d052ab9",
      "parents": [
        "ef681ce1e8b3e63317cd724c200b2fd39286c005"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@aristanetworks.com",
        "time": "Mon Jun 08 00:44:31 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 00:44:31 2009 -0700"
      },
      "message": "tun: Fix unregister race\n\nIt is possible for tun_chr_close to race with dellink on the\na tun device.  In which case if __tun_get runs before dellink\nbut dellink runs before tun_chr_close calls unregister_netdevice\nwe will attempt to unregister the netdevice after it is already\ngone.  \n\nThe two cases are already serialized on the rtnl_lock, so I have\ngone for the cheap simple fix of moving rtnl_lock to cover __tun_get\nin tun_chr_close.  Eliminating the possibility of the tun device\nbeing unregistered between __tun_get and unregister_netdevice in\ntun_chr_close.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nTested-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f536f403979d37021508c5804509a379d853788",
      "tree": "d64d26d4e2c2c0bd2a487d9c5db77a4fe8b40969",
      "parents": [
        "2faef52b72958b8b1c08e927b9b0691c314cf6f4"
      ],
      "author": {
        "name": "Sridhar Samudrala",
        "email": "sri@us.ibm.com",
        "time": "Mon Jun 08 00:27:28 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 00:27:28 2009 -0700"
      },
      "message": "tun: Fix copy/paste error in tun_get_user\n\nUse the right structure while incrementing the offset in tun_get_user.\n\nSigned-off-by: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4909122fb8350e70c347f1201256908a92058044",
      "tree": "ce87843cec44a1671bacff61b2c4fd25960efa6a",
      "parents": [
        "b82f08ea162edeee6c2c70c6c4321bea4763fa35"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jun 08 00:20:01 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 00:20:01 2009 -0700"
      },
      "message": "tun: Optimise handling of bogus gso-\u003ehdr_len\n\nAs all current versions of virtio_net generate a value for the\nheader length that\u0027s too small, we should optimise this so that\nwe don\u0027t copy it twice.  This can be done by ensuring that it is\nat least as large as the place where we\u0027ll write the checksum.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c722c625dbe2758d53365c0ed7d401b0e286f2cf",
      "tree": "4b73bc0edf80e3b5652c35512fbdb19f472b557a",
      "parents": [
        "a8c617eae4dc2ea9f3d64472233f2d3dc3c9993c"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed Jun 03 21:45:55 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 21:45:55 2009 -0700"
      },
      "message": "tun: Only wake up writers\n\nWhen I added socket accounting to tun I inadvertently introduced\nspurious wake-up events that kills qemu performance.  The problem\noccurs when qemu polls on the tun fd for read, and then transmits\npackets.  For each packet transmitted, we will wake up qemu even\nif it only cares about read events.\n\nNow this affects all sockets, but it is only a new problem for\ntun.  So this patch tries to fix it for tun first and we can then\nlook at the problem in general.\n \nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "980c9e8ceeb69ac4c921173d0d06323f5c678647",
      "tree": "6dc3a40501bf94177f40009cea3327dcb70462cb",
      "parents": [
        "ed9b58bc443a1210b5be1ded6421b17e015bf985"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Sat May 09 22:54:21 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 09 22:54:21 2009 -0700"
      },
      "message": "tun: add tun_flags, owner, group attributes in sysfs\n\nThis patch adds three attribute files in /sys/class/net/$dev/ for tun\ndevices; allowing userspace to obtain the information which TUNGETIFF\noffers, and more, but without having to attach to the device in question\n(which may not be possible if it\u0027s in use).\n\nIt also fixes a bug which has been present in the TUNGETIFF ioctl since\nits inception, where it would never set IFF_TUN or IFF_TAP according to\nthe device type. (Look carefully at the code which I remove from\ntun_get_iff() and how the new tun_flags() helper is subtly different).\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f85ba78068ac137fe9c1f50d25405d2783d75c77",
      "tree": "68325fa489b07db5cf7311b79e9e245ed02e5d9a",
      "parents": [
        "0456b4f8b742006c2b79fcbe6b0736aa1ad39180"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Apr 27 03:23:54 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 27 03:23:54 2009 -0700"
      },
      "message": "tun: add IFF_TUN_EXCL flag to avoid opening a persistent device.\n\nWhen creating a certain types of VPN, NetworkManager will first attempt\nto find an available tun device by iterating through \u0027vpn%d\u0027 until it\nfinds one that isn\u0027t already busy. Then it\u0027ll set that to be persistent\nand owned by the otherwise unprivileged user that the VPN dæmon itself\nruns as.\n\nThere\u0027s a race condition here -- during the period where the vpn%d\ndevice is created and we\u0027re waiting for the VPN dæmon to actually\nconnect and use it, if we try to create _another_ device we could end up\nre-using the same one -- because trying to open it again doesn\u0027t get\n-EBUSY as it would while it\u0027s _actually_ busy.\n\nSo solve this, we add an IFF_TUN_EXCL flag which causes tun_set_iff() to\nfail if it would be opening an existing persistent tundevice -- so that\nwe can make sure we\u0027re getting an entirely _new_ device.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f26c9a7555e5bcca3560919db9b852015077dae",
      "tree": "9ca7509cd0cbbdae158b752c234cb23add8370f0",
      "parents": [
        "43b39dcdbdf823a1c0ac1f2aa2d76bd2f210adc8"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Apr 20 01:26:11 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 21 05:42:46 2009 -0700"
      },
      "message": "tun: fix tun_chr_aio_write so that aio works\n\naio_write gets const struct iovec * but tun_chr_aio_write casts this to struct\niovec * and modifies the iovec. As a result, attempts to use io_submit\nto send packets to a tun device fail with weird errors such as EINVAL.\n\nSince tun is the only user of skb_copy_datagram_from_iovec, we can\nfix this simply by changing the later so that it does not\ntouch the iovec passed to it.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "43b39dcdbdf823a1c0ac1f2aa2d76bd2f210adc8",
      "tree": "117c9b756380b59c8c29955f02c4d9ff504b047a",
      "parents": [
        "0a1ec07a67bd8b0033dace237249654d015efa21"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Apr 20 01:25:59 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 21 05:42:45 2009 -0700"
      },
      "message": "tun: fix tun_chr_aio_read so that aio works\n\naio_read gets const struct iovec * but tun_chr_aio_read casts this to struct\niovec * and modifies the iovec. As a result, attempts to use io_submit\nto get packets from a tun device fail with weird errors such as EINVAL.\n\nFix by using the new skb_copy_datagram_const_iovec.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "10d024c1b2fd58af8362670d7d6e5ae52fc33353"
}
