diff options
Diffstat (limited to 'drivers/gpu/drm/drm_ioctl.c')
| -rw-r--r-- | drivers/gpu/drm/drm_ioctl.c | 18 | 
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c index 33af4a5ddca1..0ad2c47f808f 100644 --- a/drivers/gpu/drm/drm_ioctl.c +++ b/drivers/gpu/drm/drm_ioctl.c @@ -29,7 +29,6 @@   */  #include <drm/drmP.h> -#include <drm/drm_core.h>  #include <drm/drm_auth.h>  #include "drm_legacy.h"  #include "drm_internal.h" @@ -189,9 +188,8 @@ static int drm_getclient(struct drm_device *dev, void *data,  	 */  	if (client->idx == 0) {  		client->auth = file_priv->authenticated; -		client->pid = pid_vnr(file_priv->pid); -		client->uid = from_kuid_munged(current_user_ns(), -					       file_priv->uid); +		client->pid = task_pid_vnr(current); +		client->uid = overflowuid;  		client->magic = 0;  		client->iocs = 0; @@ -228,6 +226,7 @@ static int drm_getstats(struct drm_device *dev, void *data,  static int drm_getcap(struct drm_device *dev, void *data, struct drm_file *file_priv)  {  	struct drm_get_cap *req = data; +	struct drm_crtc *crtc;  	req->value = 0;  	switch (req->capability) { @@ -254,6 +253,13 @@ static int drm_getcap(struct drm_device *dev, void *data, struct drm_file *file_  	case DRM_CAP_ASYNC_PAGE_FLIP:  		req->value = dev->mode_config.async_page_flip;  		break; +	case DRM_CAP_PAGE_FLIP_TARGET: +		req->value = 1; +		drm_for_each_crtc(crtc, dev) { +			if (!crtc->funcs->page_flip_target) +				req->value = 0; +		} +		break;  	case DRM_CAP_CURSOR_WIDTH:  		if (dev->mode_config.cursor_width)  			req->value = dev->mode_config.cursor_width; @@ -714,9 +720,9 @@ long drm_ioctl(struct file *filp,  	if (ksize > in_size)  		memset(kdata + in_size, 0, ksize - in_size); -	/* Enforce sane locking for kms driver ioctls. Core ioctls are +	/* Enforce sane locking for modern driver ioctls. Core ioctls are  	 * too messy still. */ -	if ((drm_core_check_feature(dev, DRIVER_MODESET) && is_driver_ioctl) || +	if ((!drm_core_check_feature(dev, DRIVER_LEGACY) && is_driver_ioctl) ||  	    (ioctl->flags & DRM_UNLOCKED))  		retcode = func(dev, kdata, file_priv);  	else {  |