[v1,2/2] net/vmxnet3: Provided API to reset vmxnet device
Checks
Commit Message
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
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
-----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
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.
@@ -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)