From b2c4c7ae5e14598dbb8c1de32918ec9cc8dde7c9 Mon Sep 17 00:00:00 2001
From: Alan Hourihane <alanh@fairlite.demon.co.uk>
Date: Wed, 26 Sep 2007 15:38:54 +0100
Subject: don't copy back if an error was returned.

---
 linux-core/drm_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'linux-core')

diff --git a/linux-core/drm_drv.c b/linux-core/drm_drv.c
index 5d2745e2..e991f117 100644
--- a/linux-core/drm_drv.c
+++ b/linux-core/drm_drv.c
@@ -660,7 +660,7 @@ long drm_unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
 		retcode = func(dev, kdata, file_priv);
 	}
 
-	if (cmd & IOC_OUT) {
+	if ((retcode == 0) && cmd & IOC_OUT) {
 		if (copy_to_user((void __user *)arg, kdata,
 				 _IOC_SIZE(cmd)) != 0)
 			retcode = -EACCES;
-- 
cgit v1.2.3