Re: [Bug 2683] arch/sparc64/kernel/sunos_ioctl32.c: sys_ioctl

"David S. Miller" <[email protected]> Wed, 07 Sep 2005 03:12:50 +0000
Newsgroups org.kernel.vger.ultralinux
Message-ID <[email protected]>
From: Adrian Bunk <[email protected]>
Date: Sat, 3 Sep 2005 00:38:16 +0200

> Can anyone confirm whether it is a bug or not?

Yep, it's a bug.  I've checked in the suggested fix as
follows:

diff-tree 09bbe1043a65903c93f6b6df123e36e3584bfac7 (from 93c37f292110a37dd77e4cc0aaf1c341d79bf6aa)
Author: David S. Miller <[email protected]>
Date:   Tue Sep 6 20:12:15 2005 -0700

    [SPARC64]: Fix set/get MTU cases in sunos_ioctl()
    
    Need to use compat struct sizes and compat_sys_ioctl().
    Reported by Adrian Bunk via kernel bugzilla #2683
    
    Signed-off-by: David S. Miller <[email protected]>

diff --git a/arch/sparc64/kernel/sunos_ioctl32.c b/arch/sparc64/kernel/sunos_ioctl32.c
--- a/arch/sparc64/kernel/sunos_ioctl32.c
+++ b/arch/sparc64/kernel/sunos_ioctl32.c
@@ -152,11 +152,12 @@ asmlinkage int sunos_ioctl (int fd, u32 
 		ret = compat_sys_ioctl(fd, SIOCGIFCONF, arg);
 		goto out;
 
-	case _IOW('i', 21, struct ifreq): /* SIOCSIFMTU */
-		ret = sys_ioctl(fd, SIOCSIFMTU, arg);
+	case _IOW('i', 21, struct ifreq32):
+		ret = compat_sys_ioctl(fd, SIOCSIFMTU, arg);
 		goto out;
-	case _IOWR('i', 22, struct ifreq): /* SIOCGIFMTU */
-		ret = sys_ioctl(fd, SIOCGIFMTU, arg);
+
+	case _IOWR('i', 22, struct ifreq32):
+		ret = compat_sys_ioctl(fd, SIOCGIFMTU, arg);
 		goto out;
 
 	case _IOWR('i', 23, struct ifreq32):