diff options
| author | Shaun Pereira <spereira@tusc.com.au> | 2006-03-21 23:58:08 -0800 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2006-03-21 23:58:08 -0800 | 
| commit | 89bbfc95d65839d6ae23ddab8a3cc5af4ae88383 (patch) | |
| tree | f2d5e55533f07109680d7ed7e56cc85222703c69 /include/linux/net.h | |
| parent | 67b52e554ba973947704fcb4fc284d7bab9ab931 (diff) | |
[NET]: allow 32 bit socket ioctl in 64 bit kernel
Since the register_ioctl32_conversion() patch in the kernel is now obsolete,
provide another method to allow 32 bit user space ioctls to reach the kernel.
Signed-off-by: Shaun Pereira <spereira@tusc.com.au>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/net.h')
| -rw-r--r-- | include/linux/net.h | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/include/linux/net.h b/include/linux/net.h index 152fa6551fd8..84a490e5f0a1 100644 --- a/include/linux/net.h +++ b/include/linux/net.h @@ -143,6 +143,8 @@ struct proto_ops {  				      struct poll_table_struct *wait);  	int		(*ioctl)     (struct socket *sock, unsigned int cmd,  				      unsigned long arg); +	int	 	(*compat_ioctl) (struct socket *sock, unsigned int cmd, +				      unsigned long arg);  	int		(*listen)    (struct socket *sock, int len);  	int		(*shutdown)  (struct socket *sock, int flags);  	int		(*setsockopt)(struct socket *sock, int level, @@ -251,6 +253,8 @@ SOCKCALL_UWRAP(name, poll, (struct file *file, struct socket *sock, struct poll_  	      (file, sock, wait)) \  SOCKCALL_WRAP(name, ioctl, (struct socket *sock, unsigned int cmd, \  			 unsigned long arg), (sock, cmd, arg)) \ +SOCKCALL_WRAP(name, compat_ioctl, (struct socket *sock, unsigned int cmd, \ +			 unsigned long arg), (sock, cmd, arg)) \  SOCKCALL_WRAP(name, listen, (struct socket *sock, int len), (sock, len)) \  SOCKCALL_WRAP(name, shutdown, (struct socket *sock, int flags), (sock, flags)) \  SOCKCALL_WRAP(name, setsockopt, (struct socket *sock, int level, int optname, \ @@ -275,6 +279,7 @@ static const struct proto_ops name##_ops = {			\  	.getname	= __lock_##name##_getname,	\  	.poll		= __lock_##name##_poll,		\  	.ioctl		= __lock_##name##_ioctl,	\ +	.compat_ioctl	= __lock_##name##_compat_ioctl,	\  	.listen		= __lock_##name##_listen,	\  	.shutdown	= __lock_##name##_shutdown,	\  	.setsockopt	= __lock_##name##_setsockopt,	\ @@ -283,6 +288,7 @@ static const struct proto_ops name##_ops = {			\  	.recvmsg	= __lock_##name##_recvmsg,	\  	.mmap		= __lock_##name##_mmap,		\  }; +  #endif  #define MODULE_ALIAS_NETPROTO(proto) \ | 
