[PATCH] drm/bochs: Fix NULL dereference on atomic_disable helper

Daniel Vetter daniel at ffwll.ch
Mon Mar 11 13:23:58 UTC 2019


On Mon, Mar 11, 2019 at 02:07:16PM +0100, Gerd Hoffmann wrote:
>   Hi,
> 
> > > >  static void bochs_crtc_atomic_flush(struct drm_crtc *crtc,
> > > >  				    struct drm_crtc_state *old_crtc_state)
> > > >  {
> > > > @@ -66,6 +71,7 @@ static const struct drm_crtc_funcs bochs_crtc_funcs = {
> > > >  static const struct drm_crtc_helper_funcs bochs_helper_funcs = {
> > > >  	.mode_set_nofb = bochs_crtc_mode_set_nofb,
> > > >  	.atomic_enable = bochs_crtc_atomic_enable,
> > > > +	.atomic_disable = bochs_crtc_atomic_disable,
> > > 
> > > Shouldn't we make the callback optional instead of adding empty dummy
> > > functions to drivers?
> > 
> > Hi Gerd,
> > 
> > I agree, and I can work in this issue.
> > Just one question, should we make atomic_enable optional as well?
> 
> IIRC the drm code checks for the atomic_enable callback presence to
> figure whenever it should take the atomic or legacy code paths.

It should check for drm_driver->mode_config.funcs.atomic_commit for that,
see drm_drv_uses_atomic_modeset(). Anything else should be a bug.

Or do you mean the fallback to the old crtc helper prepare/commit
callbacks? We'd need to make all of them optional ofc, with atomic_
variants being preferred ofc.
-Daniel


> 
> So, I think that will not work.
> 
> cheers,
>   Gerd
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list