Module Name: src
Committed By: rin
Date: Sat Jun 5 02:27:08 UTC 2021
Modified Files:
src/sys/dev/hpc: hpcfb.c
Log Message:
hpcfb_cnattach(): If fbconf == NULL, this is for early console output
(used for hpcmips/VR41xx machines), and wsdisplay_preattach() should be
used instead of wsdisplay_cnattach().
Fix KASSERT failure for double attach of wsdisplay, reported in port-mips.
To generate a diff of this commit:
cvs rdiff -u -r1.61 -r1.62 src/sys/dev/hpc/hpcfb.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/hpc/hpcfb.c
diff -u src/sys/dev/hpc/hpcfb.c:1.61 src/sys/dev/hpc/hpcfb.c:1.62
--- src/sys/dev/hpc/hpcfb.c:1.61 Sat Apr 24 23:36:54 2021
+++ src/sys/dev/hpc/hpcfb.c Sat Jun 5 02:27:08 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: hpcfb.c,v 1.61 2021/04/24 23:36:54 thorpej Exp $ */
+/* $NetBSD: hpcfb.c,v 1.62 2021/06/05 02:27:08 rin Exp $ */
/*-
* Copyright (c) 1999
@@ -43,7 +43,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hpcfb.c,v 1.61 2021/04/24 23:36:54 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hpcfb.c,v 1.62 2021/06/05 02:27:08 rin Exp $");
#ifdef _KERNEL_OPT
#include "opt_hpcfb.h"
@@ -410,8 +410,17 @@ hpcfb_cnattach(struct hpcfb_fbconf *fbco
hpcfb_console_wsscreen.capabilities = hpcfb_console_dc.dc_rinfo.ri_caps;
hpcfb_allocattr(&hpcfb_console_dc,
WSCOL_WHITE, WSCOL_BLACK, 0, &defattr);
- wsdisplay_cnattach(&hpcfb_console_wsscreen, &hpcfb_console_dc,
- 0, 0, defattr);
+#if NBIVIDEO > 0
+ /*
+ * This is early console. Do not really attach wsdisplay.
+ */
+ if (fbconf == &__fbconf)
+ wsdisplay_preattach(&hpcfb_console_wsscreen, &hpcfb_console_dc,
+ 0, 0, defattr);
+ else
+#endif
+ wsdisplay_cnattach(&hpcfb_console_wsscreen, &hpcfb_console_dc,
+ 0, 0, defattr);
hpcfbconsole = 1;
return (0);