Re: question on skel_read func of usb_skeleton.c‏

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday 12 July 2013 04:49:54 WangChen wrote:
> Hi, Oliver,
> Regarding skel_write, I see your current desgin only refuse its execution  when> WRITES_IN_FLIGHT are on the fly, but this is not blocking IO due to write() will not wait before callback returns, right? Do you think it's unnecessary to support blocking IO on write or any special reason else?


        /*
         * limit the number of URBs in flight to stop a user from using up all
         * RAM
         */
        if (!(file->f_flags & O_NONBLOCK)) {
                if (down_interruptible(&dev->limit_sem)) {

The limit_sem will cause write() to wait for IO to finish,
if the limit is reached

                        retval = -ERESTARTSYS;
                        goto exit;
                }
        } else {
                if (down_trylock(&dev->limit_sem)) {
                        retval = -EAGAIN;

Unless non-blocking IO is used. In that case we return.

                        goto exit;
                }
        }

Blocking IO is perfectly well supported. To keep under the limit you don't
have to wait for the IO you started. Any IO will serve the purpose.

	Regards
		Oliver

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux