Re: [patch 03/12] USB: serial: keyspan_pda: Consolidate room query

From: Thomas Gleixner
Date: Wed Oct 14 2020 - 12:17:57 EST


On Wed, Oct 14 2020 at 12:14, Alan Stern wrote:
> On Wed, Oct 14, 2020 at 04:52:18PM +0200, Thomas Gleixner wrote:
>> From: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
>>
>> Having two copies of the same code doesn't make the code more readable and
>> allocating a buffer of 1 byte for a synchronous operation is a pointless
>> exercise.
>
> Not so. In fact, it is required, because a portion of a structure
> cannot be mapped for DMA unless it is aligned at a cache line boundary.
>
>> Add a byte buffer to struct keyspan_pda_private which can be used
>> instead. The buffer is only used in open() and tty->write().
>
> This won't work.

Ok.

>> + res = usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev, 0),
>> + 6, /* write_room */
>> + USB_TYPE_VENDOR | USB_RECIP_INTERFACE | USB_DIR_IN,
>> + 0, /* value */
>> + 0, /* index */
>> + &priv->query_buf,
>> + 1,
>> + 2000);
>
> Instead, consider using the new usb_control_msg_recv() API. But it
> might be better to allocate the buffer once and for all.

Let me have a look.

Thanks,

tglx