diff options
Diffstat (limited to 'drivers/gpu/drm/drm_drv.c')
| -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 | ||
