[v1,2/2] net/vmxnet3: Provided API to reset vmxnet device

Message ID 20210104194308.24228-1-dheemanthm@vmware.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series None |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS

Commit Message

Dheemanth Mallikarjun Jan. 4, 2021, 7:43 p.m. UTC
  The vmxnet3 driver didn't have the dev_reset function
pointer set. Hence, provided the necessary function
pointer so that DPDK developers can use the rte_eth_dev_reset
API to reset the vmxnet3 device data.

Signed-off-by: Dheemanth Mallikarjun <dheemanthm@vmware.com>
---
 drivers/net/vmxnet3/vmxnet3_ethdev.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
  

Comments

Ferruh Yigit Jan. 15, 2021, 6:43 p.m. UTC | #1
On 1/4/2021 7:43 PM, Dheemanth Mallikarjun wrote:
> The vmxnet3 driver didn't have the dev_reset function
> pointer set. Hence, provided the necessary function
> pointer so that DPDK developers can use the rte_eth_dev_reset
> API to reset the vmxnet3 device data.
> 
> Signed-off-by: Dheemanth Mallikarjun <dheemanthm@vmware.com>
> ---
>   drivers/net/vmxnet3/vmxnet3_ethdev.c | 14 ++++++++++++++
>   1 file changed, 14 insertions(+)
> 
> diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
> index 23a2ebbef..814ccfa79 100644
> --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
> +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
> @@ -67,6 +67,7 @@ static int vmxnet3_dev_configure(struct rte_eth_dev *dev);
>   static int vmxnet3_dev_start(struct rte_eth_dev *dev);
>   static int vmxnet3_dev_stop(struct rte_eth_dev *dev);
>   static int vmxnet3_dev_close(struct rte_eth_dev *dev);
> +static int vmxnet3_dev_reset(struct rte_eth_dev *dev);
>   static void vmxnet3_dev_set_rxmode(struct vmxnet3_hw *hw, uint32_t feature, int set);
>   static int vmxnet3_dev_promiscuous_enable(struct rte_eth_dev *dev);
>   static int vmxnet3_dev_promiscuous_disable(struct rte_eth_dev *dev);
> @@ -112,6 +113,7 @@ static const struct eth_dev_ops vmxnet3_eth_dev_ops = {
>   	.dev_start            = vmxnet3_dev_start,
>   	.dev_stop             = vmxnet3_dev_stop,
>   	.dev_close            = vmxnet3_dev_close,
> +	.dev_reset            = vmxnet3_dev_reset,
>   	.promiscuous_enable   = vmxnet3_dev_promiscuous_enable,
>   	.promiscuous_disable  = vmxnet3_dev_promiscuous_disable,
>   	.allmulticast_enable  = vmxnet3_dev_allmulticast_enable,
> @@ -913,6 +915,18 @@ vmxnet3_dev_close(struct rte_eth_dev *dev)
>   	return ret;
>   }
>   
> +static int
> +vmxnet3_dev_reset(struct rte_eth_dev *dev)
> +{
> +	int ret;
> +
> +	ret = eth_vmxnet3_dev_uninit(dev);
> +	if (ret)
> +		return ret;
> +	ret = eth_vmxnet3_dev_init(dev);
> +	return ret;
> +}
> +
>   static void
>   vmxnet3_hw_tx_stats_get(struct vmxnet3_hw *hw, unsigned int q,
>   			struct UPT1_TxStats *res)
> 

Hi Yong,

Can you please review this patch?

Thanks,
ferruh
  
Yong Wang Feb. 6, 2021, 6:05 p.m. UTC | #2
-----Original Message-----
From: Dheemanth Mallikarjun <dheemanthm@vmware.com>
Date: Monday, January 4, 2021 at 11:43 AM
To: "dev@dpdk.org" <dev@dpdk.org>
Cc: Yong Wang <yongwang@vmware.com>
Subject: [PATCH v1 2/2] net/vmxnet3: Provided API to reset vmxnet device

    The vmxnet3 driver didn't have the dev_reset function
    pointer set. Hence, provided the necessary function
    pointer so that DPDK developers can use the rte_eth_dev_reset
    API to reset the vmxnet3 device data.

    Signed-off-by: Dheemanth Mallikarjun <dheemanthm@vmware.com>
    ---

Acked-by: Yong Wang <yongwang@vmware.com>

     drivers/net/vmxnet3/vmxnet3_ethdev.c | 14 ++++++++++++++
     1 file changed, 14 insertions(+)

    diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
    index 23a2ebbef..814ccfa79 100644
    --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
    +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
    @@ -67,6 +67,7 @@ static int vmxnet3_dev_configure(struct rte_eth_dev *dev);
     static int vmxnet3_dev_start(struct rte_eth_dev *dev);
     static int vmxnet3_dev_stop(struct rte_eth_dev *dev);
     static int vmxnet3_dev_close(struct rte_eth_dev *dev);
    +static int vmxnet3_dev_reset(struct rte_eth_dev *dev);
     static void vmxnet3_dev_set_rxmode(struct vmxnet3_hw *hw, uint32_t feature, int set);
     static int vmxnet3_dev_promiscuous_enable(struct rte_eth_dev *dev);
     static int vmxnet3_dev_promiscuous_disable(struct rte_eth_dev *dev);
    @@ -112,6 +113,7 @@ static const struct eth_dev_ops vmxnet3_eth_dev_ops = {
     	.dev_start            = vmxnet3_dev_start,
     	.dev_stop             = vmxnet3_dev_stop,
     	.dev_close            = vmxnet3_dev_close,
    +	.dev_reset            = vmxnet3_dev_reset,
     	.promiscuous_enable   = vmxnet3_dev_promiscuous_enable,
     	.promiscuous_disable  = vmxnet3_dev_promiscuous_disable,
     	.allmulticast_enable  = vmxnet3_dev_allmulticast_enable,
    @@ -913,6 +915,18 @@ vmxnet3_dev_close(struct rte_eth_dev *dev)
     	return ret;
     }

    +static int
    +vmxnet3_dev_reset(struct rte_eth_dev *dev)
    +{
    +	int ret;
    +
    +	ret = eth_vmxnet3_dev_uninit(dev);
    +	if (ret)
    +		return ret;
    +	ret = eth_vmxnet3_dev_init(dev);
    +	return ret;
    +}
    +
     static void
     vmxnet3_hw_tx_stats_get(struct vmxnet3_hw *hw, unsigned int q,
     			struct UPT1_TxStats *res)
    -- 
    2.17.1
  
Ferruh Yigit Feb. 22, 2021, 4:53 p.m. UTC | #3
On 2/6/2021 6:05 PM, Yong Wang wrote:
> -----Original Message-----
> From: Dheemanth Mallikarjun <dheemanthm@vmware.com>
> Date: Monday, January 4, 2021 at 11:43 AM
> To: "dev@dpdk.org" <dev@dpdk.org>
> Cc: Yong Wang <yongwang@vmware.com>
> Subject: [PATCH v1 2/2] net/vmxnet3: Provided API to reset vmxnet device
> 
>      The vmxnet3 driver didn't have the dev_reset function
>      pointer set. Hence, provided the necessary function
>      pointer so that DPDK developers can use the rte_eth_dev_reset
>      API to reset the vmxnet3 device data.
> 
>      Signed-off-by: Dheemanth Mallikarjun <dheemanthm@vmware.com>
>      ---
> 
> Acked-by: Yong Wang <yongwang@vmware.com>
> 

Applied to dpdk-next-net/main, thanks.
  

Patch

diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
index 23a2ebbef..814ccfa79 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
@@ -67,6 +67,7 @@  static int vmxnet3_dev_configure(struct rte_eth_dev *dev);
 static int vmxnet3_dev_start(struct rte_eth_dev *dev);
 static int vmxnet3_dev_stop(struct rte_eth_dev *dev);
 static int vmxnet3_dev_close(struct rte_eth_dev *dev);
+static int vmxnet3_dev_reset(struct rte_eth_dev *dev);
 static void vmxnet3_dev_set_rxmode(struct vmxnet3_hw *hw, uint32_t feature, int set);
 static int vmxnet3_dev_promiscuous_enable(struct rte_eth_dev *dev);
 static int vmxnet3_dev_promiscuous_disable(struct rte_eth_dev *dev);
@@ -112,6 +113,7 @@  static const struct eth_dev_ops vmxnet3_eth_dev_ops = {
 	.dev_start            = vmxnet3_dev_start,
 	.dev_stop             = vmxnet3_dev_stop,
 	.dev_close            = vmxnet3_dev_close,
+	.dev_reset            = vmxnet3_dev_reset,
 	.promiscuous_enable   = vmxnet3_dev_promiscuous_enable,
 	.promiscuous_disable  = vmxnet3_dev_promiscuous_disable,
 	.allmulticast_enable  = vmxnet3_dev_allmulticast_enable,
@@ -913,6 +915,18 @@  vmxnet3_dev_close(struct rte_eth_dev *dev)
 	return ret;
 }
 
+static int
+vmxnet3_dev_reset(struct rte_eth_dev *dev)
+{
+	int ret;
+
+	ret = eth_vmxnet3_dev_uninit(dev);
+	if (ret)
+		return ret;
+	ret = eth_vmxnet3_dev_init(dev);
+	return ret;
+}
+
 static void
 vmxnet3_hw_tx_stats_get(struct vmxnet3_hw *hw, unsigned int q,
 			struct UPT1_TxStats *res)