Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/dev
> Date: Tue, 04 Oct 2022 12:12:15 +0900
> From: Ryo ONODERA <ryo%tetera.org@localhost>
>
> "Taylor R Campbell" <riastradh%netbsd.org@localhost> writes:
>
> > console(4), constty(4): Rip off the kernel lock.
>
> After introduction of MP-safe console/constty, my kernel stopped
> just after genfb(4) detection.
> LOCKDEBUG, DIAGNOSTIC, DEBUG options does not provide any additional
> information with me.
> Could you take a look at my problem?
Sorry about that -- I've reverted this change and the MP-safe cons(4)
change for now, but let's try to figure out what's wrong with them so
I can reapply them and get the console paths out of the kernel lock
for good.
Can you try the attached patch on top?
From 2de03f1efbe5b73d42dc2f59730c17b99c04b3b9 Mon Sep 17 00:00:00 2001
From: Taylor R Campbell <riastradh%NetBSD.org@localhost>
Date: Tue, 4 Oct 2022 05:24:49 +0000
Subject: [PATCH] squash! constty(4): Make MP-safe.
- Fix initialization of ok in cn_redirect.
---
sys/dev/cons.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/sys/dev/cons.c b/sys/dev/cons.c
index f4f9a1602221..e621292a6b4a 100644
--- a/sys/dev/cons.c
+++ b/sys/dev/cons.c
@@ -463,7 +463,7 @@ cn_redirect(dev_t *devp, int is_read, int *error, struct tty **ctpp)
dev_t dev = *devp;
struct tty *ctp;
int s;
- bool ok;
+ bool ok = false;
*error = ENXIO;
*ctpp = NULL;
@@ -472,18 +472,17 @@ cn_redirect(dev_t *devp, int is_read, int *error, struct tty **ctpp)
(cn_tab == NULL || (cn_tab->cn_pri != CN_REMOTE))) {
if (is_read) {
*error = 0;
- ok = false;
goto out;
}
tty_acquire(ctp);
*ctpp = ctp;
dev = ctp->t_dev;
} else if (cn_tab == NULL) {
- ok = false;
goto out;
} else {
dev = cn_tab->cn_dev;
}
+ ok = true;
*devp = dev;
out: pserialize_read_exit(s);
return ok;
Home |
Main Index |
Thread Index |
Old Index