Bug 204039 - Console scrollback function causes OOPS and console freeze
Summary: Console scrollback function causes OOPS and console freeze
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Console/Framebuffers (show other bugs)
Hardware: x86-64 Linux
: P1 high
Assignee: James Simmons
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-07-01 01:40 UTC by kr
Modified: 2019-09-29 15:54 UTC (History)
0 users

See Also:
Kernel Version: 4.19.19+
Subsystem:
Regression: No
Bisected commit-id:


Attachments
Oops message appearing when pressing SHIFT-PgUp (3.82 KB, text/plain)
2019-07-01 01:40 UTC, kr
Details

Description kr 2019-07-01 01:40:51 UTC
Created attachment 283505 [details]
Oops message appearing when pressing SHIFT-PgUp

Accessing the VGA console scrollback buffer with SHIFT+PgUp results in a kernel OOPS since 4.19.19.

Steps to reproduce:

1. Boot a system with kernel 4.19.19 and a standard VGA console
2. Press SHIFT-PgUp twice

Expected result: The screen should scroll twice
Actual result: The screen scrolls once, followed by the console freezing

I was able to capture the Oops message on an SSH console (see attachment).

I've reproduced this on two different systems, both x86_64 but otherwise quite different, hardware-wise. The bug exists in all kernels from 4.19.19 onwards, all the way up to and including 5.1.15.

Reverting commit f4abbb16ed9add95be72e85b9b5db8529e736b74 ("vgacon: unconfuse vc_origin when using soft scrollback") fixes the issue. Here's the offending patch on the LKML: https://lkml.org/lkml/2019/1/29/418

Note: Not sure if it's relevant, but the kernel configuration in question is based on the Slackware "huge" kernel, and as such has compiled-in support for speakup (CONFIG_SPEAKUP=y and CONFIG_SPEAKUP_SYNTH_<various>=y). I have not (yet) tried reproducing this bug using non-speakup kernels.
Comment 1 kr 2019-07-01 16:48:47 UTC
Having done some further testing I can confirm that indeed, the bug does not surface when no speakup support is compiled in or loaded.

However, all it takes is "modprobe speakup" for the bug to be instantly reproducible with shift-PgUp.
Comment 2 kr 2019-09-29 15:54:06 UTC
The bug is still present in 5.3.1.

modprobe speakup

followed by on or two Shift-PgUp keypresses triggers an oops.

Note You need to log in before you can comment on or make changes to this bug.