dma-buf: drop the DAG approach for the dma_resv object v3
authorChristian König <christian.koenig@amd.com>
Thu, 11 Nov 2021 14:18:34 +0000 (15:18 +0100)
committerChristian König <christian.koenig@amd.com>
Fri, 1 Apr 2022 11:30:10 +0000 (13:30 +0200)
commit15325e3c1013035c2e3e266ba79a0c3bef905f25
tree7133f87d85a29cbf13d4d83dae57174d1b74f07a
parent3d7039e1e64980a5eb424373b3a5843b7d7891aa
dma-buf: drop the DAG approach for the dma_resv object v3

So far we had the approach of using a directed acyclic
graph with the dma_resv obj.

This turned out to have many downsides, especially it means
that every single driver and user of this interface needs
to be aware of this restriction when adding fences. If the
rules for the DAG are not followed then we end up with
potential hard to debug memory corruption, information
leaks or even elephant big security holes because we allow
userspace to access freed up memory.

Since we already took a step back from that by always
looking at all fences we now go a step further and stop
dropping the shared fences when a new exclusive one is
added.

v2: Drop some now superflous documentation
v3: Add some more documentation for the new handling.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20220321135856.1331-11-christian.koenig@amd.com
drivers/dma-buf/dma-resv.c
include/linux/dma-buf.h
include/linux/dma-resv.h