• Daniel Vetter's avatar
    fbdev: Debug knob to register without holding console_lock · c3c296b0
    Daniel Vetter authored
    When the usual fbcon legacy options are enabled we have
    ->register_framebuffer
      ->fb notifier chain calls into fbcon
        ->fbcon sets up console on new fbi
          ->fbi->set_par
            ->drm_fb_helper_set_par exercises full kms api
    
    And because of locking inversion hilarity all of register_framebuffer
    is done with the console lock held. Which means that the first time on
    driver load we exercise _all_ the kms code (all probe paths and
    modeset paths for everything connected) is under the console lock.
    That means if anything goes belly-up in that big pile of code nothing
    ever reaches logfiles (and the machine is dead).
    
    Usual tactic to debug that is to temporarily remove those console_lock
    calls to be able to capture backtraces. I'm fed up writing this patch
    and recompiling kernels. Hence this patch here to add an unsafe,
    kernel-taining option to do this at runtime.
    
    Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
    Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Cc: linux-fbdev@vger.kernel.org
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
    c3c296b0
fbmem.c 44.2 KB