diff -urN linux-3.10.0-123.6.3.el7.i686.old/drivers/gpu/drm/radeon/radeon_drv.c linux-3.10.0-123.6.3.el7.i686/drivers/gpu/drm/radeon/radeon_drv.c --- linux-3.10.0-123.6.3.el7.i686.old/drivers/gpu/drm/radeon/radeon_drv.c 2014-09-15 19:00:17.000000000 +0400 +++ linux-3.10.0-123.6.3.el7.i686/drivers/gpu/drm/radeon/radeon_drv.c 2014-09-15 19:01:11.000000000 +0400 @@ -125,7 +125,7 @@ void radeon_gem_prime_unpin(struct drm_gem_object *obj); void *radeon_gem_prime_vmap(struct drm_gem_object *obj); void radeon_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr); -extern long radeon_kms_compat_ioctl(struct file *filp, unsigned int cmd, +extern long radeon_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg); #if defined(CONFIG_DEBUG_FS) @@ -380,7 +380,7 @@ .poll = drm_poll, .read = drm_read, #ifdef CONFIG_COMPAT - .compat_ioctl = radeon_kms_compat_ioctl, + .compat_ioctl = radeon_compat_ioctl, #endif }; diff -urN linux-3.10.0-123.6.3.el7.i686.old/drivers/gpu/drm/radeon/radeon_ioc32.c linux-3.10.0-123.6.3.el7.i686/drivers/gpu/drm/radeon/radeon_ioc32.c --- linux-3.10.0-123.6.3.el7.i686.old/drivers/gpu/drm/radeon/radeon_ioc32.c 2014-09-15 19:00:17.000000000 +0400 +++ linux-3.10.0-123.6.3.el7.i686/drivers/gpu/drm/radeon/radeon_ioc32.c 2014-09-15 18:53:59.000000000 +0400 @@ -368,6 +368,14 @@ #define compat_radeon_cp_setparam NULL #endif /* X86_64 || IA64 */ +static int compat_radeon_info(struct file *file, unsigned int cmd, + unsigned long arg) +{ + struct drm_radeon_info __user *info = (void __user *)arg; + info->value &= 0xFFFFFFFF; + return drm_ioctl(file, DRM_IOCTL_RADEON_INFO, arg); +} + static drm_ioctl_compat_t *radeon_compat_ioctls[] = { [DRM_RADEON_CP_INIT] = compat_radeon_cp_init, [DRM_RADEON_CLEAR] = compat_radeon_cp_clear, @@ -379,6 +387,7 @@ [DRM_RADEON_SETPARAM] = compat_radeon_cp_setparam, [DRM_RADEON_ALLOC] = compat_radeon_mem_alloc, [DRM_RADEON_IRQ_EMIT] = compat_radeon_irq_emit, + [DRM_RADEON_INFO] = compat_radeon_info, }; /** @@ -390,6 +399,7 @@ * \param arg user argument. * \return zero on success or negative number on failure. */ + long radeon_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { unsigned int nr = DRM_IOCTL_NR(cmd); @@ -409,16 +419,3 @@ return ret; } - -long radeon_kms_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) -{ - unsigned int nr = DRM_IOCTL_NR(cmd); - int ret; - - if (nr < DRM_COMMAND_BASE) - return drm_compat_ioctl(filp, cmd, arg); - - ret = drm_ioctl(filp, cmd, arg); - - return ret; -}