[Intel-gfx] [PATCH] drm/i915: Fix crash when failing to parse MIPI VBT

Kumar, Shobhit shobhit.kumar at intel.com
Fri Jul 25 08:32:18 CEST 2014


On 7/24/2014 7:46 PM, rafael.barbalho at intel.com wrote:
> From: Rafael Barbalho <rafael.barbalho at intel.com>
>
> This particular nasty presented itself while trying to register the
> intelfb device (intel_fbdev.c). During the process of registering the device
> the driver will disable the crtc via i9xx_crtc_disable. These will
> also disable the panel using the generic mipi panel functions in
> dsi_mod_vbt_generic.c. The stale MIPI generic data sequence pointers would
> cause a crash within those functions. However, all of this is happening
> while console_lock is held from do_register_framebuffer inside fbcon.c. Which
> means that you got kernel log and just the device appearing to reboot/hang for
> no apparent reason.
>
> The fault started from the FB_EVENT_FB_REGISTERED event using the
> fb_notifier_call_chain call in fbcon.c.
>
> Cc: Shobhit Kumar <shobhit.kumar at intel.com>
> Signed-off-by: Rafael Barbalho <rafael.barbalho at intel.com>
> ---
>   drivers/gpu/drm/i915/intel_bios.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index 608ed30..a669550 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -878,7 +878,7 @@ err:
>
>   	/* error during parsing so set all pointers to null
>   	 * because of partial parsing */
> -	memset(dev_priv->vbt.dsi.sequence, 0, MIPI_SEQ_MAX);
> +	memset(dev_priv->vbt.dsi.sequence, 0, sizeof(dev_priv->vbt.dsi.sequence));

Ouch !! This mistake hurts. This is manifesting now because the VBT 
probably you tested had sequences not supported by the driver. I am 
influencing a TLV based VBT structure design for the sequence which when 
done will ensure proper parsing for all that is known and unknown 
pointers will remain NULL. But for now

Reviewed-by: Shobhit Kumar <shobhit.kumar at intel.com>

Regards
Shobhit



More information about the Intel-gfx mailing list