X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=drivers%2Fchar%2Fdrm%2Fdrm_ioctl.c;h=96b982f1f4a403c082ad5cfe1b7d5f9d661b581e;hb=bd1b331fae2813d9f03ceee649296f02edc0b893;hp=565895547d75b2c254db4eafaab91c344d14780e;hpb=1c7da74c4aab595a994beb5fe728ebf0d0b41f59;p=mirror_ubuntu-bionic-kernel.git diff --git a/drivers/char/drm/drm_ioctl.c b/drivers/char/drm/drm_ioctl.c index 565895547d75..96b982f1f4a4 100644 --- a/drivers/char/drm/drm_ioctl.c +++ b/drivers/char/drm/drm_ioctl.c @@ -204,7 +204,7 @@ int drm_getmap(struct inode *inode, struct file *filp, } i = 0; - list_for_each(list, &dev->maplist->head) { + list_for_each(list, &dev->maplist) { if (i == idx) { r_list = list_entry(list, drm_map_list_t, head); break; @@ -257,12 +257,18 @@ int drm_getclient(struct inode *inode, struct file *filp, return -EFAULT; idx = client.idx; mutex_lock(&dev->struct_mutex); - for (i = 0, pt = dev->file_first; i < idx && pt; i++, pt = pt->next) ; - - if (!pt) { + + if (list_empty(&dev->filelist)) { mutex_unlock(&dev->struct_mutex); return -EINVAL; } + + i = 0; + list_for_each_entry(pt, &dev->filelist, lhead) { + if (i++ >= idx) + break; + } + client.auth = pt->authenticated; client.pid = pt->pid; client.uid = pt->uid;