hi alvin

On 5/12/2020 11:44 AM, Zhang, AlvinX wrote:
Hi Jia,

It shouldn't return error for secondary. 'rte_eth_dev_release_port()' has 
already process type in it, so returning '0' should work better which will 
cause some process specific variables cleared.
In otherwise, only primary process need to really close the device.

BR,
Alvin


Sounds that if driver no need to close, no need to show any useless log to user, make sense.


-----Original Message-----
From: Guo, Jia
Sent: Tuesday, May 12, 2020 11:03 AM
To: Zhang, AlvinX <alvinx.zh...@intel.com>; dev@dpdk.org
Cc: Xing, Beilei <beilei.x...@intel.com>; Lu, Wenzhuo
<wenzhuo...@intel.com>
Subject: Re: [dpdk-dev] [PATCH] net/e1000: fix port hotplug for multi-
process

hi, alvin


On 4/29/2020 2:37 PM, alvinx.zh...@intel.com wrote:
From: Alvin Zhang <alvinx.zh...@intel.com>

Enable detach device on secondary process.

Fixes: b9eee2cb8c29 (e1000: support port hotplug)
Cc: bernard.iremon...@intel.com
Cc: sta...@dpdk.org

Signed-off-by: Alvin Zhang <alvinx.zh...@intel.com>
---
   drivers/net/e1000/em_ethdev.c  | 2 +-
   drivers/net/e1000/igb_ethdev.c | 4 ++--
   2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/e1000/em_ethdev.c
b/drivers/net/e1000/em_ethdev.c index 188cda3..902b1cd 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -321,7 +321,7 @@ static int eth_em_set_mc_addr_list(struct
rte_eth_dev *dev,
        PMD_INIT_FUNC_TRACE();

        if (rte_eal_process_type() != RTE_PROC_PRIMARY)
-               return -EPERM;
+               return 0;


I guess you mean pass through the process of the RTE_PROC_SECONDARY
case when detach device, but what about the other case like
RTE_PROC_INVALID or RTE_PROC_AUTO ?


        eth_em_close(eth_dev);

diff --git a/drivers/net/e1000/igb_ethdev.c
b/drivers/net/e1000/igb_ethdev.c index 520fba8..a5551e8 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -923,7 +923,7 @@ static int igb_flex_filter_uninit(struct rte_eth_dev
*eth_dev)
        PMD_INIT_FUNC_TRACE();

        if (rte_eal_process_type() != RTE_PROC_PRIMARY)
-               return -EPERM;
+               return 0;

        eth_igb_close(eth_dev);

@@ -1044,7 +1044,7 @@ static int igb_flex_filter_uninit(struct rte_eth_dev
*eth_dev)
        PMD_INIT_FUNC_TRACE();

        if (rte_eal_process_type() != RTE_PROC_PRIMARY)
-               return -EPERM;
+               return 0;

        igbvf_dev_close(eth_dev);


Reviewed-by: Jeff Guo <jia....@intel.com>

Reply via email to