Am Mittwoch 18 Juli 2007 schrieb eczema:
> +       if ((set == 0) && priv->TIOSTATUS == TIOCM_RTS) {
> +               dbg("%s TIOCMSET RESET called !!!", __FUNCTION__);
> +               priv->TIOSTATUS = 0;
> +               if (iuu_reset(port, 0x0C))
> +                       return -EIO;
> +               current->state = TASK_INTERRUPTIBLE;
> +               schedule_timeout(1 + 500 * HZ / 1000);

If you are really interrupted, you'll break the time requirements.

+static int iuu_tiocmget(struct usb_serial_port *port, struct file *file)
+{
+       u8 *st;
+       st = kmalloc(sizeof(u8), GFP_KERNEL);
+       iuu_status(port, st);

kmalloc() can fail.

+       if (st[0] & IUU_FULLCARD_IN) {
+               dbg("%s  card present ! value returned %i ", __FUNCTION__,
+                   TIOCM_CD);
+               kfree(st);
+               return 0;
+       } else {
+               kfree(st);
+               return TIOCM_CD;
+       }

You might unify the cleanup

+iuu_ioctl(struct usb_serial_port *port, struct file *file, unsigned int cmd,
+         unsigned long arg)
+{
+
+       int mask;
+
+       dbg("%s (%d) cmd = 0x%04x", __FUNCTION__, port->number, cmd);
+
+       get_user(mask, (unsigned long *)arg);

This can fail

+       case TCFLSH:
+               return (-1);

Meaning what?

+       if (priv->write_busy)
+               return -1;

What for if you don't ever read write_busy?

+       tty->low_latency = 1;

Should be done in probe()

+       dbg("%s -  port %d", __FUNCTION__, port->number);
+       usb_clear_halt(serial->dev, port->write_urb->pipe);
+       usb_clear_halt(serial->dev, port->read_urb->pipe);

Is this really needed?


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to