[patch] compat_ioctl should return -ENOTTY for some failures

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In many cases compat_ioctl() should return -ENOTTY.

Recent changes in this area seem to be breaking some
Wine apps.  I'm not proposing this for inclusion (yet,)
I just want to know if I've hit the right places.

Index: 2.6.20-d390/fs/compat.c
===================================================================
--- 2.6.20-d390.orig/fs/compat.c	2007-02-12 13:24:20.000000000 -0500
+++ 2.6.20-d390/fs/compat.c	2007-02-12 16:16:08.000000000 -0500
@@ -439,15 +439,10 @@
 	}
 
 	if (S_ISSOCK(filp->f_path.dentry->d_inode->i_mode) &&
-	    cmd >= SIOCDEVPRIVATE && cmd <= (SIOCDEVPRIVATE + 15)) {
+	    cmd >= SIOCDEVPRIVATE && cmd <= (SIOCDEVPRIVATE + 15))
 		error = siocdevprivate_ioctl(fd, cmd, arg);
-	} else {
-		static int count;
-
-		if (++count <= 50)
-			compat_ioctl_error(filp, fd, cmd, arg);
-		error = -EINVAL;
-	}
+	else
+		error = -ENOTTY;
 
 	goto out_fput;
 
Index: 2.6.20-d390/fs/ioctl.c
===================================================================
--- 2.6.20-d390.orig/fs/ioctl.c	2007-02-12 13:24:20.000000000 -0500
+++ 2.6.20-d390/fs/ioctl.c	2007-02-12 16:14:29.000000000 -0500
@@ -27,7 +27,7 @@
 	if (filp->f_op->unlocked_ioctl) {
 		error = filp->f_op->unlocked_ioctl(filp, cmd, arg);
 		if (error == -ENOIOCTLCMD)
-			error = -EINVAL;
+			error = -ENOTTY;
 		goto out;
 	} else if (filp->f_op->ioctl) {
 		lock_kernel();

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux