• Nicolas Pitre's avatar
    vgacon: unconfuse vc_origin when using soft scrollback · bfd8d8fe
    Nicolas Pitre authored
    When CONFIG_VGACON_SOFT_SCROLLBACK is selected, the VGA display memory
    index and vc_visible_origin don't change when scrollback is activated.
    The actual screen content is saved away and the scrollbackdata is copied
    over it. However the vt code, and /dev/vcs devices in particular, still
    expect vc_origin to always point at the actual screen content not the
    displayed scrollback content.
    
    So adjust vc_origin to point at the saved screen content when scrollback
    is active and set it back to vc_visible_origin when restoring the screen.
    
    This fixes /dev/vcsa<n> that return scrollback content when they
    shouldn't (onli /dev/vcsa without a number should), and also fixes
    /dev/vcsu that should return scrollback content when scrollback is
    active but currently doesn't.
    
    An unnecessary call to vga_set_mem_top() is also removed.
    Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
    Cc: stable@vger.kernel.org # v4.19+
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    bfd8d8fe
vgacon.c 41.6 KB