summaryrefslogtreecommitdiff
path: root/sys/modules/lua/lua.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/modules/lua/lua.c')
-rw-r--r--sys/modules/lua/lua.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/sys/modules/lua/lua.c b/sys/modules/lua/lua.c
index bfe548343e6..3518d8ef2ef 100644
--- a/sys/modules/lua/lua.c
+++ b/sys/modules/lua/lua.c
@@ -1,4 +1,4 @@
-/* $NetBSD: lua.c,v 1.27 2021/08/08 22:26:32 rin Exp $ */
+/* $NetBSD: lua.c,v 1.28 2022/03/31 19:30:17 pgoyette Exp $ */
/*
* Copyright (c) 2011 - 2017 by Marc Balmer <mbalmer@NetBSD.org>.
@@ -860,14 +860,25 @@ lua_modcmd(modcmd_t cmd, void *opaque)
switch (cmd) {
case MODULE_CMD_INIT:
#ifdef _MODULE
+ error = devsw_attach(lua_cd.cd_name, NULL, &bmajor,
+ &lua_cdevsw, &cmajor);
+ if (error) {
+ aprint_error("%s: unable to register devsw\n",
+ lua_cd.cd_name);
+ return error;
+ }
+
error = config_cfdriver_attach(&lua_cd);
- if (error)
+ if (error) {
+ devsw_detach(NULL, &lua_cdevsw);
return error;
+ }
error = config_cfattach_attach(lua_cd.cd_name,
&lua_ca);
if (error) {
config_cfdriver_detach(&lua_cd);
+ devsw_detach(NULL, &lua_cdevsw);
aprint_error("%s: unable to register cfattach\n",
lua_cd.cd_name);
return error;
@@ -877,19 +888,11 @@ lua_modcmd(modcmd_t cmd, void *opaque)
config_cfattach_detach(lua_cd.cd_name,
&lua_ca);
config_cfdriver_detach(&lua_cd);
+ devsw_detach(NULL, &lua_cdevsw);
aprint_error("%s: unable to register cfdata\n",
lua_cd.cd_name);
return error;
}
- error = devsw_attach(lua_cd.cd_name, NULL, &bmajor,
- &lua_cdevsw, &cmajor);
- if (error) {
- aprint_error("%s: unable to register devsw\n",
- lua_cd.cd_name);
- config_cfattach_detach(lua_cd.cd_name, &lua_ca);
- config_cfdriver_detach(&lua_cd);
- return error;
- }
config_attach_pseudo(lua_cfdata);
#endif
return 0;