diff options
-rw-r--r-- | drivers/staging/dgrp/dgrp_tty.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/drivers/staging/dgrp/dgrp_tty.c b/drivers/staging/dgrp/dgrp_tty.c index 5796de8ddbe4..5647068b9385 100644 --- a/drivers/staging/dgrp/dgrp_tty.c +++ b/drivers/staging/dgrp/dgrp_tty.c | |||
@@ -2265,9 +2265,7 @@ static int get_modem_info(struct ch_struct *ch, unsigned int *value) | |||
2265 | | ((mlast & DM_RI) ? TIOCM_RNG : 0) | 2265 | | ((mlast & DM_RI) ? TIOCM_RNG : 0) |
2266 | | ((mlast & DM_DSR) ? TIOCM_DSR : 0) | 2266 | | ((mlast & DM_DSR) ? TIOCM_DSR : 0) |
2267 | | ((mlast & DM_CTS) ? TIOCM_CTS : 0); | 2267 | | ((mlast & DM_CTS) ? TIOCM_CTS : 0); |
2268 | put_user(mlast, (unsigned int __user *) value); | 2268 | return put_user(mlast, (unsigned int __user *) value); |
2269 | |||
2270 | return 0; | ||
2271 | } | 2269 | } |
2272 | 2270 | ||
2273 | /* | 2271 | /* |
@@ -2285,7 +2283,8 @@ static int set_modem_info(struct ch_struct *ch, unsigned int command, | |||
2285 | if (error == 0) | 2283 | if (error == 0) |
2286 | return -EFAULT; | 2284 | return -EFAULT; |
2287 | 2285 | ||
2288 | get_user(arg, (unsigned int __user *) value); | 2286 | if (get_user(arg, (unsigned int __user *) value)) |
2287 | return -EFAULT; | ||
2289 | mval |= ((arg & TIOCM_RTS) ? DM_RTS : 0) | 2288 | mval |= ((arg & TIOCM_RTS) ? DM_RTS : 0) |
2290 | | ((arg & TIOCM_DTR) ? DM_DTR : 0); | 2289 | | ((arg & TIOCM_DTR) ? DM_DTR : 0); |
2291 | 2290 | ||
@@ -2616,12 +2615,8 @@ static int dgrp_tty_ioctl(struct tty_struct *tty, unsigned int cmd, | |||
2616 | return 0; | 2615 | return 0; |
2617 | 2616 | ||
2618 | case TIOCGSOFTCAR: | 2617 | case TIOCGSOFTCAR: |
2619 | rc = access_ok(VERIFY_WRITE, (void __user *) arg, | 2618 | return put_user(C_CLOCAL(tty) ? 1 : 0, |
2620 | sizeof(long)); | 2619 | (unsigned long __user *) arg); |
2621 | if (rc == 0) | ||
2622 | return -EFAULT; | ||
2623 | put_user(C_CLOCAL(tty) ? 1 : 0, (unsigned long __user *) arg); | ||
2624 | return 0; | ||
2625 | 2620 | ||
2626 | case TIOCMGET: | 2621 | case TIOCMGET: |
2627 | rc = access_ok(VERIFY_WRITE, (void __user *) arg, | 2622 | rc = access_ok(VERIFY_WRITE, (void __user *) arg, |
@@ -2844,17 +2839,16 @@ static int dgrp_tty_ioctl(struct tty_struct *tty, unsigned int cmd, | |||
2844 | break; | 2839 | break; |
2845 | 2840 | ||
2846 | case DIGI_GETCUSTOMBAUD: | 2841 | case DIGI_GETCUSTOMBAUD: |
2847 | rc = access_ok(VERIFY_WRITE, (void __user *) arg, sizeof(int)); | 2842 | if (put_user(ch->ch_custom_speed, (unsigned int __user *) arg)) |
2848 | if (rc == 0) | ||
2849 | return -EFAULT; | 2843 | return -EFAULT; |
2850 | put_user(ch->ch_custom_speed, (unsigned int __user *) arg); | ||
2851 | break; | 2844 | break; |
2852 | 2845 | ||
2853 | case DIGI_SETCUSTOMBAUD: | 2846 | case DIGI_SETCUSTOMBAUD: |
2854 | { | 2847 | { |
2855 | int new_rate; | 2848 | int new_rate; |
2856 | 2849 | ||
2857 | get_user(new_rate, (unsigned int __user *) arg); | 2850 | if (get_user(new_rate, (unsigned int __user *) arg)) |
2851 | return -EFAULT; | ||
2858 | dgrp_set_custom_speed(ch, new_rate); | 2852 | dgrp_set_custom_speed(ch, new_rate); |
2859 | 2853 | ||
2860 | break; | 2854 | break; |