eventdev: fix eth Rx adapter hotplug incompatibility
Use RTE_MAX_ETHPORTS instead of rte_eth_dev_count_total()
when allocating eth Rx adapter's per-eth device data structure
to account for hotplugged devices.
Fixes: 9c38b704d2
("eventdev: add eth Rx adapter implementation")
Cc: stable@dpdk.org
Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
This commit is contained in:
parent
4ab57b042e
commit
d7b5f102c4
@ -1998,8 +1998,7 @@ rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id,
|
||||
rx_adapter->id = id;
|
||||
strcpy(rx_adapter->mem_name, mem_name);
|
||||
rx_adapter->eth_devices = rte_zmalloc_socket(rx_adapter->mem_name,
|
||||
/* FIXME: incompatible with hotplug */
|
||||
rte_eth_dev_count_total() *
|
||||
RTE_MAX_ETHPORTS *
|
||||
sizeof(struct eth_device_info), 0,
|
||||
socket_id);
|
||||
rte_convert_rss_key((const uint32_t *)default_rss_key,
|
||||
@ -2012,7 +2011,7 @@ rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id,
|
||||
return -ENOMEM;
|
||||
}
|
||||
rte_spinlock_init(&rx_adapter->rx_lock);
|
||||
RTE_ETH_FOREACH_DEV(i)
|
||||
for (i = 0; i < RTE_MAX_ETHPORTS; i++)
|
||||
rx_adapter->eth_devices[i].dev = &rte_eth_devices[i];
|
||||
|
||||
event_eth_rx_adapter[id] = rx_adapter;
|
||||
|
@ -76,10 +76,6 @@
|
||||
* rte_event_eth_rx_adapter_cb_register() function allows the
|
||||
* application to register a callback that selects which packets to enqueue
|
||||
* to the event device.
|
||||
*
|
||||
* Note:
|
||||
* 1) Devices created after an instance of rte_event_eth_rx_adapter_create
|
||||
* should be added to a new instance of the rx adapter.
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
Loading…
Reference in New Issue
Block a user