diff options
| author | augustss <augustss@NetBSD.org> | 2001-12-06 00:11:18 +0000 |
|---|---|---|
| committer | augustss <augustss@NetBSD.org> | 2001-12-06 00:11:18 +0000 |
| commit | 5ef96ebab20153af5596132177eb3e4a8ed91cbd (patch) | |
| tree | 890ddeec091d6f4e226a06a87a8a674d6231feda /sys/dev | |
| parent | 8d9d5216ece4cbec1b304cf8139674f2790d33b0 (diff) | |
Don't crash on early calls to get the speeds.
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/ir/irframe_tty.c | 13 |
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); } |
