summaryrefslogtreecommitdiff
path: root/usr/src/lib/libdladm/common/linkprop.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libdladm/common/linkprop.c')
-rw-r--r--usr/src/lib/libdladm/common/linkprop.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/usr/src/lib/libdladm/common/linkprop.c b/usr/src/lib/libdladm/common/linkprop.c
index eca1aecd7f..bd4190b159 100644
--- a/usr/src/lib/libdladm/common/linkprop.c
+++ b/usr/src/lib/libdladm/common/linkprop.c
@@ -1211,8 +1211,9 @@ static int
i_dladm_init_one_prop(dladm_handle_t handle, datalink_id_t linkid,
const char *prop_name, void *arg)
{
- char *buf, **propvals;
- uint_t i, valcnt = DLADM_MAX_PROP_VALCNT;
+ char *buf, **propvals;
+ uint_t i, valcnt = DLADM_MAX_PROP_VALCNT;
+ dladm_status_t status, *retval = arg;
if ((buf = malloc((sizeof (char *) + DLADM_PROP_VAL_MAX) *
DLADM_MAX_PROP_VALCNT)) == NULL) {
@@ -1231,8 +1232,10 @@ i_dladm_init_one_prop(dladm_handle_t handle, datalink_id_t linkid,
goto done;
}
- (void) dladm_set_linkprop(handle, linkid, prop_name, propvals, valcnt,
- DLADM_OPT_ACTIVE);
+ status = dladm_set_linkprop(handle, linkid, prop_name, propvals,
+ valcnt, DLADM_OPT_ACTIVE);
+ if (status != DLADM_STATUS_OK)
+ *retval = status;
done:
if (buf != NULL)
@@ -1263,6 +1266,7 @@ dladm_status_t
dladm_init_linkprop(dladm_handle_t handle, datalink_id_t linkid,
boolean_t any_media)
{
+ dladm_status_t status = DLADM_STATUS_OK;
datalink_media_t dmedia;
uint32_t media;
@@ -1275,10 +1279,10 @@ dladm_init_linkprop(dladm_handle_t handle, datalink_id_t linkid,
((dladm_datalink_id2info(handle, linkid, NULL, NULL, &media, NULL,
0) == DLADM_STATUS_OK) &&
DATALINK_MEDIA_ACCEPTED(dmedia, media))) {
- (void) dladm_walk_linkprop(handle, linkid, NULL,
+ (void) dladm_walk_linkprop(handle, linkid, &status,
i_dladm_init_one_prop);
}
- return (DLADM_STATUS_OK);
+ return (status);
}
/* ARGSUSED */