[PATCH v2 4/5] drm/etnaviv: Reuse dma_fence_release.

From: Eric Anholt
Date: Wed Apr 12 2017 - 15:13:18 EST


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