From: David Herrmann <dh.herrmann@gmail.com>
To: dri-devel@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org, Dave Airlie <airlied@gmail.com>,
David Herrmann <dh.herrmann@gmail.com>
Subject: [RFC v2 0/6] DRM revoke support
Date: Tue, 22 Oct 2013 00:33:22 +0200 [thread overview]
Message-ID: <1382394808-20611-1-git-send-email-dh.herrmann@gmail.com> (raw)
Hi
This is the 2nd revision of reliable unplug support for DRM. As revoke support
for the generic VFS layer is still not even close to being merged, this fixes
the generic DRM layer to handle unplugged devices gracefully.
This series fixes the DRM core to track any running f_ops. During device
unplugging (which is the same as revoke()) we mark a device as unplugged so no
new f_ops are started. Then we wait for running f_ops to finish and then close
all open files (and leave just dummies behind). Now we can unregister the device
without waiting for userspace to call close() on all fds.
Any comments are welcome. Drivers which provide their own f_ops need to be
fixed, other than that this is already working. Tested with udl locally. Running
applications get poll(HUP) or SIGBUS for mmaps depending on what they're doing
if they access the device after unplugging.
Thanks
David
David Herrmann (6):
percpu_rw_semaphore: export symbols for modules
percpu_rw_semaphore: add percpu_down_read_trylock()
drm: split drm_release()
drm: make dev->unplugged reliable
drm: make drm_dev_unregister() immediate
drm: zap mmaps for dead devices
drivers/gpu/drm/Kconfig | 1 +
drivers/gpu/drm/drm_drv.c | 5 +-
drivers/gpu/drm/drm_fops.c | 111 ++++++++++++++-------
drivers/gpu/drm/drm_gem.c | 10 +-
drivers/gpu/drm/drm_stub.c | 192 ++++++++++++++++++++++++++++++------
drivers/gpu/drm/drm_vm.c | 3 +-
drivers/gpu/drm/udl/udl_connector.c | 2 +-
drivers/gpu/drm/udl/udl_drv.c | 2 +-
drivers/gpu/drm/udl/udl_fb.c | 4 +-
include/drm/drmP.h | 27 +++--
include/linux/percpu-rwsem.h | 1 +
lib/Makefile | 2 +-
lib/percpu-rwsem.c | 27 +++++
13 files changed, 296 insertions(+), 91 deletions(-)
--
1.8.4.1
next reply other threads:[~2013-10-21 22:33 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-21 22:33 David Herrmann [this message]
2013-10-21 22:33 ` [RFC v2 1/6] percpu_rw_semaphore: export symbols for modules David Herrmann
2013-10-21 22:33 ` [RFC v2 2/6] percpu_rw_semaphore: add percpu_down_read_trylock() David Herrmann
2013-10-21 22:33 ` [RFC v2 3/6] drm: split drm_release() David Herrmann
2013-10-21 22:33 ` [RFC v2 4/6] drm: make dev->unplugged reliable David Herrmann
2013-10-21 22:33 ` [RFC v2 5/6] drm: make drm_dev_unregister() immediate David Herrmann
2013-10-21 22:33 ` [RFC v2 6/6] drm: zap mmaps for dead devices David Herrmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1382394808-20611-1-git-send-email-dh.herrmann@gmail.com \
--to=dh.herrmann@gmail.com \
--cc=airlied@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome