On Wed, Dec 28, 2005 at 12:17:11AM +0300, Michael Tokarev wrote:
> There's something wrong with this new `return' statement.
> On my screen it looks like a 'diamond' character instead
> of a minus sign -- a character with code 0xAD ;)
That's true. Due to some funky terminal interactions I had this in
most places initially, but I though I fixed all up - looks like wanpipe
slipped through.
Updated patch below:
Index: linux-2.6/net/appletalk/ddp.c
===================================================================
--- linux-2.6.orig/net/appletalk/ddp.c 2005-12-25 14:12:07.000000000 +0100
+++ linux-2.6/net/appletalk/ddp.c 2005-12-25 17:16:35.000000000 +0100
@@ -1763,7 +1763,7 @@
*/
static int atalk_ioctl(struct socket *sock, unsigned int cmd, unsigned long
arg)
{
- int rc = -EINVAL;
+ int rc = -ENOIOCTLCMD;
struct sock *sk = sock->sk;
void __user *argp = (void __user *)arg;
@@ -1813,23 +1813,6 @@
rc = atif_ioctl(cmd, argp);
rtnl_unlock();
break;
- /* Physical layer ioctl calls */
- case SIOCSIFLINK:
- case SIOCGIFHWADDR:
- case SIOCSIFHWADDR:
- case SIOCGIFFLAGS:
- case SIOCSIFFLAGS:
- case SIOCGIFTXQLEN:
- case SIOCSIFTXQLEN:
- case SIOCGIFMTU:
- case SIOCGIFCONF:
- case SIOCADDMULTI:
- case SIOCDELMULTI:
- case SIOCGIFCOUNT:
- case SIOCGIFINDEX:
- case SIOCGIFNAME:
- rc = dev_ioctl(cmd, argp);
- break;
}
return rc;
Index: linux-2.6/net/packet/af_packet.c
===================================================================
--- linux-2.6.orig/net/packet/af_packet.c 2005-12-25 14:12:07.000000000
+0100
+++ linux-2.6/net/packet/af_packet.c 2005-12-25 16:37:03.000000000 +0100
@@ -1521,7 +1521,7 @@
#endif
default:
- return dev_ioctl(cmd, (void __user *)arg);
+ return -ENOIOCTLCMD;
}
return 0;
}
Index: linux-2.6/net/rose/af_rose.c
===================================================================
--- linux-2.6.orig/net/rose/af_rose.c 2005-12-25 14:12:07.000000000 +0100
+++ linux-2.6/net/rose/af_rose.c 2005-12-25 18:18:20.000000000 +0100
@@ -1320,7 +1320,7 @@
return 0;
default:
- return dev_ioctl(cmd, argp);
+ return -ENOIOCTLCMD;
}
return 0;
Index: linux-2.6/net/socket.c
===================================================================
--- linux-2.6.orig/net/socket.c 2005-12-25 14:13:26.000000000 +0100
+++ linux-2.6/net/socket.c 2005-12-25 15:27:30.000000000 +0100
@@ -904,6 +904,13 @@
break;
default:
err = sock->ops->ioctl(sock, cmd, arg);
+
+ /*
+ * If this ioctl is unknown try to hand it down
+ * to the NIC driver.
+ */
+ if (err == -ENOIOCTLCMD)
+ err = dev_ioctl(cmd, argp);
break;
}
return err;
Index: linux-2.6/net/unix/af_unix.c
===================================================================
--- linux-2.6.orig/net/unix/af_unix.c 2005-12-25 14:12:07.000000000 +0100
+++ linux-2.6/net/unix/af_unix.c 2005-12-25 16:38:52.000000000 +0100
@@ -1860,7 +1860,7 @@
}
default:
- err = dev_ioctl(cmd, (void __user *)arg);
+ err = -ENOIOCTLCMD;
break;
}
return err;
Index: linux-2.6/net/wanrouter/af_wanpipe.c
===================================================================
--- linux-2.6.orig/net/wanrouter/af_wanpipe.c 2005-12-25 14:12:07.000000000
+0100
+++ linux-2.6/net/wanrouter/af_wanpipe.c 2005-12-25 14:13:42.000000000
+0100
@@ -1839,7 +1839,7 @@
#endif
default:
- return dev_ioctl(cmd,(void __user *) arg);
+ return -ENOIOCTLCMD;
}
/*NOTREACHED*/
}
Index: linux-2.6/net/x25/af_x25.c
===================================================================
--- linux-2.6.orig/net/x25/af_x25.c 2005-12-25 14:12:07.000000000 +0100
+++ linux-2.6/net/x25/af_x25.c 2005-12-25 18:18:32.000000000 +0100
@@ -1378,7 +1378,7 @@
}
default:
- rc = dev_ioctl(cmd, argp);
+ rc = -ENOIOCTLCMD;
break;
}
Index: linux-2.6/net/ax25/af_ax25.c
===================================================================
--- linux-2.6.orig/net/ax25/af_ax25.c 2005-12-25 14:12:07.000000000 +0100
+++ linux-2.6/net/ax25/af_ax25.c 2005-12-25 17:17:50.000000000 +0100
@@ -1827,7 +1827,7 @@
break;
default:
- res = dev_ioctl(cmd, argp);
+ res = -ENOIOCTLCMD;
break;
}
release_sock(sk);
Index: linux-2.6/net/core/dev.c
===================================================================
--- linux-2.6.orig/net/core/dev.c 2005-12-25 14:12:07.000000000 +0100
+++ linux-2.6/net/core/dev.c 2005-12-25 14:13:42.000000000 +0100
@@ -3276,7 +3276,6 @@
EXPORT_SYMBOL(dev_get_by_flags);
EXPORT_SYMBOL(dev_get_by_index);
EXPORT_SYMBOL(dev_get_by_name);
-EXPORT_SYMBOL(dev_ioctl);
EXPORT_SYMBOL(dev_open);
EXPORT_SYMBOL(dev_queue_xmit);
EXPORT_SYMBOL(dev_remove_pack);
Index: linux-2.6/net/decnet/af_decnet.c
===================================================================
--- linux-2.6.orig/net/decnet/af_decnet.c 2005-12-25 14:12:07.000000000
+0100
+++ linux-2.6/net/decnet/af_decnet.c 2005-12-25 17:22:56.000000000 +0100
@@ -1252,7 +1252,7 @@
break;
default:
- err = dev_ioctl(cmd, (void __user *)arg);
+ err = -ENOIOCTLCMD;
break;
}
Index: linux-2.6/net/econet/af_econet.c
===================================================================
--- linux-2.6.orig/net/econet/af_econet.c 2005-12-25 14:12:07.000000000
+0100
+++ linux-2.6/net/econet/af_econet.c 2005-12-25 17:24:48.000000000 +0100
@@ -686,7 +686,7 @@
break;
default:
- return dev_ioctl(cmd, argp);
+ return -ENOIOCTLCMD;
}
/*NOTREACHED*/
return 0;
Index: linux-2.6/net/ipv4/af_inet.c
===================================================================
--- linux-2.6.orig/net/ipv4/af_inet.c 2005-12-25 14:12:07.000000000 +0100
+++ linux-2.6/net/ipv4/af_inet.c 2005-12-25 16:35:15.000000000 +0100
@@ -775,10 +775,10 @@
err = devinet_ioctl(cmd, (void __user *)arg);
break;
default:
- if (!sk->sk_prot->ioctl ||
- (err = sk->sk_prot->ioctl(sk, cmd, arg)) ==
- -ENOIOCTLCMD)
- err = dev_ioctl(cmd, (void __user *)arg);
+ if (sk->sk_prot->ioctl)
+ err = sk->sk_prot->ioctl(sk, cmd, arg);
+ else
+ err = -ENOIOCTLCMD;
break;
}
return err;
Index: linux-2.6/net/ipv6/af_inet6.c
===================================================================
--- linux-2.6.orig/net/ipv6/af_inet6.c 2005-12-25 14:12:07.000000000 +0100
+++ linux-2.6/net/ipv6/af_inet6.c 2005-12-25 18:17:11.000000000 +0100
@@ -431,7 +431,6 @@
int inet6_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
{
struct sock *sk = sock->sk;
- int err = -EINVAL;
switch(cmd)
{
@@ -450,10 +449,9 @@
case SIOCSIFDSTADDR:
return addrconf_set_dstaddr((void __user *) arg);
default:
- if (!sk->sk_prot->ioctl ||
- (err = sk->sk_prot->ioctl(sk, cmd, arg)) == -ENOIOCTLCMD)
- return(dev_ioctl(cmd,(void __user *) arg));
- return err;
+ if (!sk->sk_prot->ioctl)
+ return -ENOIOCTLCMD;
+ return sk->sk_prot->ioctl(sk, cmd, arg);
}
/*NOTREACHED*/
return(0);
Index: linux-2.6/net/ipx/af_ipx.c
===================================================================
--- linux-2.6.orig/net/ipx/af_ipx.c 2005-12-25 14:12:07.000000000 +0100
+++ linux-2.6/net/ipx/af_ipx.c 2005-12-25 18:17:23.000000000 +0100
@@ -1884,7 +1884,7 @@
rc = -EINVAL;
break;
default:
- rc = dev_ioctl(cmd, argp);
+ rc = -ENOIOCTLCMD;
break;
}
Index: linux-2.6/net/irda/af_irda.c
===================================================================
--- linux-2.6.orig/net/irda/af_irda.c 2005-12-25 14:12:07.000000000 +0100
+++ linux-2.6/net/irda/af_irda.c 2005-12-25 18:17:37.000000000 +0100
@@ -1821,7 +1821,7 @@
return -EINVAL;
default:
IRDA_DEBUG(1, "%s(), doing device ioctl!\n", __FUNCTION__);
- return dev_ioctl(cmd, (void __user *) arg);
+ return -ENOIOCTLCMD;
}
/*NOTREACHED*/
Index: linux-2.6/net/llc/af_llc.c
===================================================================
--- linux-2.6.orig/net/llc/af_llc.c 2005-12-25 14:12:07.000000000 +0100
+++ linux-2.6/net/llc/af_llc.c 2005-12-25 18:17:52.000000000 +0100
@@ -960,7 +960,7 @@
static int llc_ui_ioctl(struct socket *sock, unsigned int cmd,
unsigned long arg)
{
- return dev_ioctl(cmd, (void __user *)arg);
+ return -ENOIOCTLCMD;
}
/**
Index: linux-2.6/net/netrom/af_netrom.c
===================================================================
--- linux-2.6.orig/net/netrom/af_netrom.c 2005-12-25 14:13:41.000000000
+0100
+++ linux-2.6/net/netrom/af_netrom.c 2005-12-25 18:18:07.000000000 +0100
@@ -1215,7 +1215,7 @@
return nr_rt_ioctl(cmd, argp);
default:
- return dev_ioctl(cmd, argp);
+ return -ENOIOCTLCMD;
}
return 0;
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html