Re: [RFC PATCH] usb: dwc3: ep0: Fix mem corruption on OUT transfers of more than 512 bytes

From: Kishon Vijay Abraham I
Date: Wed Jun 10 2015 - 01:34:34 EST


Hi,

On Tuesday 09 June 2015 10:54 PM, Alan Stern wrote:
On Tue, 9 Jun 2015, Kishon Vijay Abraham I wrote:

But with a bounce buffer that's only 512 bytes long, you can never send
an entire packet's worth of data. If the bounce buffer is 1024 bytes

for control endpoint, 512 bytes should be sufficient to send entire packet right?

Yes, you're right. I had confused control endpoints with bulk
endpoints, where the maxpacket size is 1024. Sorry for the mistake.

no problem.

then you can send the entire first packet. When that's done, you can
send the second packet. And so on. It wouldn't be quite as fast, but
for ep0 that shouldn't matter.

right! this is a variant of what I tried to implement in chained TRB [1].
$subject tries just to avoid memory corruption instead of actually trying to
receive all the data.

Okay. If you take the $SUBJECT approach, I think it would be better
for an URB submission to fail than for the host controller to send only
part of the data.

Could be but we also want to prevent mem corruption in the case of a faulty host to be more robust.

Thanks
Kishon
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/