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:39:42 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

[ 10.499523] agpgart-intel 0000:00:00.0: Intel 865 Chipset
[ 10.499623] agpgart-intel 0000:00:00.0: detected gtt size: 131072K total, 131072K mappable
[ 10.499928] agpgart-intel 0000:00:00.0: detected 16384K stolen memory
[ 10.500939] [drm] Memory usable by graphics device = 128M
[ 10.501029] [drm] Replacing VGA console driver
[ 10.502804] Console: switching to colour dummy device 80x25
[ 10.504746] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 10.504760] [drm] Driver supports precise vblank timestamp query.
[ 11.210224] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[ 11.237197] [drm] RC6 disabled, disabling runtime PM support
[ 11.237407] [drm] initialized overlay support
[ 11.362560] [drm:__intel_set_cpu_fifo_underrun_reporting [i915]] *ERROR* pipe A underrun
[ 11.418776] i915 0000:00:02.0: No connectors reported connected with modes
[ 11.418792] [drm] Cannot find any crtc or sizes - going 1024x768
[ 11.421148] fbcon: inteldrmfb (fb0) is primary device
[ 11.448292] Console: switching to colour frame buffer device 128x48
[ 11.458643] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device


--
Meelis Roos (mroos@xxxxxxxx)