Module Name: src Committed By: rin Date: Thu Jul 15 05:07:50 UTC 2021
Modified Files: src/sys/arch/landisk/dev: btn_obio.c button.c buttonvar.h Log Message: Migrate btn_init() from btnopen() (with RUN_ONCE) to btn_obio_attach(). Fix uninitialized use of btn_event_list_lock in btn_event_register(). Found by LOCKDEBUG. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/arch/landisk/dev/btn_obio.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/landisk/dev/button.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/landisk/dev/buttonvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/landisk/dev/btn_obio.c diff -u src/sys/arch/landisk/dev/btn_obio.c:1.6 src/sys/arch/landisk/dev/btn_obio.c:1.7 --- src/sys/arch/landisk/dev/btn_obio.c:1.6 Sat Jan 21 19:44:29 2012 +++ src/sys/arch/landisk/dev/btn_obio.c Thu Jul 15 05:07:50 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: btn_obio.c,v 1.6 2012/01/21 19:44:29 nonaka Exp $ */ +/* $NetBSD: btn_obio.c,v 1.7 2021/07/15 05:07:50 rin Exp $ */ /*- * Copyright (C) 2005 NONAKA Kimihiro <non...@netbsd.org> @@ -28,7 +28,7 @@ #include "pwrsw_obio.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: btn_obio.c,v 1.6 2012/01/21 19:44:29 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: btn_obio.c,v 1.7 2021/07/15 05:07:50 rin Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -141,6 +141,7 @@ btn_obio_attach(device_t parent, device_ } sc->sc_mask |= BTN_RESET_BIT; + btn_init(); for (i = 0; i < NBUTTON; i++) { int idx = btnlist[i].idx; sc->sc_bev[idx].bev_name = btnlist[i].name; Index: src/sys/arch/landisk/dev/button.c diff -u src/sys/arch/landisk/dev/button.c:1.10 src/sys/arch/landisk/dev/button.c:1.11 --- src/sys/arch/landisk/dev/button.c:1.10 Sat Dec 19 21:25:03 2020 +++ src/sys/arch/landisk/dev/button.c Thu Jul 15 05:07:50 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: button.c,v 1.10 2020/12/19 21:25:03 thorpej Exp $ */ +/* $NetBSD: button.c,v 1.11 2021/07/15 05:07:50 rin Exp $ */ /* * Copyright (c) 2003 Wasabi Systems, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: button.c,v 1.10 2020/12/19 21:25:03 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: button.c,v 1.11 2021/07/15 05:07:50 rin Exp $"); #include <sys/param.h> #include <sys/conf.h> @@ -59,7 +59,6 @@ __KERNEL_RCSID(0, "$NetBSD: button.c,v 1 /* * event handler */ -static ONCE_DECL(btn_once); static LIST_HEAD(, btn_event) btn_event_list; static kmutex_t btn_event_list_lock; @@ -105,7 +104,7 @@ const struct cdevsw button_cdevsw = { .d_flag = 0 }; -static int +int btn_init(void) { @@ -161,11 +160,6 @@ btnopen(dev_t dev, int flag, int mode, s { int error; - error = RUN_ONCE(&btn_once, btn_init); - if (error) { - return error; - } - if (minor(dev) != 0) { return (ENODEV); } Index: src/sys/arch/landisk/dev/buttonvar.h diff -u src/sys/arch/landisk/dev/buttonvar.h:1.1 src/sys/arch/landisk/dev/buttonvar.h:1.2 --- src/sys/arch/landisk/dev/buttonvar.h:1.1 Fri Sep 1 21:26:18 2006 +++ src/sys/arch/landisk/dev/buttonvar.h Thu Jul 15 05:07:50 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: buttonvar.h,v 1.1 2006/09/01 21:26:18 uwe Exp $ */ +/* $NetBSD: buttonvar.h,v 1.2 2021/07/15 05:07:50 rin Exp $ */ /*- * Copyright (c) 2000 Zembu Labs, Inc. @@ -45,6 +45,8 @@ struct btn_event { LIST_ENTRY(btn_event) bev_list; }; +int btn_init(void); + void btn_settype(const char *type); int btn_event_register(struct btn_event *bev);