summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/os/devcfg.c
diff options
context:
space:
mode:
authorJerry Gilliam <Jerry.Gilliam@Sun.COM>2010-06-08 13:46:34 -0700
committerJerry Gilliam <Jerry.Gilliam@Sun.COM>2010-06-08 13:46:34 -0700
commitc8742f6496e41bcf40b54b09b48835c42f91e574 (patch)
tree30c6569140979ed1e980ac6c804767152de20246 /usr/src/uts/common/os/devcfg.c
parent837b568b3a2559f8c9b9403f95104271a85d129e (diff)
downloadillumos-joyent-c8742f6496e41bcf40b54b09b48835c42f91e574.tar.gz
6955559 ddi_driver_name() returns NULL to e_ddi_free_instance(), leading to a bad trap panic in in_drvwalk()
Diffstat (limited to 'usr/src/uts/common/os/devcfg.c')
-rw-r--r--usr/src/uts/common/os/devcfg.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/usr/src/uts/common/os/devcfg.c b/usr/src/uts/common/os/devcfg.c
index 7c38ca4220..2b3314bd13 100644
--- a/usr/src/uts/common/os/devcfg.c
+++ b/usr/src/uts/common/os/devcfg.c
@@ -937,7 +937,7 @@ init_node(dev_info_t *dip)
* to add a path-oriented alias for both paths.
*/
major = ddi_name_to_major(path);
- if (driver_installed(major) && (major != DEVI(dip)->devi_major) &&
+ if (driver_active(major) && (major != DEVI(dip)->devi_major) &&
(ndi_dev_is_persistent_node(dip) || driver_conf_allow_path_alias)) {
/* Mark node for rebind processing. */
@@ -2741,7 +2741,7 @@ ddi_compatible_driver_major(dev_info_t *dip, char **formp)
if (devi->devi_flags & DEVI_REBIND) {
p = devi->devi_rebinding_name;
major = ddi_name_to_major(p);
- if (driver_installed(major)) {
+ if (driver_active(major)) {
if (formp)
*formp = p;
return (major);
@@ -2764,7 +2764,7 @@ ddi_compatible_driver_major(dev_info_t *dip, char **formp)
/* find the highest precedence compatible form with a driver binding */
while ((p = prom_decode_composite_string(compat, len, p)) != NULL) {
major = ddi_name_to_major(p);
- if (driver_installed(major)) {
+ if (driver_active(major)) {
if (formp)
*formp = p;
return (major);
@@ -2776,7 +2776,7 @@ ddi_compatible_driver_major(dev_info_t *dip, char **formp)
* the node name has a driver binding.
*/
major = ddi_name_to_major(ddi_node_name(dip));
- if (driver_installed(major))
+ if (driver_active(major))
return (major);
/* no driver */
@@ -4285,13 +4285,13 @@ bind_dip(dev_info_t *dip, void *arg)
path = kmem_alloc(MAXPATHLEN, KM_SLEEP);
(void) ddi_pathname(dip, path);
pmajor = ddi_name_to_major(path);
- if (driver_installed(pmajor))
+ if (driver_active(pmajor))
major = pmajor;
kmem_free(path, MAXPATHLEN);
}
/* attempt unbind if current driver is incorrect */
- if (driver_installed(major) &&
+ if (driver_active(major) &&
(major != DEVI(dip)->devi_major))
(void) ndi_devi_unbind_driver(dip);
}
@@ -6686,7 +6686,7 @@ path_to_major(char *path)
/* check for path-oriented alias */
major = ddi_name_to_major(path);
- if (driver_installed(major)) {
+ if (driver_active(major)) {
NDI_CONFIG_DEBUG((CE_NOTE, "path_to_major: %s path bound %s\n",
path, ddi_major_to_name(major)));
return (major);
@@ -7261,7 +7261,7 @@ ddi_hold_installed_driver(major_t major)
*/
dnp = &devnamesp[major];
enter_driver(dnp);
- ASSERT(driver_installed(major));
+ ASSERT(driver_active(major));
if (dnp->dn_flags & DN_DRIVER_HELD) {
exit_driver(dnp);