Re: [PATCH v3 1/2] drivers: usb/core/urb: Add URB_FREE_COHERENT

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

 



On Wed. 22 Jun 2022 at 00:13, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Tue, Jun 21, 2022 at 11:59:16PM +0900, Vincent MAILHOL wrote:
> > I (probably wrongly) assumed that urb::transfer_buffer_length was the
> > allocated length and urb::actual_length was what was actually being
> > transferred. Right now, I am just confused. Seems that I need to study
> > a bit more and understand the real purpose of
> > urb::transfer_buffer_length because I still fail to understand in
> > which situation this can be different from the allocated length.
>
> urb->transfer_buffer_length is the amount of data that the driver wants
> to send or expects to receive.  urb->actual_length is the amount of data
> that was actually sent or actually received.
>
> Neither of these values has to be the same as the size of the buffer --
> but they better not be bigger!

Thanks. Now things are a bit clearer.
I guess that for the outcoming URB what I proposed made no sense. For
incoming URB, I guess that most of the drivers want to set
urb::transfer_buffer once for all with the allocated size and never
touch it again.

Maybe the patch only makes sense of the incoming URB. Would it make
sense to keep it but with an additional check to trigger a dmesg
warning if this is used on an outcoming endpoint and with additional
comment that the URB_FREE_COHERENT requires urb::transfer_buffer to be
the allocated size?

Yours sincerely,
Vincent Mailhol



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

  Powered by Linux