Re: i865, drm_modeset_lock_all: BUG: unable to handle kernel NULL pointer dereference at 00000104

From: Meelis Roos
Date: Tue Aug 23 2016 - 06:17:37 EST


> > > Looks like an incorrect call to drm_encoder_cleanup() from the error
> > > path. If we hit the error path we have never called drm_encoder_init.
> > > Please try:
> > >
> > > diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
> > > index 47bdf9dad0d3..b9e5a63a7c9e 100644
> > > --- a/drivers/gpu/drm/i915/intel_dvo.c
> > > +++ b/drivers/gpu/drm/i915/intel_dvo.c
> > > @@ -554,7 +554,6 @@ void intel_dvo_init(struct drm_device *dev)
> > > return;
> > > }
> > >
> > > - drm_encoder_cleanup(&intel_encoder->base);
> > > kfree(intel_dvo);
> > > kfree(intel_connector);
> > > }
> >
> > It works - the BUG is gone.
> >
> > Now I get just
> > [drm:__intel_set_cpu_fifo_underrun_reporting [i915]] *ERROR* pipe A underrun
>
> Other than the annoying underrun, is everything else as expected? i.e.
> no connected outputs? Have we lost dvo detection?

Yes, as expected - there is no monitor connected.

--
Meelis Roos (mroos@xxxxxxxx)