summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrameshc <none@none>2007-02-27 07:19:57 -0800
committerrameshc <none@none>2007-02-27 07:19:57 -0800
commit651d856bef3edc901fc0821d2462b7cfd806a735 (patch)
tree840682941d466ff481f9fc0d2f13a4afb18a94a1
parente1c679fa4b0ab8c4bcaa6263974ca0c46e5b027f (diff)
downloadillumos-gate-651d856bef3edc901fc0821d2462b7cfd806a735.tar.gz
6517350 Memory leaks in px_lib_map_vconfig()
-rw-r--r--usr/src/uts/sun4u/io/pci/pci_pci.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/usr/src/uts/sun4u/io/pci/pci_pci.c b/usr/src/uts/sun4u/io/pci/pci_pci.c
index 108b9f5140..0ae4b02424 100644
--- a/usr/src/uts/sun4u/io/pci/pci_pci.c
+++ b/usr/src/uts/sun4u/io/pci/pci_pci.c
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -952,8 +952,10 @@ ppb_initchild(dev_info_t *child)
* errors.
*/
if (ppb->parent_bus == PCIE_PCIECAP_DEV_TYPE_PCIE_DEV) {
- if (pcie_init_ppd(child) == NULL)
+ if (pcie_init_ppd(child) == NULL) {
+ pci_config_teardown(&config_handle);
return (DDI_FAILURE);
+ }
}
/*
@@ -968,8 +970,7 @@ ppb_initchild(dev_info_t *child)
"Workaround: value = %x\n", n);
pcix_set_cmd_reg(child, n);
}
-
- /* since cached, teardown config handle in ppb_uninitchild() */
+ pci_config_teardown(&config_handle);
return (DDI_SUCCESS);
}