Message ID | 20220819002905.82095-1-dakr@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | Fixes for vc4 hotplug rework | expand |
Hi, On Fri, Aug 19, 2022 at 02:29:04AM +0200, Danilo Krummrich wrote: > (Hardware) resources which are bound to the driver and device lifecycle > must not be accessed after the device and driver are unbound. > > However, the DRM device isn't freed as long as the last user closed it, > hence userspace can still call into the driver. > > Therefore protect the critical sections which are accessing those > resources with drm_dev_enter() and drm_dev_exit(). Ah good catch, thanks > Fixes: 9872c7a31921 ("drm/vc4: plane: Switch to drmm_universal_plane_alloc()") > Signed-off-by: Danilo Krummrich <dakr@redhat.com> > --- > drivers/gpu/drm/vc4/vc4_drv.h | 1 + > drivers/gpu/drm/vc4/vc4_plane.c | 25 +++++++++++++++++++++++++ > 2 files changed, 26 insertions(+) > > diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h > index 418a8242691f..80da9a9337cc 100644 > --- a/drivers/gpu/drm/vc4/vc4_drv.h > +++ b/drivers/gpu/drm/vc4/vc4_drv.h > @@ -341,6 +341,7 @@ struct vc4_hvs { > > struct vc4_plane { > struct drm_plane base; > + struct drm_device *dev; That pointer already exists in struct drm_plane Looks good otherwise Maxime
Hi Maxime, On 8/19/22 09:26, Maxime Ripard wrote: > Hi, > > On Fri, Aug 19, 2022 at 02:29:04AM +0200, Danilo Krummrich wrote: >> (Hardware) resources which are bound to the driver and device lifecycle >> must not be accessed after the device and driver are unbound. >> >> However, the DRM device isn't freed as long as the last user closed it, >> hence userspace can still call into the driver. >> >> Therefore protect the critical sections which are accessing those >> resources with drm_dev_enter() and drm_dev_exit(). > > Ah good catch, thanks > >> Fixes: 9872c7a31921 ("drm/vc4: plane: Switch to drmm_universal_plane_alloc()") >> Signed-off-by: Danilo Krummrich <dakr@redhat.com> >> --- >> drivers/gpu/drm/vc4/vc4_drv.h | 1 + >> drivers/gpu/drm/vc4/vc4_plane.c | 25 +++++++++++++++++++++++++ >> 2 files changed, 26 insertions(+) >> >> diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h >> index 418a8242691f..80da9a9337cc 100644 >> --- a/drivers/gpu/drm/vc4/vc4_drv.h >> +++ b/drivers/gpu/drm/vc4/vc4_drv.h >> @@ -341,6 +341,7 @@ struct vc4_hvs { >> >> struct vc4_plane { >> struct drm_plane base; >> + struct drm_device *dev; > > That pointer already exists in struct drm_plane Oops, I've sent a v2. Also addressing your comment from the other patch. - Danilo > > Looks good otherwise > > Maxime