Hi Eric, Am Mittwoch, den 12.04.2017, 12:12 -0700 schrieb Eric Anholt: > If we follow the typical pattern of the base class being the first > member, we can use the default dma_fence_free function. Sorry, I don't like this change. While it provides a bit of code simplification, it also bakes the implicit assumption into the code that dma_fence is the first struct member without any checks to validate this assumption. I would at least expect a build bug assert, but then the current bit of code to keep this explicit and self-documenting is probably just as good. Regards, Lucas > 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) _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel