• Daniel Vetter's avatar
    fbcon: Disable accelerated scrolling · 39aead83
    Daniel Vetter authored
    So ever since syzbot discovered fbcon, we have solid proof that it's
    full of bugs. And often the solution is to just delete code and remove
    features, e.g.  50145474 ("fbcon: remove soft scrollback code").
    
    Now the problem is that most modern-ish drivers really only treat
    fbcon as an dumb kernel console until userspace takes over, and Oops
    printer for some emergencies. Looking at drm drivers and the basic
    vesa/efi fbdev drivers shows that only 3 drivers support any kind of
    acceleration:
    
    - nouveau, seems to be enabled by default
    - omapdrm, when a DMM remapper exists using remapper rewriting for
      y/xpanning
    - gma500, but that is getting deleted now for the GTT remapper trick,
      and the accelerated copyarea never set the FBINFO_HWACCEL_COPYAREA
      flag, so unused (and could be deleted already I think).
    
    No other driver supportes accelerated fbcon. And fbcon is the only
    user of this accel code (it's not exposed as uapi through ioctls),
    which means we could garbage collect fairly enormous amounts of code
    if we kill this.
    
    Plus because syzbot only runs on virtual hardware, and none of the
    drivers for that have acceleration, we'd remove a huge gap in testing.
    And there's no other even remotely comprehensive testing aside from
    syzbot.
    
    This patch here just disables the acceleration code by always
    redrawing when scrolling. The plan is that once this has been merged
    for well over a year in released kernels, we can start to go around
    and delete a lot of code.
    
    v2:
    - Drop a few more unused local variables, somehow I missed the
    compiler warnings (Sam)
    - Fix typo in comment (Jiri)
    - add a todo entry for the cleanup (Thomas)
    
    v3: Remove more unused variables (0day)
    Reviewed-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
    Reviewed-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
    Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
    Cc: Jiri Slaby <jirislaby@kernel.org>
    Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Ben Skeggs <bskeggs@redhat.com>
    Cc: nouveau@lists.freedesktop.org
    Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Jiri Slaby <jirislaby@kernel.org>
    Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
    Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: Peilin Ye <yepeilin.cs@gmail.com>
    Cc: George Kennedy <george.kennedy@oracle.com>
    Cc: Nathan Chancellor <natechancellor@gmail.com>
    Cc: Peter Rosin <peda@axentia.se>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20201029132229.4068359-1-daniel.vetter@ffwll.ch
    39aead83
todo.rst 26.3 KB