• Rafael Barbalho's avatar
    drm/i915: Fix crash when failing to parse MIPI VBT · 1fee660a
    Rafael Barbalho authored
    commit ed3b6679 upstream.
    
    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.
    
    This regression has been introduced in
    
    commit d3b542fc
    Author: Shobhit Kumar <shobhit.kumar@intel.com>
    Date:   Mon Apr 14 11:00:34 2014 +0530
    
        drm/i915: Add parsing support for new MIPI blocks in VBT
    
    Cc: Shobhit Kumar <shobhit.kumar@intel.com>
    Signed-off-by: default avatarRafael Barbalho <rafael.barbalho@intel.com>
    Reviewed-by: default avatarShobhit Kumar <shobhit.kumar@intel.com>
    [danvet: Add regression citation.]
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    1fee660a
intel_bios.c 34.9 KB