HomeFreeBSD

vt(4): Merge several bug fixes and improvements

Description

vt(4): Merge several bug fixes and improvements

SVN revisions in this MFC:

269779 270705 270706 271180 271250 271253 271682 271684

Detailed commit list:

r269779:

fbd: Fix a bug where vt_fb_attach() success would be considered a failure

vt_fb_attach() currently always returns 0, but it could return a code
defined in errno.h. However, it doesn't return a CN_* code. So checking
its return value against CN_DEAD (which is 0) is incorrect, and in this
case, a success becomes a failure.

The consequence was unimportant, because the caller (drm_fb_helper.c)
would only log an error message in this case. The console would still
work.

Approved by:	nwhitehorn

r270705:

vt(4): Add cngrab() and cnungrab() callbacks

They are used when a panic occurs or when entering a DDB session for
instance.

cngrab() forces a vt-switch to the console window, no matter if the
original window is another terminal or an X session. However, cnungrab()
doesn't vt-switch back to the original window currently.

r270706:

drm: Don't "taskqueue" vt-switch if under DDB/panic situation

If DDB is active, we can't use a taskqueue thread to switch away from
the X window, because this thread can't run.

Reviewed by:	ray@
Approved by:	ray@

r271180:

vt_vga: vd_setpixel_t and vd_drawrect_t are noop in text mode

r271250:

vt(4): Change the terminal and buffer sizes, even without a font

This fixes a bug where scroll lock would not work for tty #0 when using
vt_vga's textmode. The reason was that this window is created with a
static 256x100 buffer, larger than the real size of 80x25.

Now, in vt_change_font() and vt_compute_drawable_area(), we still
perform operations even of the window has no font loaded (this is the
case in textmode here vw->vw_font == NULL). One of these operation
resizes the buffer accordingly.

In vt_compute_drawable_area(), we take the terminal size as is (ie.
80x25) for the drawable area.

The font argument to vt_set_border() is removed (it was never used) and
the code now uses the computed drawable area instead of re-doing its own
calculation.

Reported by:	Harald Schmalzbauer <h.schmalzbauer_omnilan.de>
Tested by:	Harald Schmalzbauer <h.schmalzbauer_omnilan.de>

r271253:

pause_sbt(): Take the cold path (ie. use DELAY()) if KDB is active

This fixes a panic in the i915 driver when one uses debug.kdb.enter=1
under vt(4).

PR:		[[ https://bugs.freebsd.org/193269 | 193269 ]]
Reported by:	emaste@
Submitted by:	avg@

r271682:

vt(4): Fix a LOR which occurs during a call to vt_upgrade()

Reported by:	kib@
Review:		https://reviews.freebsd.org/D785
Reviewed by:	ray@
Approved by:	ray@

r271684:

vt(4): Use vt_fb_drawrect() and vt_fb_setpixel() in all vt_fb-derivative

Review:		https://reviews.freebsd.org/D789
Reviewed by:	nwhitehorn
Approved by:	nwhitehorn

Approved by: re (gjb)

Details

Provenance
dumbbellAuthored on
Parents
rS271768: MFH (r271256, r271617): avoid segfault if PAM_RHOST nor PAM_TTY are unset.
Branches
Unknown
Tags
Unknown

Event Timeline