[dpdk-dev,v2] virtio: fix size of mac_addrs array in virtio ports
Commit Message
From: Ivan Boule <ivan.boule@6wind.com>
Make the virtio PMD allocate the array of unicast MAC addresses with
the maximum of entries (VIRTIO_MAX_MAC_ADDRS) that it exports.
Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
---
Changes since v1:
* fix checkpatch warning (thanks Yuanhan)
drivers/net/virtio/virtio_ethdev.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Comments
2015-10-29 10:16, David Marchand:
> From: Ivan Boule <ivan.boule@6wind.com>
>
> Make the virtio PMD allocate the array of unicast MAC addresses with
> the maximum of entries (VIRTIO_MAX_MAC_ADDRS) that it exports.
>
> Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
> Signed-off-by: David Marchand <david.marchand@6wind.com>
> ---
> Changes since v1:
> * fix checkpatch warning (thanks Yuanhan)
Applied, thanks
@@ -1163,6 +1163,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
struct virtio_net_config *config;
struct virtio_net_config local_config;
struct rte_pci_device *pci_dev;
+ const size_t mac_array_size = VIRTIO_MAX_MAC_ADDRS * ETHER_ADDR_LEN;
RTE_BUILD_BUG_ON(RTE_PKTMBUF_HEADROOM < sizeof(struct virtio_net_hdr));
@@ -1175,11 +1176,11 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
}
/* Allocate memory for storing MAC addresses */
- eth_dev->data->mac_addrs = rte_zmalloc("virtio", ETHER_ADDR_LEN, 0);
+ eth_dev->data->mac_addrs = rte_zmalloc("virtio", mac_array_size, 0);
if (eth_dev->data->mac_addrs == NULL) {
PMD_INIT_LOG(ERR,
"Failed to allocate %d bytes needed to store MAC addresses",
- ETHER_ADDR_LEN);
+ mac_array_size);
return -ENOMEM;
}