On Fri, Nov 29, 2019 at 03:19:36PM +0100, Boris Brezillon wrote: > On Fri, 29 Nov 2019 14:13:33 +0000 > Steven Price <steven.price@xxxxxxx> wrote: > > > On 29/11/2019 13:56, Boris Brezillon wrote: > > > I've spent hours chasing a memory corruption that was caused by > > > insertion of an extra field field before ->base. Let's document the > > > fact that base has to be the first field in panfrost_gem_object. > > > > > > Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx> > > > > This seems to be a limitation imposed by the gem_create_object() > > callback - e.g. it's assumed that kfree() can be directly called on the > > result. Useful to have the documentation though. > > Oh, you're right, I didn't catch that one. As a general rule of thumb, never insert anything before a struct member called base. Even more so if it's of the same kind of $thing, but less spezialed. This pattern is so common it's fairly often not documented anywhere. -Daniel > > > > > Reviewed-by: Steven Price <steven.price@xxxxxxx> > > > > Steve > > > > > --- > > > Changes in v2: > > > * Use the proper prefix in the subject line > > > --- > > > drivers/gpu/drm/panfrost/panfrost_gem.h | 4 ++++ > > > 1 file changed, 4 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/panfrost/panfrost_gem.h b/drivers/gpu/drm/panfrost/panfrost_gem.h > > > index b3517ff9630c..d480261fc177 100644 > > > --- a/drivers/gpu/drm/panfrost/panfrost_gem.h > > > +++ b/drivers/gpu/drm/panfrost/panfrost_gem.h > > > @@ -10,6 +10,10 @@ > > > struct panfrost_mmu; > > > > > > struct panfrost_gem_object { > > > + /* > > > + * Must be the first element because we're using some of the > > > + * drm_gem_shmem helpers. > > > + */ > > > struct drm_gem_shmem_object base; > > > struct sg_table *sgts; > > > > > > > > > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel