diff options
Diffstat (limited to 'usr/src/lib/libdlpi/common/libdlpi.c')
-rw-r--r-- | usr/src/lib/libdlpi/common/libdlpi.c | 12 |
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); } |