Hi Yoshihiro, sorry for not taking care of this earlier, today is a public holiday here and thus I'm not working much over the long weekend.
On Mon, Jun 10, 2019 at 11:13:07AM +0000, Yoshihiro Shimoda wrote: > I have another way to avoid the issue. But it doesn't seem that a good way > though... > According to the commit that adding blk_queue_virt_boundary() [3], > this is needed for vhci_hcd as a workaround so that if we avoid to call it > on xhci-hcd driver, the issue disappeared. What do you think? > JFYI, I pasted a tentative patch in the end of email [4]. Oh, I hadn't even look at why USB uses blk_queue_virt_boundary, and it seems like the usage is wrong, as it doesn't follow the same rules as all the others. I think your patch goes in the right direction, but instead of comparing a hcd name it needs to be keyed of a flag set by the driver (I suspect there is one indicating native SG support, but I can't quickly find it), and we need an alternative solution for drivers that don't see like vhci. I suspect just limiting the entire transfer size to something that works for a single packet for them would be fine.