git: 17a4a163df85 - main - Revert "Fill in cn_name in struct consdev."
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 23 Jul 2022 21:44:25 UTC
The branch main has been updated by jrtc27:
URL: https://cgit.FreeBSD.org/src/commit/?id=17a4a163df85e2cbe20e4fbdb03c56085e8079e6
commit 17a4a163df85e2cbe20e4fbdb03c56085e8079e6
Author: Jessica Clarke <jrtc27@FreeBSD.org>
AuthorDate: 2022-07-23 21:44:19 +0000
Commit: Jessica Clarke <jrtc27@FreeBSD.org>
CommitDate: 2022-07-23 21:44:19 +0000
Revert "Fill in cn_name in struct consdev."
This reverts commit 82a21151cf1d7a3e9e95b9edbbf74ac10f386d6a.
This commit was made to aid debugging before consoles are initialised so
that they can more easily be identified from a debugger. However,
various consoles (cfecons, ofwcons, mambocons and rcons) all check
whether cn_name[0] is non-zero to see they are attached or not, and so
this breaks that (perhaps misguided) approach. On RISC-V this results in
rcons (the SBI firmware console driver) racing with the real UART driver
and so input gets probabilistically lost on the real UART (around 2/3 of
the time for me on QEMU).
Moreover, the name given to CONSOLE_DRIVER isn't necessarily the same as
what eventually gets written to cn_name, such as cfecons vs cfe, rcons
vs riscv, ttyj0 vs aju, ttyv0 vs sc, ttyuN vs uart_phyp/opal and all
manner of things vs ucom, so in some cases this is in fact misleading as
the name will change after attaching.
Discussed with: cperciva
---
sys/sys/cons.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/sys/sys/cons.h b/sys/sys/cons.h
index fec7f6c01b84..ad73b258df6d 100644
--- a/sys/sys/cons.h
+++ b/sys/sys/cons.h
@@ -104,7 +104,6 @@ extern struct tty *constty; /* Temporary virtual console. */
static struct consdev name = { \
.cn_ops = &ops, \
.cn_arg = (arg), \
- .cn_name = #name, \
}; \
DATA_SET(cons_set, name)