diff options
Diffstat (limited to 'drivers/net/hamradio/mkiss.c')
-rw-r--r-- | drivers/net/hamradio/mkiss.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/net/hamradio/mkiss.c b/drivers/net/hamradio/mkiss.c index db4b7f1603f6..66e88bd59caa 100644 --- a/drivers/net/hamradio/mkiss.c +++ b/drivers/net/hamradio/mkiss.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
27 | #include <linux/in.h> | 27 | #include <linux/in.h> |
28 | #include <linux/inet.h> | 28 | #include <linux/inet.h> |
29 | #include <linux/slab.h> | ||
29 | #include <linux/tty.h> | 30 | #include <linux/tty.h> |
30 | #include <linux/errno.h> | 31 | #include <linux/errno.h> |
31 | #include <linux/netdevice.h> | 32 | #include <linux/netdevice.h> |
@@ -36,6 +37,7 @@ | |||
36 | #include <linux/skbuff.h> | 37 | #include <linux/skbuff.h> |
37 | #include <linux/if_arp.h> | 38 | #include <linux/if_arp.h> |
38 | #include <linux/jiffies.h> | 39 | #include <linux/jiffies.h> |
40 | #include <linux/compat.h> | ||
39 | 41 | ||
40 | #include <net/ax25.h> | 42 | #include <net/ax25.h> |
41 | 43 | ||
@@ -898,6 +900,23 @@ static int mkiss_ioctl(struct tty_struct *tty, struct file *file, | |||
898 | return err; | 900 | return err; |
899 | } | 901 | } |
900 | 902 | ||
903 | #ifdef CONFIG_COMPAT | ||
904 | static long mkiss_compat_ioctl(struct tty_struct *tty, struct file *file, | ||
905 | unsigned int cmd, unsigned long arg) | ||
906 | { | ||
907 | switch (cmd) { | ||
908 | case SIOCGIFNAME: | ||
909 | case SIOCGIFENCAP: | ||
910 | case SIOCSIFENCAP: | ||
911 | case SIOCSIFHWADDR: | ||
912 | return mkiss_ioctl(tty, file, cmd, | ||
913 | (unsigned long)compat_ptr(arg)); | ||
914 | } | ||
915 | |||
916 | return -ENOIOCTLCMD; | ||
917 | } | ||
918 | #endif | ||
919 | |||
901 | /* | 920 | /* |
902 | * Handle the 'receiver data ready' interrupt. | 921 | * Handle the 'receiver data ready' interrupt. |
903 | * This function is called by the 'tty_io' module in the kernel when | 922 | * This function is called by the 'tty_io' module in the kernel when |
@@ -972,6 +991,9 @@ static struct tty_ldisc_ops ax_ldisc = { | |||
972 | .open = mkiss_open, | 991 | .open = mkiss_open, |
973 | .close = mkiss_close, | 992 | .close = mkiss_close, |
974 | .ioctl = mkiss_ioctl, | 993 | .ioctl = mkiss_ioctl, |
994 | #ifdef CONFIG_COMPAT | ||
995 | .compat_ioctl = mkiss_compat_ioctl, | ||
996 | #endif | ||
975 | .receive_buf = mkiss_receive_buf, | 997 | .receive_buf = mkiss_receive_buf, |
976 | .write_wakeup = mkiss_write_wakeup | 998 | .write_wakeup = mkiss_write_wakeup |
977 | }; | 999 | }; |