PERFORCE change 94325 for review
John Baldwin
jhb at FreeBSD.org
Thu Mar 30 20:55:42 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=94325
Change 94325 by jhb at jhb_slimer on 2006/03/30 20:55:32
Various diff-reduction and cleanups.
Affected files ...
.. //depot/projects/smpng/sys/kern/kern_linker.c#53 edit
Differences ...
==== //depot/projects/smpng/sys/kern/kern_linker.c#53 (text+ko) ====
@@ -473,7 +473,6 @@
const char *filename;
KLD_LOCK_ASSERT();
- lf = NULL;
filename = linker_basename(pathname);
KLD_DPF(FILE, ("linker_make_file: new file, filename=%s\n", filename));
@@ -484,11 +483,11 @@
lf->userrefs = 0;
lf->flags = 0;
lf->filename = linker_strdup(filename);
+ LINKER_GET_NEXT_FILE_ID(lf->id);
lf->ndeps = 0;
lf->deps = NULL;
STAILQ_INIT(&lf->common);
TAILQ_INIT(&lf->modules);
- LINKER_GET_NEXT_FILE_ID(lf->id);
TAILQ_INSERT_TAIL(&linker_files, lf, link);
return (lf);
}
@@ -522,7 +521,7 @@
error = mac_check_kld_unload(curthread->td_ucred);
if (error)
return (error);
-#endif
+#endif
KLD_LOCK_ASSERT();
KLD_DPF(FILE, ("linker_file_unload: lf->refs=%d\n", file->refs));
@@ -843,17 +842,19 @@
modname = pathname;
}
+ KLD_LOCK();
+ error = linker_load_module_internal(kldname, modname, NULL, NULL, &lf);
+ if (error) {
+ KLD_UNLOCK();
+ goto out;
+ }
#ifdef HWPMC_HOOKS
pkm.pm_file = lf->filename;
pkm.pm_address = (uintptr_t) lf->address;
PMC_CALL_HOOK(td, PMC_FN_KLD_LOAD, (void *) &pkm);
#endif
- KLD_LOCK();
- error = linker_load_module_internal(kldname, modname, NULL, NULL, &lf);
- if (error == 0) {
- lf->userrefs++;
- td->td_retval[0] = lf->id;
- }
+ lf->userrefs++;
+ td->td_retval[0] = lf->id;
KLD_UNLOCK();
out:
free(pathname, M_TEMP);
More information about the p4-projects
mailing list