diff options
Diffstat (limited to 'drivers/net/hamradio/6pack.c')
| -rw-r--r-- | drivers/net/hamradio/6pack.c | 21 | 
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/net/hamradio/6pack.c b/drivers/net/hamradio/6pack.c index fb588301a05..689b9bd377a 100644 --- a/drivers/net/hamradio/6pack.c +++ b/drivers/net/hamradio/6pack.c @@ -34,6 +34,7 @@  #include <linux/ip.h>  #include <linux/tcp.h>  #include <linux/semaphore.h> +#include <linux/compat.h>  #include <asm/atomic.h>  #define SIXPACK_VERSION    "Revision: 0.3.0" @@ -777,6 +778,23 @@ static int sixpack_ioctl(struct tty_struct *tty, struct file *file,  	return err;  } +#ifdef CONFIG_COMPAT +static long sixpack_compat_ioctl(struct tty_struct * tty, struct file * file, +				unsigned int cmd, unsigned long arg) +{ +	switch (cmd) { +	case SIOCGIFNAME: +	case SIOCGIFENCAP: +	case SIOCSIFENCAP: +	case SIOCSIFHWADDR: +		return sixpack_ioctl(tty, file, cmd, +				(unsigned long)compat_ptr(arg)); +	} + +	return -ENOIOCTLCMD; +} +#endif +  static struct tty_ldisc_ops sp_ldisc = {  	.owner		= THIS_MODULE,  	.magic		= TTY_LDISC_MAGIC, @@ -784,6 +802,9 @@ static struct tty_ldisc_ops sp_ldisc = {  	.open		= sixpack_open,  	.close		= sixpack_close,  	.ioctl		= sixpack_ioctl, +#ifdef CONFIG_COMPAT +	.compat_ioctl	= sixpack_compat_ioctl, +#endif  	.receive_buf	= sixpack_receive_buf,  	.write_wakeup	= sixpack_write_wakeup,  };  |