[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 1/2] xen: swiotlb: Use swiotlb bouncing if kmalloc allocation demands it
On Fri, 2 May 2025, John Ernberg wrote: > Xen swiotlb support was missed when the patch set starting with > 4ab5f8ec7d71 ("mm/slab: decouple ARCH_KMALLOC_MINALIGN from > ARCH_DMA_MINALIGN") was merged. > > When running Xen on iMX8QXP, a SoC without IOMMU, the effect was that USB > transfers ended up corrupted when there was more than one URB inflight at > the same time. > > Add a call to dma_kmalloc_needs_bounce() to make sure that allocations too > small for DMA get bounced via swiotlb. > > Closes: > https://lore.kernel.org/linux-usb/ab2776f0-b838-4cf6-a12a-c208eb6aad59@xxxxxxxx/ > Fixes: 4ab5f8ec7d71 ("mm/slab: decouple ARCH_KMALLOC_MINALIGN from > ARCH_DMA_MINALIGN") > Cc: stable@xxxxxxxxxx # v6.5+ > Signed-off-by: John Ernberg <john.ernberg@xxxxxxxx> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > --- > > It's impossible to pick an exact fixes tag since this driver was missed > in the flagged patch set. I picked one I felt gave a decent enough picture > for someone coming across this later. > --- > drivers/xen/swiotlb-xen.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c > index 1f65795cf5d7..ef56a2500ed6 100644 > --- a/drivers/xen/swiotlb-xen.c > +++ b/drivers/xen/swiotlb-xen.c > @@ -217,6 +217,7 @@ static dma_addr_t xen_swiotlb_map_page(struct device > *dev, struct page *page, > * buffering it. > */ > if (dma_capable(dev, dev_addr, size, true) && > + !dma_kmalloc_needs_bounce(dev, size, dir) && > !range_straddles_page_boundary(phys, size) && > !xen_arch_need_swiotlb(dev, phys, dev_addr) && > !is_swiotlb_force_bounce(dev)) > -- > 2.49.0 >
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |