summaryrefslogtreecommitdiffstats
path: root/include/drm/drm_device.h
diff options
context:
space:
mode:
authorNoralf Trønnes <noralf@tronnes.org>2018-03-28 10:38:35 +0300
committerOleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>2018-03-29 13:19:20 +0300
commitbee330f3d67273a68dcb99f59480d59553c008b2 (patch)
treeabe48e9b35c199bf691b02efc40a5291f2391b40 /include/drm/drm_device.h
parent790861cc34f872015806cef311d5c64cc3167a0d (diff)
downloadlinux-stable-bee330f3d67273a68dcb99f59480d59553c008b2.tar.gz
linux-stable-bee330f3d67273a68dcb99f59480d59553c008b2.tar.bz2
linux-stable-bee330f3d67273a68dcb99f59480d59553c008b2.zip
drm: Use srcu to protect drm_device.unplugged
Use srcu to protect drm_device.unplugged in a race free manner. Drivers can use drm_dev_enter()/drm_dev_exit() to protect and mark sections preventing access to device resources that are not available after the device is gone. Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Noralf Trønnes <noralf@tronnes.org> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> Tested-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> Cc: intel-gfx@lists.freedesktop.org Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/1522222715-11814-1-git-send-email-andr2000@gmail.com
Diffstat (limited to 'include/drm/drm_device.h')
-rw-r--r--include/drm/drm_device.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/include/drm/drm_device.h b/include/drm/drm_device.h
index 7c4fa32f3fc6..3a0eac2885b7 100644
--- a/include/drm/drm_device.h
+++ b/include/drm/drm_device.h
@@ -46,7 +46,14 @@ struct drm_device {
/* currently active master for this device. Protected by master_mutex */
struct drm_master *master;
- atomic_t unplugged; /**< Flag whether dev is dead */
+ /**
+ * @unplugged:
+ *
+ * Flag to tell if the device has been unplugged.
+ * See drm_dev_enter() and drm_dev_is_unplugged().
+ */
+ bool unplugged;
+
struct inode *anon_inode; /**< inode for private address-space */
char *unique; /**< unique name of the device */
/*@} */