Hi Mikhail,
On 27.06.26 13:11, Mikhail Gavrilov wrote:
Hi Robert,
Thanks for catching this. You're right -- with DMA_ATTR_SKIP_CPU_SYNC
in get_sg_table(), the first begin_cpu_udmabuf() call no longer gets
the implicit CPU sync that the dma_map path used to provide, and the
explicit sync in the old else-branch only ran when ubuf->sg already
existed.
The fix correctly moves dma_sync_sgtable_for_cpu() so it runs in both
cases. The logic looks right to me.
This wouldn't reproduce on x86 since DMA is cache-coherent there
(dma_sync_* is a no-op), which is why I missed it -- it only matters
on non-coherent architectures. My apologies for the regression.
Reviewed-by: Mikhail Gavrilov <[email protected]>
thanks for the quick review! And no worries, I was very happy about your
patch, which is why I looked deeper into it in the first place.
Given the patch fixes a newly introduced regression (and is very
simple), do you think there's a chance to still get it into 7.1 - or
would it need to go via the usual 7.2/7.3 release schedule + backport?
Best regards
--
Robert Mader
Consultant Software Developer
Collabora Ltd.
Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, UK
Registered in England & Wales, no. 5513718