summaryrefslogtreecommitdiff
path: root/sys/kern/kern_module.c
diff options
context:
space:
mode:
authorMaxim Konovalov <maxim@FreeBSD.org>2006-06-15 08:53:09 +0000
committerMaxim Konovalov <maxim@FreeBSD.org>2006-06-15 08:53:09 +0000
commit059d68dea6538607311da1414fae1b373e4ce74d (patch)
tree62d29f4b2f9ae1b9174785a841dea097fa319886 /sys/kern/kern_module.c
parentcecd2b6c706b8ce2da8a8fd4b7c9f783ce3c3f5a (diff)
Notes
Diffstat (limited to 'sys/kern/kern_module.c')
-rw-r--r--sys/kern/kern_module.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/kern/kern_module.c b/sys/kern/kern_module.c
index f92d39cb2814..97317172218e 100644
--- a/sys/kern/kern_module.c
+++ b/sys/kern/kern_module.c
@@ -136,20 +136,20 @@ module_register(const moduledata_t *data, linker_file_t container)
size_t namelen;
module_t newmod;
- MOD_SLOCK;
+ MOD_XLOCK;
newmod = module_lookupbyname(data->name);
if (newmod != NULL) {
- MOD_SUNLOCK;
+ MOD_XUNLOCK;
printf("module_register: module %s already exists!\n",
data->name);
return (EEXIST);
}
- MOD_SUNLOCK;
namelen = strlen(data->name) + 1;
newmod = malloc(sizeof(struct module) + namelen, M_MODULE, M_WAITOK);
- if (newmod == NULL)
+ if (newmod == NULL) {
+ MOD_XUNLOCK;
return (ENOMEM);
- MOD_XLOCK;
+ }
newmod->refs = 1;
newmod->id = nextid++;
newmod->name = (char *)(newmod + 1);