diff options
author | nwhitehorn <nwhitehorn@FreeBSD.org> | 2013-09-09 16:51:35 +0000 |
---|---|---|
committer | nwhitehorn <nwhitehorn@FreeBSD.org> | 2013-09-09 16:51:35 +0000 |
commit | 46d2ccf617ff9baf3b87537399402617432f19cb (patch) | |
tree | ef959d07875006465906d0fb96ffc27f11bfe421 | |
parent | ad118345b8fafdcaeab53082010e04a3816f8d40 (diff) | |
download | FreeBSD-src-46d2ccf617ff9baf3b87537399402617432f19cb.zip FreeBSD-src-46d2ccf617ff9baf3b87537399402617432f19cb.tar.gz |
Make the primary name of the OF console device /dev/ofwcons, and only
alias it to the contents of the output property if it is defined. This
avoids a panic when booting machines (QEMU) where the output-device
property is not defined.
Since output-device is free-form and potentially conflicts with other
entries in /dev, I also am not sure we should be doing the aliasing at
all, but this at least makes things work again.
Approved by: re (kib)
-rw-r--r-- | sys/dev/ofw/ofw_console.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/sys/dev/ofw/ofw_console.c b/sys/dev/ofw/ofw_console.c index e71d5c1..01f86bf 100644 --- a/sys/dev/ofw/ofw_console.c +++ b/sys/dev/ofw/ofw_console.c @@ -88,17 +88,19 @@ cn_drvinit(void *unused) if (ofw_consdev.cn_pri != CN_DEAD && ofw_consdev.cn_name[0] != '\0') { - if ((options = OF_finddevice("/options")) == -1 || - OF_getprop(options, "output-device", output, - sizeof(output)) == -1) - return; + tp = tty_alloc(&ofw_ttydevsw, NULL); + tty_makedev(tp, NULL, "%s", "ofwcons"); + /* * XXX: This is a hack and it may result in two /dev/ttya * XXX: devices on platforms where the sab driver works. */ - tp = tty_alloc(&ofw_ttydevsw, NULL); - tty_makedev(tp, NULL, "%s", output); - tty_makealias(tp, "ofwcons"); + if ((options = OF_finddevice("/options")) == -1 || + OF_getprop(options, "output-device", output, + sizeof(output)) == -1) + return; + if (strlen(output) > 0) + tty_makealias(tp, output); } } |