diff options
author | Alan Cox <alan@redhat.com> | 2007-11-07 04:27:34 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-11-07 07:14:24 -0500 |
commit | d0127539ea9b5fcfe1a1d7d4d57f12384da5190c (patch) | |
tree | ea533cf6c337c9d2fdd9641fb6e67bf895e3b5c8 | |
parent | 0fc00e2440b717e19bab1ae0015f03936bdf7967 (diff) |
[TTY]: Use tty_mode_ioctl() in network drivers.
We conciously make a change here - we permit mode and speed setting to
be done in things like SLIP mode. There isn't actually a technical
reason to disallow this. It's usually a silly thing to do but we can
do it and soemone might wish to do so.
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/hamradio/6pack.c | 26 | ||||
-rw-r--r-- | drivers/net/irda/irtty-sir.c | 7 | ||||
-rw-r--r-- | drivers/net/ppp_async.c | 10 | ||||
-rw-r--r-- | drivers/net/ppp_synctty.c | 10 | ||||
-rw-r--r-- | drivers/net/slip.c | 8 | ||||
-rw-r--r-- | drivers/net/wan/x25_asy.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/strip.c | 10 |
7 files changed, 20 insertions, 57 deletions
diff --git a/drivers/net/hamradio/6pack.c b/drivers/net/hamradio/6pack.c index e0119f6a3319..580cb4ab2af1 100644 --- a/drivers/net/hamradio/6pack.c +++ b/drivers/net/hamradio/6pack.c | |||
@@ -762,26 +762,20 @@ static int sixpack_ioctl(struct tty_struct *tty, struct file *file, | |||
762 | 762 | ||
763 | if (copy_from_user(&addr, | 763 | if (copy_from_user(&addr, |
764 | (void __user *) arg, AX25_ADDR_LEN)) { | 764 | (void __user *) arg, AX25_ADDR_LEN)) { |
765 | err = -EFAULT; | 765 | err = -EFAULT; |
766 | break; | 766 | break; |
767 | } | 767 | } |
768 | 768 | ||
769 | netif_tx_lock_bh(dev); | 769 | netif_tx_lock_bh(dev); |
770 | memcpy(dev->dev_addr, &addr, AX25_ADDR_LEN); | 770 | memcpy(dev->dev_addr, &addr, AX25_ADDR_LEN); |
771 | netif_tx_unlock_bh(dev); | 771 | netif_tx_unlock_bh(dev); |
772 | 772 | ||
773 | err = 0; | 773 | err = 0; |
774 | break; | 774 | break; |
775 | } | 775 | } |
776 | |||
777 | /* Allow stty to read, but not set, the serial port */ | ||
778 | case TCGETS: | ||
779 | case TCGETA: | ||
780 | err = n_tty_ioctl(tty, (struct file *) file, cmd, arg); | ||
781 | break; | ||
782 | 776 | ||
783 | default: | 777 | default: |
784 | err = -ENOIOCTLCMD; | 778 | err = tty_mode_ioctl(tty, file, cmd, arg); |
785 | } | 779 | } |
786 | 780 | ||
787 | sp_put(sp); | 781 | sp_put(sp); |
diff --git a/drivers/net/irda/irtty-sir.c b/drivers/net/irda/irtty-sir.c index 2c6f7be36e8a..fc753d7f674e 100644 --- a/drivers/net/irda/irtty-sir.c +++ b/drivers/net/irda/irtty-sir.c | |||
@@ -434,11 +434,6 @@ static int irtty_ioctl(struct tty_struct *tty, struct file *file, unsigned int c | |||
434 | IRDA_ASSERT(dev != NULL, return -1;); | 434 | IRDA_ASSERT(dev != NULL, return -1;); |
435 | 435 | ||
436 | switch (cmd) { | 436 | switch (cmd) { |
437 | case TCGETS: | ||
438 | case TCGETA: | ||
439 | err = n_tty_ioctl(tty, file, cmd, arg); | ||
440 | break; | ||
441 | |||
442 | case IRTTY_IOCTDONGLE: | 437 | case IRTTY_IOCTDONGLE: |
443 | /* this call blocks for completion */ | 438 | /* this call blocks for completion */ |
444 | err = sirdev_set_dongle(dev, (IRDA_DONGLE) arg); | 439 | err = sirdev_set_dongle(dev, (IRDA_DONGLE) arg); |
@@ -454,7 +449,7 @@ static int irtty_ioctl(struct tty_struct *tty, struct file *file, unsigned int c | |||
454 | err = -EFAULT; | 449 | err = -EFAULT; |
455 | break; | 450 | break; |
456 | default: | 451 | default: |
457 | err = -ENOIOCTLCMD; | 452 | err = tty_mode_ioctl(tty, file, cmd, arg); |
458 | break; | 453 | break; |
459 | } | 454 | } |
460 | return err; | 455 | return err; |
diff --git a/drivers/net/ppp_async.c b/drivers/net/ppp_async.c index 27f5b904f48e..8d278c87ba48 100644 --- a/drivers/net/ppp_async.c +++ b/drivers/net/ppp_async.c | |||
@@ -309,16 +309,11 @@ ppp_asynctty_ioctl(struct tty_struct *tty, struct file *file, | |||
309 | err = 0; | 309 | err = 0; |
310 | break; | 310 | break; |
311 | 311 | ||
312 | case TCGETS: | ||
313 | case TCGETA: | ||
314 | err = n_tty_ioctl(tty, file, cmd, arg); | ||
315 | break; | ||
316 | |||
317 | case TCFLSH: | 312 | case TCFLSH: |
318 | /* flush our buffers and the serial port's buffer */ | 313 | /* flush our buffers and the serial port's buffer */ |
319 | if (arg == TCIOFLUSH || arg == TCOFLUSH) | 314 | if (arg == TCIOFLUSH || arg == TCOFLUSH) |
320 | ppp_async_flush_output(ap); | 315 | ppp_async_flush_output(ap); |
321 | err = n_tty_ioctl(tty, file, cmd, arg); | 316 | err = tty_perform_flush(tty, arg); |
322 | break; | 317 | break; |
323 | 318 | ||
324 | case FIONREAD: | 319 | case FIONREAD: |
@@ -329,7 +324,8 @@ ppp_asynctty_ioctl(struct tty_struct *tty, struct file *file, | |||
329 | break; | 324 | break; |
330 | 325 | ||
331 | default: | 326 | default: |
332 | err = -ENOIOCTLCMD; | 327 | /* Try the various mode ioctls */ |
328 | err = tty_mode_ioctl(tty, file, cmd, arg); | ||
333 | } | 329 | } |
334 | 330 | ||
335 | ap_put(ap); | 331 | ap_put(ap); |
diff --git a/drivers/net/ppp_synctty.c b/drivers/net/ppp_synctty.c index ce64032a465a..00e2fb48b4ae 100644 --- a/drivers/net/ppp_synctty.c +++ b/drivers/net/ppp_synctty.c | |||
@@ -349,16 +349,11 @@ ppp_synctty_ioctl(struct tty_struct *tty, struct file *file, | |||
349 | err = 0; | 349 | err = 0; |
350 | break; | 350 | break; |
351 | 351 | ||
352 | case TCGETS: | ||
353 | case TCGETA: | ||
354 | err = n_tty_ioctl(tty, file, cmd, arg); | ||
355 | break; | ||
356 | |||
357 | case TCFLSH: | 352 | case TCFLSH: |
358 | /* flush our buffers and the serial port's buffer */ | 353 | /* flush our buffers and the serial port's buffer */ |
359 | if (arg == TCIOFLUSH || arg == TCOFLUSH) | 354 | if (arg == TCIOFLUSH || arg == TCOFLUSH) |
360 | ppp_sync_flush_output(ap); | 355 | ppp_sync_flush_output(ap); |
361 | err = n_tty_ioctl(tty, file, cmd, arg); | 356 | err = tty_perform_flush(tty, arg); |
362 | break; | 357 | break; |
363 | 358 | ||
364 | case FIONREAD: | 359 | case FIONREAD: |
@@ -369,7 +364,8 @@ ppp_synctty_ioctl(struct tty_struct *tty, struct file *file, | |||
369 | break; | 364 | break; |
370 | 365 | ||
371 | default: | 366 | default: |
372 | err = -ENOIOCTLCMD; | 367 | err = tty_mode_ioctl(tty, file, cmd, arg); |
368 | break; | ||
373 | } | 369 | } |
374 | 370 | ||
375 | sp_put(ap); | 371 | sp_put(ap); |
diff --git a/drivers/net/slip.c b/drivers/net/slip.c index 335b7cc80eba..251a3ce376ac 100644 --- a/drivers/net/slip.c +++ b/drivers/net/slip.c | |||
@@ -1218,14 +1218,8 @@ static int slip_ioctl(struct tty_struct *tty, struct file *file, unsigned int cm | |||
1218 | return 0; | 1218 | return 0; |
1219 | /* VSV changes end */ | 1219 | /* VSV changes end */ |
1220 | #endif | 1220 | #endif |
1221 | |||
1222 | /* Allow stty to read, but not set, the serial port */ | ||
1223 | case TCGETS: | ||
1224 | case TCGETA: | ||
1225 | return n_tty_ioctl(tty, file, cmd, arg); | ||
1226 | |||
1227 | default: | 1221 | default: |
1228 | return -ENOIOCTLCMD; | 1222 | return tty_mode_ioctl(tty, file, cmd, arg); |
1229 | } | 1223 | } |
1230 | } | 1224 | } |
1231 | 1225 | ||
diff --git a/drivers/net/wan/x25_asy.c b/drivers/net/wan/x25_asy.c index c48b1cc63fd5..1e89d4de1bb7 100644 --- a/drivers/net/wan/x25_asy.c +++ b/drivers/net/wan/x25_asy.c | |||
@@ -719,12 +719,8 @@ static int x25_asy_ioctl(struct tty_struct *tty, struct file *file, | |||
719 | return 0; | 719 | return 0; |
720 | case SIOCSIFHWADDR: | 720 | case SIOCSIFHWADDR: |
721 | return -EINVAL; | 721 | return -EINVAL; |
722 | /* Allow stty to read, but not set, the serial port */ | ||
723 | case TCGETS: | ||
724 | case TCGETA: | ||
725 | return n_tty_ioctl(tty, file, cmd, arg); | ||
726 | default: | 722 | default: |
727 | return -ENOIOCTLCMD; | 723 | return tty_mode_ioctl(tty, file, cmd, arg); |
728 | } | 724 | } |
729 | } | 725 | } |
730 | 726 | ||
diff --git a/drivers/net/wireless/strip.c b/drivers/net/wireless/strip.c index 4bd14b331862..88efe1bae58f 100644 --- a/drivers/net/wireless/strip.c +++ b/drivers/net/wireless/strip.c | |||
@@ -2735,16 +2735,8 @@ static int strip_ioctl(struct tty_struct *tty, struct file *file, | |||
2735 | return -EFAULT; | 2735 | return -EFAULT; |
2736 | return set_mac_address(strip_info, &addr); | 2736 | return set_mac_address(strip_info, &addr); |
2737 | } | 2737 | } |
2738 | /* | ||
2739 | * Allow stty to read, but not set, the serial port | ||
2740 | */ | ||
2741 | |||
2742 | case TCGETS: | ||
2743 | case TCGETA: | ||
2744 | return n_tty_ioctl(tty, file, cmd, arg); | ||
2745 | break; | ||
2746 | default: | 2738 | default: |
2747 | return -ENOIOCTLCMD; | 2739 | return tty_mode_ioctl(tty, file, cmd, arg); |
2748 | break; | 2740 | break; |
2749 | } | 2741 | } |
2750 | return 0; | 2742 | return 0; |