• Daniel Vetter's avatar
    fbcon: Use delayed work for cursor · 3b0fb6ab
    Daniel Vetter authored
    Allows us to delete a bunch of hand-rolled stuff using a timer plus a
    separate work). Also to simplify the code we initialize the
    cursor_work completely when we allocate the fbcon_ops structure,
    instead of trying to cope with console re-initialization.
    
    The motiviation here is that fbcon code stops using the fb_info.queue,
    which helps with locking issues around cleanup and all that in a later
    patch.
    
    Also note that this allows us to ditch the hand-rolled work cleanup in
    fbcon_exit - we already call fbcon_del_cursor_timer, which takes care
    of everything. Plus this was racy anyway.
    
    v2:
    - Only INIT_DELAYED_WORK when kzalloc succeeded (Tetsuo)
    - Explain that we replace both the timer and a work with the combined
      delayed_work (Javier)
    Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
    Acked-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    Cc: Daniel Vetter <daniel@ffwll.ch>
    Cc: Claudio Suarez <cssk@net-c.es>
    Cc: Du Cheng <ducheng2@gmail.com>
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220405210335.3434130-7-daniel.vetter@ffwll.ch
    3b0fb6ab
fbcon.c 82.3 KB