Fix misc ioctl issues, makes Nouveau run.
Debug print fix in drm_release(). Forgotten local variable init in drm_setversion(). Unnecessary put_user() in drm_addmap_ioctl(). ioctl->cmd check broken in drm_ioctl(); workaround.main
parent
b43b0b2b32
commit
0844c46759
|
@ -343,8 +343,7 @@ int drm_addmap_ioctl(struct drm_device *dev, void *data,
|
|||
return err;
|
||||
|
||||
/* avoid a warning on 64-bit, this casting isn't very nice, but the API is set so too late */
|
||||
if (put_user((void *)(unsigned long)maplist->user_token, &map->handle))
|
||||
return -EFAULT;
|
||||
map->handle = (void *)(unsigned long)maplist->user_token;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -602,12 +602,18 @@ int drm_ioctl(struct inode *inode, struct file *filp,
|
|||
retcode = -EINVAL;
|
||||
goto err_i1;
|
||||
}
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* This check is disabled, because driver private ioctl->cmd
|
||||
* are not the ioctl commands with size and direction bits but
|
||||
* just the indices. The DRM core ioctl->cmd are the proper ioctl
|
||||
* commands. The drivers' ioctl tables need to be fixed.
|
||||
*/
|
||||
if (ioctl->cmd != cmd) {
|
||||
retcode = -EINVAL;
|
||||
goto err_i1;
|
||||
}
|
||||
|
||||
#endif
|
||||
func = ioctl->func;
|
||||
/* is there a local override? */
|
||||
if ((nr == DRM_IOCTL_NR(DRM_IOCTL_DMA)) && dev->driver->dma_ioctl)
|
||||
|
|
|
@ -403,7 +403,7 @@ int drm_release(struct inode *inode, struct file *filp)
|
|||
*/
|
||||
|
||||
DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %d\n",
|
||||
current->pid, (long)old_encode_dev(dev),
|
||||
current->pid, (long)old_encode_dev(file_priv->head->device),
|
||||
dev->open_count);
|
||||
|
||||
if (dev->driver->reclaim_buffers_locked && dev->lock.hw_lock) {
|
||||
|
|
|
@ -301,7 +301,7 @@ int drm_getstats(struct drm_device *dev, void *data,
|
|||
int drm_setversion(struct drm_device *dev, void *data, struct drm_file *file_priv)
|
||||
{
|
||||
struct drm_set_version *sv = data;
|
||||
int if_version, retcode;
|
||||
int if_version, retcode = 0;
|
||||
|
||||
if (sv->drm_di_major != -1) {
|
||||
if (sv->drm_di_major != DRM_IF_MAJOR ||
|
||||
|
|
Loading…
Reference in New Issue