summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authoraugustss <augustss@NetBSD.org>2001-12-06 00:11:18 +0000
committeraugustss <augustss@NetBSD.org>2001-12-06 00:11:18 +0000
commit5ef96ebab20153af5596132177eb3e4a8ed91cbd (patch)
tree890ddeec091d6f4e226a06a87a8a674d6231feda /sys/dev
parent8d9d5216ece4cbec1b304cf8139674f2790d33b0 (diff)
Don't crash on early calls to get the speeds.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ir/irframe_tty.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/sys/dev/ir/irframe_tty.c b/sys/dev/ir/irframe_tty.c
index 6896d224844..e0d87cfd0db 100644
--- a/sys/dev/ir/irframe_tty.c
+++ b/sys/dev/ir/irframe_tty.c
@@ -1,4 +1,4 @@
-/* $NetBSD: irframe_tty.c,v 1.10 2001/12/05 19:59:54 augustss Exp $ */
+/* $NetBSD: irframe_tty.c,v 1.11 2001/12/06 00:11:18 augustss Exp $ */
/*
* TODO
@@ -594,8 +594,12 @@ irframet_write(void *h, struct uio *uio, int flag)
(long)uio->uio_offset));
n = irda_sir_frame(buf, MAX_IRDA_FRAME, uio, sc->sc_ebofs);
- if (n < 0)
+ if (n < 0) {
+#ifdef IRFRAMET_DEBUG
+ printf("%s: irda_sir_frame() error=%d\n", __FUNCTION__, -n);
+#endif
return (-n);
+ }
return (irt_write_frame(tp, buf, n));
}
@@ -705,7 +709,10 @@ irframet_get_speeds(void *h, int *speeds)
DPRINTF(("%s: tp=%p\n", __FUNCTION__, tp));
- *speeds = irt_dongles[sc->sc_dongle].speedmask;
+ if (sc == NULL) /* during attach */
+ *speeds = IRDA_SPEEDS_SIR;
+ else
+ *speeds = irt_dongles[sc->sc_dongle].speedmask;
return (0);
}