net/mlx5: fix DevX event registration timing
[dpdk.git] / drivers / net / mlx5 / mlx5.h
index 024a403..b6a51b2 100644 (file)
@@ -179,6 +179,8 @@ struct mlx5_hca_attr {
        uint32_t wqe_vlan_insert:1;
        uint32_t wqe_inline_mode:2;
        uint32_t vport_inline_mode:3;
+       uint32_t tunnel_stateless_geneve_rx:1;
+       uint32_t geneve_max_opt_len:1; /* 0x0: 14DW, 0x1: 63DW */
        uint32_t lro_cap:1;
        uint32_t tunnel_lro_gre:1;
        uint32_t tunnel_lro_vxlan:1;
@@ -499,6 +501,7 @@ struct mlx5_flow_counter_mng {
 /* Per port data of shared IB device. */
 struct mlx5_ibv_shared_port {
        uint32_t ih_port_id;
+       uint32_t devx_ih_port_id;
        /*
         * Interrupt handler port_id. Used by shared interrupt
         * handler to find the corresponding rte_eth device
@@ -586,6 +589,7 @@ struct mlx5_ibv_shared {
        pthread_mutex_t intr_mutex; /* Interrupt config mutex. */
        uint32_t intr_cnt; /* Interrupt handler reference counter. */
        struct rte_intr_handle intr_handle; /* Interrupt handler for device. */
+       uint32_t devx_intr_cnt; /* Devx interrupt handler reference counter. */
        struct rte_intr_handle intr_handle_devx; /* DEVX interrupt handler. */
        struct mlx5dv_devx_cmd_comp *devx_comp; /* DEVX async comp obj. */
        struct mlx5_ibv_shared_port port[]; /* per device port data array. */
@@ -719,6 +723,8 @@ void mlx5_dev_interrupt_handler(void *arg);
 void mlx5_dev_interrupt_handler_devx(void *arg);
 void mlx5_dev_interrupt_handler_uninstall(struct rte_eth_dev *dev);
 void mlx5_dev_interrupt_handler_install(struct rte_eth_dev *dev);
+void mlx5_dev_interrupt_handler_devx_uninstall(struct rte_eth_dev *dev);
+void mlx5_dev_interrupt_handler_devx_install(struct rte_eth_dev *dev);
 int mlx5_set_link_down(struct rte_eth_dev *dev);
 int mlx5_set_link_up(struct rte_eth_dev *dev);
 int mlx5_is_removed(struct rte_eth_dev *dev);