diff options
| author | Anurag S. Maskey <Anurag.Maskey@Sun.COM> | 2008-12-24 11:14:39 -0500 |
|---|---|---|
| committer | Anurag S. Maskey <Anurag.Maskey@Sun.COM> | 2008-12-24 11:14:39 -0500 |
| commit | 4ac67f0276a8313b5cefec38af347b94b7bfb526 (patch) | |
| tree | f028fa345594682efbc023412e2255af29a6484a /usr/src/cmd/rcm_daemon | |
| parent | bf85a12b7c81d0745d5a8aff65baeff50006cde9 (diff) | |
| download | illumos-joyent-4ac67f0276a8313b5cefec38af347b94b7bfb526.tar.gz | |
6745288 libdladm is executing open() of dld control device everywhere
Diffstat (limited to 'usr/src/cmd/rcm_daemon')
| -rw-r--r-- | usr/src/cmd/rcm_daemon/common/aggr_rcm.c | 55 | ||||
| -rw-r--r-- | usr/src/cmd/rcm_daemon/common/ip_rcm.c | 18 | ||||
| -rw-r--r-- | usr/src/cmd/rcm_daemon/common/network_rcm.c | 18 | ||||
| -rw-r--r-- | usr/src/cmd/rcm_daemon/common/vlan_rcm.c | 41 | ||||
| -rw-r--r-- | usr/src/cmd/rcm_daemon/common/vnic_rcm.c | 43 |
5 files changed, 103 insertions, 72 deletions
diff --git a/usr/src/cmd/rcm_daemon/common/aggr_rcm.c b/usr/src/cmd/rcm_daemon/common/aggr_rcm.c index afb08c7a58..70e99932b1 100644 --- a/usr/src/cmd/rcm_daemon/common/aggr_rcm.c +++ b/usr/src/cmd/rcm_daemon/common/aggr_rcm.c @@ -23,8 +23,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - /* * This RCM module adds support to the RCM framework for AGGR links */ @@ -103,6 +101,8 @@ static dl_aggr_t aggr_tail; static mutex_t aggr_list_lock; static int events_registered = 0; +static dladm_handle_t dld_handle = NULL; + /* * RCM module interface prototypes */ @@ -181,6 +181,8 @@ rcm_mod_init(void) aggr_tail.da_next = NULL; (void) mutex_init(&aggr_list_lock, NULL, NULL); + (void) dladm_open(&dld_handle); + /* Return the ops vectors */ return (&aggr_ops); } @@ -225,6 +227,7 @@ rcm_mod_fini(void) aggr_list_free(); (void) mutex_destroy(&aggr_list_lock); + dladm_close(dld_handle); return (RCM_SUCCESS); } @@ -491,14 +494,15 @@ aggr_offline_port(link_cache_t *node, cache_node_state_t state) if (aggr->da_lastport == node->vc_linkid) { rcm_log_message(RCM_TRACE2, "AGGR: delete aggregation %u\n", aggr->da_aggrid); - status = dladm_aggr_delete(aggr->da_aggrid, DLADM_OPT_ACTIVE); + status = dladm_aggr_delete(dld_handle, aggr->da_aggrid, + DLADM_OPT_ACTIVE); } else { rcm_log_message(RCM_TRACE2, "AGGR: remove port (%s) from aggregation %u\n", node->vc_resource, aggr->da_aggrid); port.lp_linkid = node->vc_linkid; - status = dladm_aggr_remove(aggr->da_aggrid, 1, &port, - DLADM_OPT_ACTIVE); + status = dladm_aggr_remove(dld_handle, aggr->da_aggrid, 1, + &port, DLADM_OPT_ACTIVE); } if (status != DLADM_STATUS_OK) { rcm_log_message(RCM_WARNING, @@ -537,14 +541,14 @@ aggr_online_port(link_cache_t *node, boolean_t *up) if (aggr->da_lastport == node->vc_linkid) { rcm_log_message(RCM_TRACE2, "AGGR: delete aggregation %u\n", aggr->da_aggrid); - status = dladm_aggr_up(aggr->da_aggrid); + status = dladm_aggr_up(dld_handle, aggr->da_aggrid); *up = B_TRUE; } else { rcm_log_message(RCM_TRACE2, "AGGR: add port (%s) to aggregation %u\n", node->vc_resource, aggr->da_aggrid); port.lp_linkid = node->vc_linkid; - status = dladm_aggr_add(aggr->da_aggrid, 1, &port, + status = dladm_aggr_add(dld_handle, aggr->da_aggrid, 1, &port, DLADM_OPT_ACTIVE); } if (status != DLADM_STATUS_OK) { @@ -766,8 +770,8 @@ aggr_usage(link_cache_t *node) else fmt = _("%s is part of AGGR "); - if ((status = dladm_datalink_id2info(node->vc_linkid, NULL, NULL, - NULL, name, sizeof (name))) != DLADM_STATUS_OK) { + if ((status = dladm_datalink_id2info(dld_handle, node->vc_linkid, NULL, + NULL, NULL, name, sizeof (name))) != DLADM_STATUS_OK) { rcm_log_message(RCM_ERROR, _("AGGR: usage(%s) get port name failure(%s)\n"), node->vc_resource, dladm_status2str(status, errmsg)); @@ -791,8 +795,9 @@ aggr_usage(link_cache_t *node) return (buf); } - if ((status = dladm_datalink_id2info(node->vc_aggr->da_aggrid, NULL, - NULL, NULL, name, sizeof (name))) != DLADM_STATUS_OK) { + if ((status = dladm_datalink_id2info(dld_handle, + node->vc_aggr->da_aggrid, NULL, NULL, NULL, name, + sizeof (name))) != DLADM_STATUS_OK) { rcm_log_message(RCM_ERROR, _("AGGR: usage(%s) get aggr %u name failure(%s)\n"), node->vc_resource, node->vc_aggr->da_aggrid, @@ -959,7 +964,7 @@ typedef struct aggr_update_arg_s { * aggr_update() - Update physical interface properties */ static int -aggr_update(datalink_id_t aggrid, void *arg) +aggr_update(dladm_handle_t handle, datalink_id_t aggrid, void *arg) { aggr_update_arg_t *aggr_update_argp = arg; rcm_handle_t *hd = aggr_update_argp->hd; @@ -974,7 +979,8 @@ aggr_update(datalink_id_t aggrid, void *arg) rcm_log_message(RCM_TRACE1, "AGGR: aggr_update(%u)\n", aggrid); assert(MUTEX_HELD(&aggr_list_lock)); - status = dladm_aggr_info(aggrid, &aggr_attr, DLADM_OPT_ACTIVE); + status = dladm_aggr_info(handle, aggrid, &aggr_attr, + DLADM_OPT_ACTIVE); if (status != DLADM_STATUS_OK) { rcm_log_message(RCM_TRACE1, "AGGR: cannot get aggr information for %u error(%s)\n", @@ -1041,8 +1047,8 @@ aggr_update_all(rcm_handle_t *hd) assert(MUTEX_HELD(&cache_lock)); arg.hd = hd; - (void) dladm_walk_datalink_id(aggr_update, &arg, DATALINK_CLASS_AGGR, - DATALINK_ANY_MEDIATYPE, DLADM_OPT_ACTIVE); + (void) dladm_walk_datalink_id(aggr_update, dld_handle, &arg, + DATALINK_CLASS_AGGR, DATALINK_ANY_MEDIATYPE, DLADM_OPT_ACTIVE); return (arg.retval); } @@ -1147,8 +1153,8 @@ aggr_log_err(datalink_id_t linkid, char **errorp, char *errmsg) rcm_log_message(RCM_ERROR, _("AGGR: %s(%s)\n"), errmsg, rsrc); - if ((status = dladm_datalink_id2info(linkid, NULL, NULL, - NULL, link, sizeof (link))) != DLADM_STATUS_OK) { + if ((status = dladm_datalink_id2info(dld_handle, linkid, NULL, + NULL, NULL, link, sizeof (link))) != DLADM_STATUS_OK) { rcm_log_message(RCM_WARNING, _("AGGR: cannot get link name of (%s) %s\n"), rsrc, dladm_status2str(status, errstr)); @@ -1349,7 +1355,7 @@ typedef struct aggr_configure_arg { } aggr_configure_arg_t; static int -aggr_configure(datalink_id_t aggrid, void *arg) +aggr_configure(dladm_handle_t handle, datalink_id_t aggrid, void *arg) { aggr_configure_arg_t *aggr_configure_argp = arg; datalink_id_t portid; @@ -1360,11 +1366,12 @@ aggr_configure(datalink_id_t aggrid, void *arg) char errmsg[DLADM_STRSIZE]; int i; - status = dladm_datalink_id2info(aggrid, &flags, NULL, NULL, NULL, 0); + status = dladm_datalink_id2info(handle, aggrid, &flags, NULL, NULL, + NULL, 0); if (status != DLADM_STATUS_OK) return (DLADM_WALK_CONTINUE); - status = dladm_aggr_info(aggrid, &aggr_attr, DLADM_OPT_PERSIST); + status = dladm_aggr_info(handle, aggrid, &aggr_attr, DLADM_OPT_PERSIST); if (status != DLADM_STATUS_OK) return (DLADM_WALK_CONTINUE); @@ -1390,12 +1397,12 @@ aggr_configure(datalink_id_t aggrid, void *arg) "AGGR: aggr_configure dladm_aggr_add port %u (%u)\n", portid, aggrid); port_attr.lp_linkid = portid; - status = dladm_aggr_add(aggrid, 1, &port_attr, + status = dladm_aggr_add(handle, aggrid, 1, &port_attr, DLADM_OPT_ACTIVE); } else { rcm_log_message(RCM_TRACE3, "AGGR: aggr_configure dladm_aggr_up (%u)\n", aggrid); - status = dladm_aggr_up(aggrid); + status = dladm_aggr_up(handle, aggrid); } if (status != DLADM_STATUS_OK) { @@ -1443,8 +1450,8 @@ aggr_configure_all(rcm_handle_t *hd, datalink_id_t linkid, boolean_t *up) (void) mutex_unlock(&cache_lock); arg.portid = linkid; - (void) dladm_walk_datalink_id(aggr_configure, &arg, DATALINK_CLASS_AGGR, - DATALINK_ANY_MEDIATYPE, DLADM_OPT_PERSIST); + (void) dladm_walk_datalink_id(aggr_configure, dld_handle, &arg, + DATALINK_CLASS_AGGR, DATALINK_ANY_MEDIATYPE, DLADM_OPT_PERSIST); if (arg.retval == 0) { *up = arg.up; diff --git a/usr/src/cmd/rcm_daemon/common/ip_rcm.c b/usr/src/cmd/rcm_daemon/common/ip_rcm.c index 9801c2b18c..f62b3dfc19 100644 --- a/usr/src/cmd/rcm_daemon/common/ip_rcm.c +++ b/usr/src/cmd/rcm_daemon/common/ip_rcm.c @@ -23,8 +23,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - /* * This RCM module adds support to the RCM framework for IP managed * interfaces. @@ -210,6 +208,8 @@ static ip_cache_t cache_tail; static mutex_t cache_lock; static int events_registered = 0; +static dladm_handle_t dld_handle = NULL; + /* * RCM module interface prototypes */ @@ -303,6 +303,8 @@ rcm_mod_init(void) cache_tail.ip_next = NULL; (void) mutex_init(&cache_lock, NULL, NULL); + (void) dladm_open(&dld_handle); + /* Return the ops vectors */ return (&ip_ops); } @@ -328,6 +330,8 @@ rcm_mod_fini(void) free_cache(); (void) mutex_destroy(&cache_lock); + + dladm_close(dld_handle); return (RCM_SUCCESS); } @@ -889,8 +893,8 @@ ip_usage(ip_cache_t *node) return (NULL); } - if ((status = dladm_datalink_id2info(linkid, NULL, NULL, NULL, link, - sizeof (link))) != DLADM_STATUS_OK) { + if ((status = dladm_datalink_id2info(dld_handle, linkid, NULL, NULL, + NULL, link, sizeof (link))) != DLADM_STATUS_OK) { rcm_log_message(RCM_ERROR, _("IP: usage(%s) get link name failure(%s)\n"), node->ip_resource, dladm_status2str(status, errmsg)); @@ -1942,8 +1946,8 @@ get_link_resource(const char *link) char *resource; dladm_status_t status; - if ((status = dladm_name2info(link, &linkid, &flags, NULL, NULL)) - != DLADM_STATUS_OK) { + if ((status = dladm_name2info(dld_handle, link, &linkid, &flags, NULL, + NULL)) != DLADM_STATUS_OK) { goto fail; } @@ -2652,7 +2656,7 @@ if_configure(datalink_id_t linkid) } (void) mutex_unlock(&cache_lock); - if (dladm_datalink_id2info(linkid, NULL, NULL, NULL, ifinst, + if (dladm_datalink_id2info(dld_handle, linkid, NULL, NULL, NULL, ifinst, sizeof (ifinst)) != DLADM_STATUS_OK) { rcm_log_message(RCM_ERROR, _("IP: get %u link name failed\n"), linkid); diff --git a/usr/src/cmd/rcm_daemon/common/network_rcm.c b/usr/src/cmd/rcm_daemon/common/network_rcm.c index b3199ed936..e09969fde6 100644 --- a/usr/src/cmd/rcm_daemon/common/network_rcm.c +++ b/usr/src/cmd/rcm_daemon/common/network_rcm.c @@ -75,6 +75,8 @@ static net_cache_t cache_tail; static mutex_t cache_lock; static int events_registered = 0; +static dladm_handle_t dld_handle = NULL; + /* module interface routines */ static int net_register(rcm_handle_t *); static int net_unregister(rcm_handle_t *); @@ -138,6 +140,8 @@ rcm_mod_init(void) cache_tail.next = NULL; (void) mutex_init(&cache_lock, NULL, NULL); + dladm_open(&dld_handle); + /* Return the ops vectors */ return (&net_ops); } @@ -163,6 +167,8 @@ rcm_mod_fini(void) { free_cache(); (void) mutex_destroy(&cache_lock); + + dladm_close(dld_handle); return (RCM_SUCCESS); } @@ -319,9 +325,9 @@ net_passthru(rcm_handle_t *hd, int op, const char *rsrc, uint_t flag, * Delete active linkprop before this active link * is deleted. */ - (void) dladm_set_linkprop(linkid, NULL, NULL, 0, - DLADM_OPT_ACTIVE); - (void) dladm_destroy_datalink_id(linkid, + (void) dladm_set_linkprop(dld_handle, linkid, NULL, + NULL, 0, DLADM_OPT_ACTIVE); + (void) dladm_destroy_datalink_id(dld_handle, linkid, DLADM_OPT_ACTIVE); } break; @@ -431,8 +437,8 @@ net_getinfo(rcm_handle_t *hd, char *rsrc, id_t id, uint_t flag, } len = strlen(info_fmt) + MAXLINKNAMELEN + 1; - if ((status = dladm_datalink_id2info(node->linkid, NULL, NULL, NULL, - link, sizeof (link))) != DLADM_STATUS_OK) { + if ((status = dladm_datalink_id2info(dld_handle, node->linkid, NULL, + NULL, NULL, link, sizeof (link))) != DLADM_STATUS_OK) { rcm_log_message(RCM_ERROR, _("NET: usage(%s) get link name failure(%s)\n"), node->resource, dladm_status2str(status, errmsg)); @@ -666,7 +672,7 @@ devfs_entry(di_node_t node, di_minor_t minor, void *arg) di_devfs_path_free(devfspath); (void) snprintf(dev, sizeof (dev), "%s%d", drv, di_instance(node)); - if (dladm_dev2linkid(dev, &linkid) != DLADM_STATUS_OK) { + if (dladm_dev2linkid(dld_handle, dev, &linkid) != DLADM_STATUS_OK) { rcm_log_message(RCM_DEBUG, _("NET: failed to find the linkid for %s\n"), dev); return (DI_WALK_CONTINUE); diff --git a/usr/src/cmd/rcm_daemon/common/vlan_rcm.c b/usr/src/cmd/rcm_daemon/common/vlan_rcm.c index a657baa2d4..16e06614bd 100644 --- a/usr/src/cmd/rcm_daemon/common/vlan_rcm.c +++ b/usr/src/cmd/rcm_daemon/common/vlan_rcm.c @@ -98,6 +98,8 @@ static link_cache_t cache_tail; static mutex_t cache_lock; static int events_registered = 0; +static dladm_handle_t dld_handle = NULL; + /* * RCM module interface prototypes */ @@ -169,6 +171,8 @@ rcm_mod_init(void) cache_tail.vc_next = NULL; (void) mutex_init(&cache_lock, 0, NULL); + dladm_open(&dld_handle); + /* Return the ops vectors */ return (&vlan_ops); } @@ -200,6 +204,8 @@ rcm_mod_fini(void) */ cache_free(); (void) mutex_destroy(&cache_lock); + + dladm_close(dld_handle); return (RCM_SUCCESS); } @@ -396,7 +402,7 @@ vlan_online_vlan(link_cache_t *node) if (!(vlan->dv_flags & VLAN_OFFLINED)) continue; - if ((status = dladm_vlan_up(vlan->dv_vlanid)) != + if ((status = dladm_vlan_up(dld_handle, vlan->dv_vlanid)) != DLADM_STATUS_OK) { /* * Print a warning message and continue to online @@ -425,7 +431,7 @@ vlan_offline_vlan(link_cache_t *node, uint32_t flags, cache_node_state_t state) * Try to delete all explicit created VLAN */ for (vlan = node->vc_vlan; vlan != NULL; vlan = vlan->dv_next) { - if ((status = dladm_vlan_delete(vlan->dv_vlanid, + if ((status = dladm_vlan_delete(dld_handle, vlan->dv_vlanid, DLADM_OPT_ACTIVE)) != DLADM_STATUS_OK) { rcm_log_message(RCM_WARNING, _("VLAN: VLAN offline failed (%u): %s\n"), @@ -669,8 +675,8 @@ vlan_usage(link_cache_t *node) rcm_log_message(RCM_TRACE2, "VLAN: usage(%s)\n", node->vc_resource); assert(MUTEX_HELD(&cache_lock)); - if ((status = dladm_datalink_id2info(node->vc_linkid, NULL, NULL, NULL, - name, sizeof (name))) != DLADM_STATUS_OK) { + if ((status = dladm_datalink_id2info(dld_handle, node->vc_linkid, NULL, + NULL, NULL, name, sizeof (name))) != DLADM_STATUS_OK) { rcm_log_message(RCM_ERROR, _("VLAN: usage(%s) get link name failure(%s)\n"), node->vc_resource, dladm_status2str(status, errmsg)); @@ -710,8 +716,9 @@ vlan_usage(link_cache_t *node) for (vlan = node->vc_vlan; vlan != NULL; vlan = vlan->dv_next) { rcm_log_message(RCM_DEBUG, "VLAN:= %u\n", vlan->dv_vlanid); - if ((status = dladm_datalink_id2info(vlan->dv_vlanid, NULL, - NULL, NULL, name, sizeof (name))) != DLADM_STATUS_OK) { + if ((status = dladm_datalink_id2info(dld_handle, + vlan->dv_vlanid, NULL, NULL, NULL, name, + sizeof (name))) != DLADM_STATUS_OK) { rcm_log_message(RCM_ERROR, _("VLAN: usage(%s) get vlan %u name failure(%s)\n"), node->vc_resource, vlan->dv_vlanid, @@ -827,7 +834,7 @@ typedef struct vlan_update_arg_s { * vlan_update() - Update physical interface properties */ static int -vlan_update(datalink_id_t vlanid, void *arg) +vlan_update(dladm_handle_t handle, datalink_id_t vlanid, void *arg) { vlan_update_arg_t *vlan_update_argp = arg; rcm_handle_t *hd = vlan_update_argp->hd; @@ -843,7 +850,7 @@ vlan_update(datalink_id_t vlanid, void *arg) rcm_log_message(RCM_TRACE2, "VLAN: vlan_update(%u)\n", vlanid); assert(MUTEX_HELD(&cache_lock)); - status = dladm_vlan_info(vlanid, &vlan_attr, DLADM_OPT_ACTIVE); + status = dladm_vlan_info(handle, vlanid, &vlan_attr, DLADM_OPT_ACTIVE); if (status != DLADM_STATUS_OK) { rcm_log_message(RCM_TRACE1, "VLAN: vlan_update() cannot get vlan information for " @@ -935,8 +942,8 @@ vlan_update_all(rcm_handle_t *hd) assert(MUTEX_HELD(&cache_lock)); arg.hd = hd; - (void) dladm_walk_datalink_id(vlan_update, &arg, DATALINK_CLASS_VLAN, - DATALINK_ANY_MEDIATYPE, DLADM_OPT_ACTIVE); + (void) dladm_walk_datalink_id(vlan_update, dld_handle, &arg, + DATALINK_CLASS_VLAN, DATALINK_ANY_MEDIATYPE, DLADM_OPT_ACTIVE); return (arg.retval); } @@ -1061,8 +1068,8 @@ vlan_log_err(datalink_id_t linkid, char **errorp, char *errmsg) RCM_LINK_PREFIX, linkid); rcm_log_message(RCM_ERROR, _("VLAN: %s(%s)\n"), errmsg, rsrc); - if ((status = dladm_datalink_id2info(linkid, NULL, NULL, - NULL, link, sizeof (link))) != DLADM_STATUS_OK) { + if ((status = dladm_datalink_id2info(dld_handle, linkid, NULL, + NULL, NULL, link, sizeof (link))) != DLADM_STATUS_OK) { rcm_log_message(RCM_WARNING, _("VLAN: cannot get link name for (%s) %s\n"), rsrc, dladm_status2str(status, errstr)); @@ -1247,14 +1254,14 @@ typedef struct vlan_up_arg_s { } vlan_up_arg_t; static int -vlan_up(datalink_id_t vlanid, void *arg) +vlan_up(dladm_handle_t handle, datalink_id_t vlanid, void *arg) { vlan_up_arg_t *vlan_up_argp = arg; dladm_status_t status; dladm_vlan_attr_t vlan_attr; char errmsg[DLADM_STRSIZE]; - status = dladm_vlan_info(vlanid, &vlan_attr, DLADM_OPT_PERSIST); + status = dladm_vlan_info(handle, vlanid, &vlan_attr, DLADM_OPT_PERSIST); if (status != DLADM_STATUS_OK) { rcm_log_message(RCM_TRACE1, "VLAN: vlan_up(): cannot get information for VLAN %u " @@ -1266,7 +1273,7 @@ vlan_up(datalink_id_t vlanid, void *arg) return (DLADM_WALK_CONTINUE); rcm_log_message(RCM_TRACE3, "VLAN: vlan_up(%u)\n", vlanid); - if ((status = dladm_vlan_up(vlanid)) == DLADM_STATUS_OK) + if ((status = dladm_vlan_up(handle, vlanid)) == DLADM_STATUS_OK) return (DLADM_WALK_CONTINUE); /* @@ -1307,8 +1314,8 @@ vlan_configure(rcm_handle_t *hd, datalink_id_t linkid) (void) mutex_unlock(&cache_lock); arg.linkid = linkid; - (void) dladm_walk_datalink_id(vlan_up, &arg, DATALINK_CLASS_VLAN, - DATALINK_ANY_MEDIATYPE, DLADM_OPT_PERSIST); + (void) dladm_walk_datalink_id(vlan_up, dld_handle, &arg, + DATALINK_CLASS_VLAN, DATALINK_ANY_MEDIATYPE, DLADM_OPT_PERSIST); if (arg.retval == 0) { rcm_log_message(RCM_TRACE2, diff --git a/usr/src/cmd/rcm_daemon/common/vnic_rcm.c b/usr/src/cmd/rcm_daemon/common/vnic_rcm.c index 178d3b44a8..9472cbe61c 100644 --- a/usr/src/cmd/rcm_daemon/common/vnic_rcm.c +++ b/usr/src/cmd/rcm_daemon/common/vnic_rcm.c @@ -98,6 +98,8 @@ static link_cache_t cache_tail; static mutex_t cache_lock; static int events_registered = 0; +static dladm_handle_t dld_handle = NULL; + /* * RCM module interface prototypes */ @@ -169,6 +171,8 @@ rcm_mod_init(void) cache_tail.vc_next = NULL; (void) mutex_init(&cache_lock, 0, NULL); + dladm_open(&dld_handle); + /* Return the ops vectors */ return (&vnic_ops); } @@ -200,6 +204,8 @@ rcm_mod_fini(void) */ cache_free(); (void) mutex_destroy(&cache_lock); + + dladm_close(dld_handle); return (RCM_SUCCESS); } @@ -396,8 +402,8 @@ vnic_online_vnic(link_cache_t *node) if (!(vnic->dlv_flags & VNIC_OFFLINED)) continue; - if ((status = dladm_vnic_up(vnic->dlv_vnic_id, 0)) != - DLADM_STATUS_OK) { + if ((status = dladm_vnic_up(dld_handle, vnic->dlv_vnic_id, 0)) + != DLADM_STATUS_OK) { /* * Print a warning message and continue to online * other VNICs. @@ -427,7 +433,7 @@ vnic_offline_vnic(link_cache_t *node, uint32_t flags, cache_node_state_t state) */ for (vnic = node->vc_vnic; vnic != NULL; vnic = vnic->dlv_next) { - if ((status = dladm_vnic_delete(vnic->dlv_vnic_id, + if ((status = dladm_vnic_delete(dld_handle, vnic->dlv_vnic_id, DLADM_OPT_ACTIVE)) != DLADM_STATUS_OK) { rcm_log_message(RCM_WARNING, _("VNIC: VNIC offline failed (%u): %s\n"), @@ -672,8 +678,8 @@ vnic_usage(link_cache_t *node) rcm_log_message(RCM_TRACE2, "VNIC: usage(%s)\n", node->vc_resource); assert(MUTEX_HELD(&cache_lock)); - if ((status = dladm_datalink_id2info(node->vc_linkid, NULL, NULL, NULL, - name, sizeof (name))) != DLADM_STATUS_OK) { + if ((status = dladm_datalink_id2info(dld_handle, node->vc_linkid, NULL, + NULL, NULL, name, sizeof (name))) != DLADM_STATUS_OK) { rcm_log_message(RCM_ERROR, _("VNIC: usage(%s) get link name failure(%s)\n"), node->vc_resource, dladm_status2str(status, errmsg)); @@ -713,8 +719,9 @@ vnic_usage(link_cache_t *node) for (vnic = node->vc_vnic; vnic != NULL; vnic = vnic->dlv_next) { rcm_log_message(RCM_DEBUG, "VNIC:= %u\n", vnic->dlv_vnic_id); - if ((status = dladm_datalink_id2info(vnic->dlv_vnic_id, NULL, - NULL, NULL, name, sizeof (name))) != DLADM_STATUS_OK) { + if ((status = dladm_datalink_id2info(dld_handle, + vnic->dlv_vnic_id, NULL, NULL, NULL, name, sizeof (name))) + != DLADM_STATUS_OK) { rcm_log_message(RCM_ERROR, _("VNIC: usage(%s) get vnic %u name failure(%s)\n"), node->vc_resource, vnic->dlv_vnic_id, @@ -830,7 +837,7 @@ typedef struct vnic_update_arg_s { * vnic_update() - Update physical interface properties */ static int -vnic_update(datalink_id_t vnicid, void *arg) +vnic_update(dladm_handle_t handle, datalink_id_t vnicid, void *arg) { vnic_update_arg_t *vnic_update_argp = arg; rcm_handle_t *hd = vnic_update_argp->hd; @@ -846,7 +853,7 @@ vnic_update(datalink_id_t vnicid, void *arg) rcm_log_message(RCM_TRACE2, "VNIC: vnic_update(%u)\n", vnicid); assert(MUTEX_HELD(&cache_lock)); - status = dladm_vnic_info(vnicid, &vnic_attr, DLADM_OPT_ACTIVE); + status = dladm_vnic_info(handle, vnicid, &vnic_attr, DLADM_OPT_ACTIVE); if (status != DLADM_STATUS_OK) { rcm_log_message(RCM_TRACE1, "VNIC: vnic_update() cannot get vnic information for " @@ -947,8 +954,8 @@ vnic_update_all(rcm_handle_t *hd) assert(MUTEX_HELD(&cache_lock)); arg.hd = hd; - (void) dladm_walk_datalink_id(vnic_update, &arg, DATALINK_CLASS_VNIC, - DATALINK_ANY_MEDIATYPE, DLADM_OPT_ACTIVE); + (void) dladm_walk_datalink_id(vnic_update, dld_handle, &arg, + DATALINK_CLASS_VNIC, DATALINK_ANY_MEDIATYPE, DLADM_OPT_ACTIVE); return (arg.retval); } @@ -1073,8 +1080,8 @@ vnic_log_err(datalink_id_t linkid, char **errorp, char *errmsg) RCM_LINK_PREFIX, linkid); rcm_log_message(RCM_ERROR, _("VNIC: %s(%s)\n"), errmsg, rsrc); - if ((status = dladm_datalink_id2info(linkid, NULL, NULL, - NULL, link, sizeof (link))) != DLADM_STATUS_OK) { + if ((status = dladm_datalink_id2info(dld_handle, linkid, NULL, + NULL, NULL, link, sizeof (link))) != DLADM_STATUS_OK) { rcm_log_message(RCM_WARNING, _("VNIC: cannot get link name for (%s) %s\n"), rsrc, dladm_status2str(status, errstr)); @@ -1258,14 +1265,14 @@ typedef struct vnic_up_arg_s { } vnic_up_arg_t; static int -vnic_up(datalink_id_t vnicid, void *arg) +vnic_up(dladm_handle_t handle, datalink_id_t vnicid, void *arg) { vnic_up_arg_t *vnic_up_argp = arg; dladm_status_t status; dladm_vnic_attr_t vnic_attr; char errmsg[DLADM_STRSIZE]; - status = dladm_vnic_info(vnicid, &vnic_attr, DLADM_OPT_PERSIST); + status = dladm_vnic_info(handle, vnicid, &vnic_attr, DLADM_OPT_PERSIST); if (status != DLADM_STATUS_OK) { rcm_log_message(RCM_TRACE1, "VNIC: vnic_up(): cannot get information for VNIC %u " @@ -1277,7 +1284,7 @@ vnic_up(datalink_id_t vnicid, void *arg) return (DLADM_WALK_CONTINUE); rcm_log_message(RCM_TRACE3, "VNIC: vnic_up(%u)\n", vnicid); - if ((status = dladm_vnic_up(vnicid, 0)) == DLADM_STATUS_OK) + if ((status = dladm_vnic_up(handle, vnicid, 0)) == DLADM_STATUS_OK) return (DLADM_WALK_CONTINUE); /* @@ -1318,8 +1325,8 @@ vnic_configure(rcm_handle_t *hd, datalink_id_t linkid) (void) mutex_unlock(&cache_lock); arg.linkid = linkid; - (void) dladm_walk_datalink_id(vnic_up, &arg, DATALINK_CLASS_VNIC, - DATALINK_ANY_MEDIATYPE, DLADM_OPT_PERSIST); + (void) dladm_walk_datalink_id(vnic_up, dld_handle, &arg, + DATALINK_CLASS_VNIC, DATALINK_ANY_MEDIATYPE, DLADM_OPT_PERSIST); if (arg.retval == 0) { rcm_log_message(RCM_TRACE2, |
