• Daniel Vetter's avatar
    drm/fb-helper: don't sleep for screen unblank when an oops is in progress · 928c2f0c
    Daniel Vetter authored
    Otherwise the system will burn even brighter and worse, leave the user
    wondering what's going on exactly.
    
    Since we already have a panic handler which will (try) to restore the
    entire fbdev console mode, we can just bail out.  Inspired by a patch from
    Konstantin Khlebnikov.  The callchain leading to this, cut&pasted from
    Konstantin's original patch:
    
    callstack:
    panic()
    bust_spinlocks(1)
    unblank_screen()
    vc->vc_sw->con_blank()
    fbcon_blank()
    fb_blank()
    info->fbops->fb_blank()
    drm_fb_helper_blank()
    drm_fb_helper_dpms()
    drm_modeset_lock_all()
    mutex_lock(&dev->mode_config.mutex)
    
    Note that the entire locking in the fb helper around panic/sysrq and kdbg
    is ...  non-existant.  So we have a decent change of blowing up
    everything.  But since reworking this ties in with funny concepts like the
    fbdev notifier chain or the impressive things which happen around
    console_lock while oopsing, I'll leave that as an exercise for braver
    souls than me.
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Konstantin Khlebnikov <khlebnikov@openvz.org>
    Cc: Dave Airlie <airlied@gmail.com>
    Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    928c2f0c
drm_fb_helper.c 44.9 KB