Am 24.06.21 um 10:12 schrieb Christoph Hellwig:
On Thu, Jun 24, 2021 at 10:07:14AM +0200, Christian König wrote:
The key point is that accessing the underlying pages even when DMA-bufs are
backed by system memory is illegal. Daniel even created a patch which
mangles the page pointers in sg_tables used by DMA-buf to make sure that
people don't try to use them.
Which is another goddamn layering violation of a subsystem that has no
business at all poking into the scatterlist structure, yes.
Completely agree, but it is also the easiest way to get away from the
scatterlist as trasnport vehicle for the dma_addresses.
[SNIP]
My best plan to get out of this mess is that we change the DMA-buf
interface to use an array of dma_addresses instead of the sg_table object
and I have already been working on this actively the last few month.
Awesome! I have a bit of related work on the DMA mapping subsystems, so
let's sync up as soon as you have some first sketches.
Don't start cheering to fast.
I've already converted a bunch of the GPU drivers, but there are at
least 6 GPU still needing to be fixed and on top of that comes VA-API
and a few others.
What are your plans for the DMA mapping subsystem?
Btw, one thing I noticed when looking over the dma-buf instances is that
there is a lot of duplicated code for creating a sg_table from pages,
and then mapping it. It would be good if we could move toward common
helpers instead of duplicating that all over again.
Can you give an example?
Thanks,
Christian.