HomeFreeBSD

vt: Use a taskqueue to clear splash_cpu logos

Description

vt: Use a taskqueue to clear splash_cpu logos

vt_fini_logos() calls vtbuf_grow(), which reallocates the console
window's buffer using malloc(M_WAITOK). Because vt_fini_logos() is
called via a callout, we end up panicking if INVARIANTS is enabled.

Fix the problem simply by clearing the logos using a timed taskqueue.
taskqueue_thread is formally allowed to sleep; of course, if we actually
end up sleeping to satisfy the allocation, then we have bigger problems.

PR: 260896
Reviewed by: emaste
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D33932

Details

Provenance
markjAuthored on Jan 19 2022, 2:48 PM
Reviewer
emaste
Differential Revision
D33932: vt: Use a taskqueue to clear splash_cpu logos
Parents
rG2ad1999722ec: Add the Armv8.3-SPE registers
Branches
Unknown
Tags
Unknown