summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorriastradh <riastradh@NetBSD.org>2022-04-17 09:25:24 +0000
committerriastradh <riastradh@NetBSD.org>2022-04-17 09:25:24 +0000
commitaebb1bb3f2aacaa5c3a3643b9d0a63e296dc8828 (patch)
tree19a374c59806b112c05400b155d1d70ced1d85ab /sys/dev
parent4632402396ab5490295a2a1b07a2e03a6745a0c9 (diff)
ucom(4): Make sure rndsource is attached before use and detach.
Reported-by: syzbot+04fb6786e0cf873905e8@syzkaller.appspotmail.com
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/usb/ucom.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/dev/usb/ucom.c b/sys/dev/usb/ucom.c
index 08d529819e9..52cd744e3f5 100644
--- a/sys/dev/usb/ucom.c
+++ b/sys/dev/usb/ucom.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ucom.c,v 1.132 2022/04/07 21:47:02 riastradh Exp $ */
+/* $NetBSD: ucom.c,v 1.133 2022/04/17 09:25:24 riastradh Exp $ */
/*
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ucom.c,v 1.132 2022/04/07 21:47:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ucom.c,v 1.133 2022/04/17 09:25:24 riastradh Exp $");
#ifdef _KERNEL_OPT
#include "opt_usb.h"
@@ -299,6 +299,9 @@ ucom_attach(device_t parent, device_t self, void *aux)
mutex_init(&sc->sc_lock, MUTEX_DEFAULT, IPL_SOFTUSB);
cv_init(&sc->sc_statecv, "ucomstate");
+ rnd_attach_source(&sc->sc_rndsource, device_xname(sc->sc_dev),
+ RND_TYPE_TTY, RND_FLAG_DEFAULT);
+
SIMPLEQ_INIT(&sc->sc_ibuff_empty);
SIMPLEQ_INIT(&sc->sc_ibuff_full);
SIMPLEQ_INIT(&sc->sc_obuff_free);
@@ -361,9 +364,6 @@ ucom_attach(device_t parent, device_t self, void *aux)
DPRINTF("tty_attach %#jx", (uintptr_t)tp, 0, 0, 0);
tty_attach(tp);
- rnd_attach_source(&sc->sc_rndsource, device_xname(sc->sc_dev),
- RND_TYPE_TTY, RND_FLAG_DEFAULT);
-
if (!pmf_device_register(self, NULL, NULL))
aprint_error_dev(self, "couldn't establish power handler\n");