diff options
-rw-r--r-- | drivers/gpu/drm/drm_drv.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c index e572dd20bdee..05ad9ba0a67e 100644 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c | |||
@@ -402,9 +402,16 @@ long drm_ioctl(struct file *filp, | |||
402 | cmd = ioctl->cmd_drv; | 402 | cmd = ioctl->cmd_drv; |
403 | } | 403 | } |
404 | else if ((nr >= DRM_COMMAND_END) || (nr < DRM_COMMAND_BASE)) { | 404 | else if ((nr >= DRM_COMMAND_END) || (nr < DRM_COMMAND_BASE)) { |
405 | u32 drv_size; | ||
406 | |||
405 | ioctl = &drm_ioctls[nr]; | 407 | ioctl = &drm_ioctls[nr]; |
406 | cmd = ioctl->cmd; | 408 | |
409 | drv_size = _IOC_SIZE(ioctl->cmd); | ||
407 | usize = asize = _IOC_SIZE(cmd); | 410 | usize = asize = _IOC_SIZE(cmd); |
411 | if (drv_size > asize) | ||
412 | asize = drv_size; | ||
413 | |||
414 | cmd = ioctl->cmd; | ||
408 | } else | 415 | } else |
409 | goto err_i1; | 416 | goto err_i1; |
410 | 417 | ||