diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/io/ib/ibnex/ibnex.c | 1 | ||||
-rw-r--r-- | usr/src/uts/common/io/ib/ibnex/ibnex_hca.c | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/usr/src/uts/common/io/ib/ibnex/ibnex.c b/usr/src/uts/common/io/ib/ibnex/ibnex.c index 3516a96c43..fd22661dc3 100644 --- a/usr/src/uts/common/io/ib/ibnex/ibnex.c +++ b/usr/src/uts/common/io/ib/ibnex/ibnex.c @@ -2653,6 +2653,7 @@ ibnex_dm_callback(void *arg, ibdm_events_t flag) if (ddi_taskq_dispatch(ibnex.ibnex_taskq_id, ibnex_handle_hca_attach, guid, DDI_NOSLEEP) != DDI_SUCCESS) { + kmem_free(guid, sizeof (ib_guid_t)); IBTF_DPRINTF_L4("ibnex", "\tdm_callback: failed to " "dispatch HCA add event for guid %s", hca_guid); } diff --git a/usr/src/uts/common/io/ib/ibnex/ibnex_hca.c b/usr/src/uts/common/io/ib/ibnex/ibnex_hca.c index 26feabfa7c..c7d614e3c0 100644 --- a/usr/src/uts/common/io/ib/ibnex/ibnex_hca.c +++ b/usr/src/uts/common/io/ib/ibnex/ibnex_hca.c @@ -543,6 +543,7 @@ ddi_bus_config_op_t op, uint_t *flag, dev_info_t **child) &index, &pkey, &port_num) != IBNEX_SUCCESS) { IBTF_DPRINTF_L2("ibnex", "\tconfig_port_node: Invalid Service Name"); + kmem_free(device_name, len); return (IBNEX_FAILURE); } @@ -596,6 +597,7 @@ ibnex_handle_hca_attach(void *cb_arg) hca_list = ibdm_ibnex_get_hca_info_by_guid(hca_guid); if (hca_list == NULL) { ndi_devi_exit(phci, circ); + kmem_free(cb_arg, sizeof (ib_guid_t)); return; } ibnex_create_hcasvc_nodes(phci, hca_list->hl_hca_port_attr); @@ -605,4 +607,5 @@ ibnex_handle_hca_attach(void *cb_arg) } ibdm_ibnex_free_hca_list(hca_list); ndi_devi_exit(phci, circ); + kmem_free(cb_arg, sizeof (ib_guid_t)); } |