From b018fcdaa5e8b4eabb8cffda687d00004a3c4785 Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Thu, 22 Nov 2007 18:46:54 +1000
Subject: [PATCH] drm: Make DRM_IOCTL_GET_CLIENT return EINVAL when it can't
 find client #idx.

Fixes the getclient test and dritest -c.

Signed-off-by: Dave Airlie <airlied@linux.ie>
---
 drivers/char/drm/drm_ioctl.c | 25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/drivers/char/drm/drm_ioctl.c b/drivers/char/drm/drm_ioctl.c
index b4d86a3343c6c..16829fb3089d8 100644
--- a/drivers/char/drm/drm_ioctl.c
+++ b/drivers/char/drm/drm_ioctl.c
@@ -235,25 +235,22 @@ int drm_getclient(struct drm_device *dev, void *data,
 	idx = client->idx;
 	mutex_lock(&dev->struct_mutex);
 
-	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;
+		if (i++ >= idx) {
+			client->auth = pt->authenticated;
+			client->pid = pt->pid;
+			client->uid = pt->uid;
+			client->magic = pt->magic;
+			client->iocs = pt->ioctl_count;
+			mutex_unlock(&dev->struct_mutex);
+
+			return 0;
+		}
 	}
-
-	client->auth = pt->authenticated;
-	client->pid = pt->pid;
-	client->uid = pt->uid;
-	client->magic = pt->magic;
-	client->iocs = pt->ioctl_count;
 	mutex_unlock(&dev->struct_mutex);
 
-	return 0;
+	return -EINVAL;
 }
 
 /**
-- 
2.30.2