37 lines
1.4 KiB
Diff
37 lines
1.4 KiB
Diff
From 31a1e00a65d88e2f051fb6e9551340cc815d54d4 Mon Sep 17 00:00:00 2001
|
|
From: Helge Deller <deller@gmx.de>
|
|
Date: Sat, 2 Aug 2025 21:34:37 +0200
|
|
Subject: Revert "vgacon: Add check for vc_origin address range in
|
|
vgacon_scroll()"
|
|
|
|
This reverts commit 864f9963ec6b4b76d104d595ba28110b87158003.
|
|
|
|
The patch is wrong as it checks vc_origin against vc_screenbuf,
|
|
while in text mode it should compare against vga_vram_base.
|
|
|
|
As such it broke VGA text scrolling, which can be reproduced like this:
|
|
(1) boot a kernel that is configured to use text mode VGA-console
|
|
(2) type commands: ls -l /usr/bin | less -S
|
|
(3) scroll up/down with cursor-down/up keys
|
|
|
|
Reported-by: Jari Ruusu <jariruusu@protonmail.com>
|
|
Cc: stable@vger.kernel.org
|
|
Cc: Yi Yang <yiyang13@huawei.com>
|
|
Cc: GONG Ruiqi <gongruiqi1@huawei.com>
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
---
|
|
drivers/video/console/vgacon.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
--- a/drivers/video/console/vgacon.c
|
|
+++ b/drivers/video/console/vgacon.c
|
|
@@ -1168,7 +1168,7 @@ static bool vgacon_scroll(struct vc_data
|
|
c->vc_screenbuf_size - delta);
|
|
c->vc_origin = vga_vram_end - c->vc_screenbuf_size;
|
|
vga_rolled_over = 0;
|
|
- } else if (oldo - delta >= (unsigned long)c->vc_screenbuf)
|
|
+ } else
|
|
c->vc_origin -= delta;
|
|
c->vc_scr_end = c->vc_origin + c->vc_screenbuf_size;
|
|
scr_memsetw((u16 *) (c->vc_origin), c->vc_video_erase_char,
|