[dpdk-dev] [PATCH 20/22] net/ena: disable dev_ops not supported in SMP
Michal Krawczyk
mk at semihalf.com
Fri Apr 30 14:57:23 CEST 2021
From: Stanislaw Kardach <kda at semihalf.com>
For dev_ops not supported in SMP, either return -EPERM or return without
doing anything. In both cases log a warning.
Signed-off-by: Stanislaw Kardach <kda at semihalf.com>
Reviewed-by: Michal Krawczyk <mk at semihalf.com>
Reviewed-by: Igor Chauskin <igorch at amazon.com>
Reviewed-by: Shay Agroskin <shayagr at amazon.com>
---
drivers/net/ena/ena_ethdev.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index 90ea40513a..73e99e956a 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -529,6 +529,12 @@ ena_dev_reset(struct rte_eth_dev *dev)
{
int rc = 0;
+ /* Cannot release memory in secondary process */
+ if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
+ PMD_DRV_LOG(WARNING, "dev_reset not supported in secondary.\n");
+ return -EPERM;
+ }
+
ena_destroy_device(dev);
rc = eth_ena_dev_init(dev);
if (rc)
@@ -1052,6 +1058,12 @@ static int ena_start(struct rte_eth_dev *dev)
uint64_t ticks;
int rc = 0;
+ /* Cannot allocate memory in secondary process */
+ if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
+ PMD_DRV_LOG(WARNING, "dev_start not supported in secondary.\n");
+ return -EPERM;
+ }
+
rc = ena_check_valid_conf(adapter);
if (rc)
return rc;
@@ -1098,6 +1110,12 @@ static int ena_stop(struct rte_eth_dev *dev)
struct ena_com_dev *ena_dev = &adapter->ena_dev;
int rc;
+ /* Cannot free memory in secondary process */
+ if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
+ PMD_DRV_LOG(WARNING, "dev_stop not supported in secondary.\n");
+ return -EPERM;
+ }
+
rte_timer_stop_sync(&adapter->timer_wd);
ena_queue_stop_all(dev, ENA_RING_TYPE_TX);
ena_queue_stop_all(dev, ENA_RING_TYPE_RX);
--
2.25.1
More information about the dev
mailing list