summaryrefslogtreecommitdiff
path: root/usr/src/lib/libdlpi/common/libdlpi.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libdlpi/common/libdlpi.c')
-rw-r--r--usr/src/lib/libdlpi/common/libdlpi.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/usr/src/lib/libdlpi/common/libdlpi.c b/usr/src/lib/libdlpi/common/libdlpi.c
index f403135b6a..3849824ff0 100644
--- a/usr/src/lib/libdlpi/common/libdlpi.c
+++ b/usr/src/lib/libdlpi/common/libdlpi.c
@@ -368,16 +368,12 @@ dlpi_info(dlpi_handle_t dh, dlpi_info_t *infop, uint_t opt)
int
dlpi_parselink(const char *linkname, char *provider, uint_t *ppa)
{
- ifspec_t ifsp;
-
- if (linkname == NULL || !ifparse_ifspec(linkname, &ifsp))
- return (DLPI_ELINKNAMEINVAL);
+ dladm_status_t status;
- if (provider != NULL)
- (void) strlcpy(provider, ifsp.ifsp_devnm, DLPI_LINKNAME_MAX);
+ status = dladm_parselink(linkname, provider, ppa);
- if (ppa != NULL)
- *ppa = ifsp.ifsp_ppa;
+ if (status != DLADM_STATUS_OK)
+ return (DLPI_ELINKNAMEINVAL);
return (DLPI_SUCCESS);
}