Am Montag, 18. November 2002 15:29 schrieb Rob Miller:
> Hi,
>
> erm, my driver seems to be escaping into the wild, probably time to check
> in and get some things right before it gets too far...  honest, I just put
> it on my website without any effort at advertising for people to find on
> their own, but this morning someone pointed out that it was on
> openchallenge.org, I e-mailed the site and now I hear I might get more
> traffic....

OK, here we go.

        case CPAD_CGID:
          up (&dev->sem);
          if ((retval = put_user(dev->idev.idbus,     ((short *) arg) + 0))) return 
retval;
          if ((retval = put_user(dev->idev.idvendor,  ((short *) arg) + 1))) return 
retval;
          if ((retval = put_user(dev->idev.idproduct, ((short *) arg) + 2))) return 
retval;
          if ((retval = put_user(dev->idev.idversion, ((short *) arg) + 3))) return 
retval;
          return 0;

- Race condition. You must drop the lock only after the last put_user

  /* see if we are already in the middle of a write */
  if (dev->write_urb->status == -EINPROGRESS) {
    dbg (__FUNCTION__ " - already writing");
    goto exit;
  }

- Bad. Wait for completion in that case, or, if you are opened non blocking,
  return the right error code

    for (i=bytes_written,wcount=2;i>1 && wcount<CPAD_BUFMAX;)
      ((char *) dev->write_urb->transfer_buffer)[wcount++] = tmpbuf[--i];

- You might better copy into the buffer in first place instead of another copy

  unsigned char mdata[8];                       /* cpad mouse input buffer */

- You must not do that. You violate DMA requirements on some architectures.
  Allocate the buffer sperately with kmalloc.

        HTH
                Oliver



-------------------------------------------------------
This sf.net email is sponsored by: To learn the basics of securing
your web site with SSL, click here to get a FREE TRIAL of a Thawte
Server Certificate: http://www.gothawte.com/rd524.html
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to