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

From: Daniel Vetter
Date: Mon Mar 11 2019 - 09:24:10 EST


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