Module Name: src Committed By: pgoyette Date: Wed Sep 5 22:04:51 UTC 2018
Modified Files: src/sys/kern [pgoyette-compat]: kern_module.c Log Message: After releasing the resources, make sure we don't retain pointer to them! To generate a diff of this commit: cvs rdiff -u -r1.130.2.18 -r1.130.2.19 src/sys/kern/kern_module.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/kern_module.c diff -u src/sys/kern/kern_module.c:1.130.2.18 src/sys/kern/kern_module.c:1.130.2.19 --- src/sys/kern/kern_module.c:1.130.2.18 Wed Sep 5 09:42:57 2018 +++ src/sys/kern/kern_module.c Wed Sep 5 22:04:51 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_module.c,v 1.130.2.18 2018/09/05 09:42:57 pgoyette Exp $ */ +/* $NetBSD: kern_module.c,v 1.130.2.19 2018/09/05 22:04:51 pgoyette Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_module.c,v 1.130.2.18 2018/09/05 09:42:57 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_module.c,v 1.130.2.19 2018/09/05 22:04:51 pgoyette Exp $"); #define _MODULE_INTERNAL @@ -1406,7 +1406,7 @@ module_do_unload(const char *name, bool kmem_free(mod->mod_required, mod->mod_arequired * sizeof(module_t)); if (mod->mod_source == MODULE_SOURCE_KERNEL) { - if (mod->mod_arequired != 0) { + if (mod->mod_required != NULL) { /* * release "required" resources - will be re-parsed * if the module is re-enabled @@ -1415,6 +1415,7 @@ module_do_unload(const char *name, bool mod->mod_arequired * sizeof(module_t *)); mod->mod_nrequired = 0; mod->mod_arequired = 0; + mod->mod_required = NULL; } if (load_requires_force) module_require_force(mod);