From: Tom Zanussi <[email protected]> Add DRM_UNLOCKED to allow us to call handlers that do their own locking without the global lock.
Signed-off-by: Tom Zanussi <[email protected]> --- drivers/gpu/drm-psb/drmP.h | 1 + drivers/gpu/drm-psb/drm_drv.c | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm-psb/drmP.h b/drivers/gpu/drm-psb/drmP.h index 3cca5fe..9d5bb5c 100644 --- a/drivers/gpu/drm-psb/drmP.h +++ b/drivers/gpu/drm-psb/drmP.h @@ -309,6 +309,7 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd, #define DRM_AUTH 0x1 #define DRM_MASTER 0x2 #define DRM_ROOT_ONLY 0x4 +#define DRM_UNLOCKED 0x8 struct drm_ioctl_desc { unsigned int cmd; diff --git a/drivers/gpu/drm-psb/drm_drv.c b/drivers/gpu/drm-psb/drm_drv.c index 472859b..396dcda 100644 --- a/drivers/gpu/drm-psb/drm_drv.c +++ b/drivers/gpu/drm-psb/drm_drv.c @@ -663,9 +663,13 @@ long drm_unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) ((ioctl->flags & DRM_MASTER) && !file_priv->master)) { retcode = -EACCES; } else { - mutex_lock(&drm_global_mutex); - retcode = func(dev, kdata, file_priv); - mutex_unlock(&drm_global_mutex); + if (ioctl->flags & DRM_UNLOCKED) + retcode = func(dev, kdata, file_priv); + else { + mutex_lock(&drm_global_mutex); + retcode = func(dev, kdata, file_priv); + mutex_unlock(&drm_global_mutex); + } } if ((retcode == 0) && (cmd & IOC_OUT)) { -- 1.7.0.4 _______________________________________________ yocto mailing list [email protected] https://lists.yoctoproject.org/listinfo/yocto
