vserver 2.0 rc7
[linux-2.6.git] / drivers / serial / 68328serial.c
index 36f2fb0..db92a0c 100644 (file)
@@ -1055,28 +1055,23 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,
                                 (arg ? CLOCAL : 0));
                        return 0;
                case TIOCGSERIAL:
-                       error = verify_area(VERIFY_WRITE, (void *) arg,
-                                               sizeof(struct serial_struct));
-                       if (error)
-                               return error;
-                       return get_serial_info(info,
+                       if (access_ok(VERIFY_WRITE, (void *) arg,
+                                               sizeof(struct serial_struct)))
+                               return get_serial_info(info,
                                               (struct serial_struct *) arg);
+                       return -EFAULT;
                case TIOCSSERIAL:
                        return set_serial_info(info,
                                               (struct serial_struct *) arg);
                case TIOCSERGETLSR: /* Get line status register */
-                       error = verify_area(VERIFY_WRITE, (void *) arg,
-                               sizeof(unsigned int));
-                       if (error)
-                               return error;
-                       else
-                           return get_lsr_info(info, (unsigned int *) arg);
-
+                       if (access_ok(VERIFY_WRITE, (void *) arg,
+                                               sizeof(unsigned int));
+                               return get_lsr_info(info, (unsigned int *) arg);
+                       return -EFAULT;
                case TIOCSERGSTRUCT:
-                       error = verify_area(VERIFY_WRITE, (void *) arg,
-                                               sizeof(struct m68k_serial));
-                       if (error)
-                               return error;
+                       if (!access_ok(VERIFY_WRITE, (void *) arg,
+                                               sizeof(struct m68k_serial)))
+                               return -EFAULT;
                        copy_to_user((struct m68k_serial *) arg,
                                    info, sizeof(struct m68k_serial));
                        return 0;