regex/mlx5: check DevX register write
[dpdk.git] / drivers / regex / mlx5 / mlx5_rxp.c
index 7936a52..ba78cc0 100644 (file)
@@ -194,6 +194,10 @@ rxp_flush_rules(struct ibv_context *ctx, struct mlx5_rxp_rof_entry *rules,
        val |= MLX5_RXP_RTRU_CSR_CTRL_GO;
        ret = mlx5_devx_regex_register_write(ctx, id, MLX5_RXP_RTRU_CSR_CTRL,
                                             val);
+       if (ret) {
+               DRV_LOG(ERR, "CSR write failed!");
+               return -1;
+       }
        ret = rxp_poll_csr_for_value(ctx, &val, MLX5_RXP_RTRU_CSR_STATUS,
                                     MLX5_RXP_RTRU_CSR_STATUS_UPDATE_DONE,
                                     MLX5_RXP_RTRU_CSR_STATUS_UPDATE_DONE,
@@ -225,7 +229,7 @@ rxp_poll_csr_for_value(struct ibv_context *ctx, uint32_t *value,
                       uint32_t expected_mask, uint32_t timeout_ms, uint8_t id)
 {
        unsigned int i;
-       int ret = 0;
+       int ret;
 
        ret = -EBUSY;
        for (i = 0; i < timeout_ms; i++) {
@@ -276,7 +280,7 @@ rxp_init_rtru(struct ibv_context *ctx, uint8_t id, uint32_t init_bits)
        uint32_t poll_value;
        uint32_t expected_value;
        uint32_t expected_mask;
-       int ret = 0;
+       int ret;
 
        /* Read the rtru ctrl CSR. */
        ret = mlx5_devx_regex_register_read(ctx, id, MLX5_RXP_RTRU_CSR_CTRL,
@@ -554,6 +558,8 @@ rxp_init_eng(struct mlx5_regex_priv *priv, uint8_t id)
                return ret;
        ctrl &= ~MLX5_RXP_CSR_CTRL_INIT;
        ret = mlx5_devx_regex_register_write(ctx, id, MLX5_RXP_CSR_CTRL, ctrl);
+       if (ret)
+               return ret;
        rte_delay_us(20000);
        ret = rxp_poll_csr_for_value(ctx, &ctrl, MLX5_RXP_CSR_STATUS,
                                     MLX5_RXP_CSR_STATUS_INIT_DONE,
@@ -921,7 +927,7 @@ mlx5_regex_rules_db_import(struct rte_regexdev *dev,
 {
        struct mlx5_regex_priv *priv = dev->data->dev_private;
        struct mlx5_rxp_ctl_rules_pgm *rules = NULL;
-       uint8_t id;
+       uint32_t id;
        int ret;
 
        if (priv->prog_mode == MLX5_RXP_MODE_NOT_DEFINED) {