X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fvdev_netvsc%2Fvdev_netvsc.c;h=be8f19c0c63e91ac879f43285aaf0ccac6208065;hb=4b701523742e3753d58949846ac4eeebc6d5a78f;hp=801f54c96e017c675b589676da5c9cb1d25e9980;hpb=cc7cd517b1a26f284112a5d6e5f40d6c63584930;p=dpdk.git diff --git a/drivers/net/vdev_netvsc/vdev_netvsc.c b/drivers/net/vdev_netvsc/vdev_netvsc.c index 801f54c96e..be8f19c0c6 100644 --- a/drivers/net/vdev_netvsc/vdev_netvsc.c +++ b/drivers/net/vdev_netvsc/vdev_netvsc.c @@ -68,7 +68,7 @@ struct vdev_netvsc_ctx { char devargs[256]; /**< Fail-safe device arguments. */ char if_name[IF_NAMESIZE]; /**< NetVSC netdevice name. */ unsigned int if_index; /**< NetVSC netdevice index. */ - struct ether_addr if_addr; /**< NetVSC MAC address. */ + struct rte_ether_addr if_addr; /**< NetVSC MAC address. */ int pipe[2]; /**< Fail-safe communication pipe. */ char yield[256]; /**< PCI sub-device arguments. */ }; @@ -157,7 +157,7 @@ vdev_netvsc_iface_is_netvsc(const struct if_nameindex *iface) */ static int vdev_netvsc_foreach_iface(int (*func)(const struct if_nameindex *iface, - const struct ether_addr *eth_addr, + const struct rte_ether_addr *eth_addr, va_list ap), int is_netvsc, ...) { struct if_nameindex *iface = if_nameindex(); @@ -178,7 +178,7 @@ vdev_netvsc_foreach_iface(int (*func)(const struct if_nameindex *iface, for (i = 0; iface[i].if_name; ++i) { int is_netvsc_ret; struct ifreq req; - struct ether_addr eth_addr; + struct rte_ether_addr eth_addr; va_list ap; is_netvsc_ret = vdev_netvsc_iface_is_netvsc(&iface[i]) ? 1 : 0; @@ -330,7 +330,7 @@ vdev_netvsc_sysfs_readlink(char *buf, size_t size, const char *if_name, char in[RTE_MAX(sizeof(ctx->yield), 256u)]; int ret; - ret = snprintf(in, sizeof(in) - 1, "/sys/class/net/%s/%s", + ret = snprintf(in, sizeof(in), "/sys/class/net/%s/%s", if_name, relpath); if (ret == -1 || (size_t)ret >= sizeof(in)) return -ENOBUFS; @@ -368,7 +368,7 @@ vdev_netvsc_sysfs_readlink(char *buf, size_t size, const char *if_name, */ static int vdev_netvsc_device_probe(const struct if_nameindex *iface, - const struct ether_addr *eth_addr, + const struct rte_ether_addr *eth_addr, va_list ap) { struct vdev_netvsc_ctx *ctx = va_arg(ap, struct vdev_netvsc_ctx *); @@ -387,7 +387,7 @@ vdev_netvsc_device_probe(const struct if_nameindex *iface, strlcpy(ctx->if_name, iface->if_name, sizeof(ctx->if_name)); return 0; } - if (!is_same_ether_addr(eth_addr, &ctx->if_addr)) + if (!rte_is_same_ether_addr(eth_addr, &ctx->if_addr)) return 0; /* Look for associated PCI device. */ ret = vdev_netvsc_sysfs_readlink(buf, sizeof(buf), iface->if_name, @@ -507,7 +507,7 @@ vdev_netvsc_alarm(__rte_unused void *arg) */ static int vdev_netvsc_netvsc_probe(const struct if_nameindex *iface, - const struct ether_addr *eth_addr, + const struct rte_ether_addr *eth_addr, va_list ap) { const char *name = va_arg(ap, const char *); @@ -527,24 +527,16 @@ vdev_netvsc_netvsc_probe(const struct if_nameindex *iface, if (!strcmp(pair->value, iface->if_name)) break; } else if (!strcmp(pair->key, VDEV_NETVSC_ARG_MAC)) { - struct ether_addr tmp; - - if (sscanf(pair->value, - "%" SCNx8 ":%" SCNx8 ":%" SCNx8 ":" - "%" SCNx8 ":%" SCNx8 ":%" SCNx8, - &tmp.addr_bytes[0], - &tmp.addr_bytes[1], - &tmp.addr_bytes[2], - &tmp.addr_bytes[3], - &tmp.addr_bytes[4], - &tmp.addr_bytes[5]) != 6) { + struct rte_ether_addr tmp; + + if (rte_ether_unformat_addr(pair->value, &tmp) != 0) { DRV_LOG(ERR, "invalid MAC address format" " \"%s\"", pair->value); return -EINVAL; } - if (is_same_ether_addr(eth_addr, &tmp)) + if (rte_is_same_ether_addr(eth_addr, &tmp)) break; } } @@ -633,7 +625,7 @@ vdev_netvsc_netvsc_probe(const struct if_nameindex *iface, ctx->devname, ctx->devargs); vdev_netvsc_foreach_iface(vdev_netvsc_device_probe, 0, ctx); ret = rte_eal_hotplug_add("vdev", ctx->devname, ctx->devargs); - if (ret) + if (ret < 0) goto error; LIST_INSERT_HEAD(&vdev_netvsc_ctx_list, ctx, entry); ++vdev_netvsc_ctx_count;