Hi, > -----Original Message----- > From: Dekel Peled <dek...@mellanox.com> > Sent: Monday, July 27, 2020 11:51 AM > To: Matan Azrad <ma...@mellanox.com>; Slava Ovsiienko > <viachesl...@mellanox.com>; Raslan Darawsheh <rasl...@mellanox.com> > Cc: dev@dpdk.org > Subject: [PATCH] net/mlx5: fix CQ interrupt handling and cleanup > > Recent patch added creation of Rx CQ using DevX API. > The reading of events from DevX channel was not done correctly. > This patch fixes the event reading, using the correct data structure. > Cleanup after CQ creation, in case of error, is also updated. > > Fixes: 08d1838f645a ("net/mlx5: implement CQ for Rx using DevX API") > > Signed-off-by: Dekel Peled <dek...@mellanox.com> > Acked-by: Viacheslav Ovsiienko <viachesl...@mellanox.com> > --- > drivers/net/mlx5/mlx5_rxq.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c > index c78e522..79eb8f8 100644 > --- a/drivers/net/mlx5/mlx5_rxq.c > +++ b/drivers/net/mlx5/mlx5_rxq.c > @@ -1193,12 +1193,16 @@ > mlx5_glue->ack_cq_events(rxq_obj->ibv_cq, 1); > } else if (rxq_obj->type == MLX5_RXQ_OBJ_TYPE_DEVX_RQ) { > #ifdef HAVE_IBV_DEVX_EVENT > - struct mlx5dv_devx_async_event_hdr *event_data = NULL; > + union { > + struct mlx5dv_devx_async_event_hdr event_resp; > + uint8_t buf[sizeof(struct > mlx5dv_devx_async_event_hdr) > + + 128]; > + } out; > > ret = mlx5_glue->devx_get_event > - (rxq_obj->devx_channel, event_data, > - sizeof(struct > mlx5dv_devx_async_event_hdr)); > - if (ret < 0 || event_data->cookie != > + (rxq_obj->devx_channel, &out.event_resp, > + sizeof(out.buf)); > + if (ret < 0 || out.event_resp.cookie != > (uint64_t)(uintptr_t)rxq_obj->devx_cq) > goto exit; > #endif /* HAVE_IBV_DEVX_EVENT */ > @@ -1646,6 +1650,8 @@ > memset((void *)(uintptr_t)rxq_data->cqes, 0xFF, cq_size); > return cq_obj; > error: > + if (cq_obj) > + mlx5_devx_cmd_destroy(cq_obj); > rxq_release_devx_cq_resources(rxq_ctrl); > return NULL; > } > -- > 1.8.3.1
Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh