mlx5 PMD does not require configuration restore
on rte_eth_dev_start().
Add implementation of get_restore_flags() indicating that.

Signed-off-by: Dariusz Sosnowski <dsosnow...@nvidia.com>
---
 drivers/net/mlx5/mlx5.c        |  2 ++
 drivers/net/mlx5/mlx5.h        |  3 +++
 drivers/net/mlx5/mlx5_ethdev.c | 19 +++++++++++++++++++
 3 files changed, 24 insertions(+)

diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index 8d266b0e64..9b6acaf7f1 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -2571,6 +2571,7 @@ const struct eth_dev_ops mlx5_dev_ops = {
        .count_aggr_ports = mlx5_count_aggr_ports,
        .map_aggr_tx_affinity = mlx5_map_aggr_tx_affinity,
        .rx_metadata_negotiate = mlx5_flow_rx_metadata_negotiate,
+       .get_restore_flags = mlx5_get_restore_flags,
 };

 /* Available operations from secondary process. */
@@ -2663,6 +2664,7 @@ const struct eth_dev_ops mlx5_dev_ops_isolate = {
        .get_monitor_addr = mlx5_get_monitor_addr,
        .count_aggr_ports = mlx5_count_aggr_ports,
        .map_aggr_tx_affinity = mlx5_map_aggr_tx_affinity,
+       .get_restore_flags = mlx5_get_restore_flags,
 };

 /**
diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index 869aac032b..a5829fb71a 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -2228,6 +2228,9 @@ eth_rx_burst_t mlx5_select_rx_function(struct rte_eth_dev 
*dev);
 struct mlx5_priv *mlx5_port_to_eswitch_info(uint16_t port, bool valid);
 struct mlx5_priv *mlx5_dev_to_eswitch_info(struct rte_eth_dev *dev);
 int mlx5_dev_configure_rss_reta(struct rte_eth_dev *dev);
+void mlx5_get_restore_flags(struct rte_eth_dev *dev,
+                           enum rte_eth_dev_operation op,
+                           uint32_t *flags);

 /* mlx5_ethdev_os.c */

diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
index 6a678d6dcc..8b78efc3fd 100644
--- a/drivers/net/mlx5/mlx5_ethdev.c
+++ b/drivers/net/mlx5/mlx5_ethdev.c
@@ -796,3 +796,22 @@ mlx5_hairpin_cap_get(struct rte_eth_dev *dev, struct 
rte_eth_hairpin_cap *cap)
        cap->tx_cap.rte_memory = hca_attr->hairpin_sq_wq_in_host_mem;
        return 0;
 }
+
+/**
+ * Indicate to ethdev layer, what configuration must be restored.
+ *
+ * @param[in] dev
+ *   Pointer to Ethernet device structure.
+ * @param[in] op
+ *   Type of operation which might require config restore.
+ * @param[out] flags
+ *   Restore flags will be stored here.
+ */
+void
+mlx5_get_restore_flags(__rte_unused struct rte_eth_dev *dev,
+                      __rte_unused enum rte_eth_dev_operation op,
+                      uint32_t *flags)
+{
+       /* mlx5 PMD does not require any configuration restore. */
+       *flags = 0;
+}
--
2.39.5

Reply via email to