[dpdk-stable] [PATCH 17.11] eventdev: fix eth Rx adapter hotplug incompatibility

Yongseok Koh yskoh at mellanox.com
Thu Jan 17 07:57:53 CET 2019


> On Jan 16, 2019, at 9:12 PM, Nikhil Rao <nikhil.rao at intel.com> wrote:
> 
> [ backported from upstream commit d7b5f102c4781bd2e9a952243eb59cffe135b01c ]
> 
> 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: 9c38b704d280 ("eventdev: add eth Rx adapter implementation")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Nikhil Rao <nikhil.rao at intel.com>
> Acked-by: Jerin Jacob <jerin.jacob at caviumnetworks.com>
> ---
Applied to stable/17.11

Thanks,
Yongseok

> lib/librte_eventdev/rte_event_eth_rx_adapter.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.c b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> index de4cf73..3688b8e 100644
> --- a/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> +++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> @@ -900,7 +900,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
> 	rx_adapter->conf_arg = conf_arg;
> 	strcpy(rx_adapter->mem_name, mem_name);
> 	rx_adapter->eth_devices = rte_zmalloc_socket(rx_adapter->mem_name,
> -					rte_eth_dev_count() *
> +					RTE_MAX_ETHPORTS *
> 					sizeof(struct eth_device_info), 0,
> 					socket_id);
> 	rte_convert_rss_key((const uint32_t *)default_rss_key,
> @@ -913,7 +913,7 @@ static int add_rx_queue(struct rte_event_eth_rx_adapter *rx_adapter,
> 		return -ENOMEM;
> 	}
> 	rte_spinlock_init(&rx_adapter->rx_lock);
> -	for (i = 0; i < rte_eth_dev_count(); 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;
> -- 
> 1.8.3.1
> 



More information about the stable mailing list