If we follow the typical pattern of the base class being the first member, we can use the default dma_fence_free function. Signed-off-by: Eric Anholt <eric@xxxxxxxxxx> Cc: Lucas Stach <l.stach@xxxxxxxxxxxxxx> Cc: Russell King <linux+etnaviv@xxxxxxxxxxxxxxx> Cc: Christian Gmeiner <christian.gmeiner@xxxxxxxxx> Cc: etnaviv@xxxxxxxxxxxxxxxxxxxxx --- drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c index da48819ff2e6..0d26ca56e94b 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c @@ -998,8 +998,8 @@ static void hangcheck_disable(struct etnaviv_gpu *gpu) /* fence object management */ struct etnaviv_fence { - struct etnaviv_gpu *gpu; struct dma_fence base; + struct etnaviv_gpu *gpu; }; static inline struct etnaviv_fence *to_etnaviv_fence(struct dma_fence *fence) @@ -1031,20 +1031,13 @@ static bool etnaviv_fence_signaled(struct dma_fence *fence) return fence_completed(f->gpu, f->base.seqno); } -static void etnaviv_fence_release(struct dma_fence *fence) -{ - struct etnaviv_fence *f = to_etnaviv_fence(fence); - - kfree_rcu(f, base.rcu); -} - static const struct dma_fence_ops etnaviv_fence_ops = { .get_driver_name = etnaviv_fence_get_driver_name, .get_timeline_name = etnaviv_fence_get_timeline_name, .enable_signaling = etnaviv_fence_enable_signaling, .signaled = etnaviv_fence_signaled, .wait = dma_fence_default_wait, - .release = etnaviv_fence_release, + .release = dma_fence_free, }; static struct dma_fence *etnaviv_gpu_fence_alloc(struct etnaviv_gpu *gpu) -- 2.11.0 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel