Skip to content
Snippets Groups Projects
  • Daniel Vetter's avatar
    928c2f0c
    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
    History
    drm/fb-helper: don't sleep for screen unblank when an oops is in progress
    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>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.