DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 1/2] net/mlx5: fix segfault on interrupt disable
@ 2017-10-17 12:04 Shahaf Shuler
  2017-10-17 12:04 ` [dpdk-dev] [PATCH 2/2] net/mlx5: fix interrupt management fields assignment Shahaf Shuler
  2017-10-23 17:49 ` [dpdk-dev] [PATCH 1/2] net/mlx5: fix segfault on interrupt disable Ferruh Yigit
  0 siblings, 2 replies; 3+ messages in thread
From: Shahaf Shuler @ 2017-10-17 12:04 UTC (permalink / raw)
  To: nelio.laranjeiro, adrien.mazarguil, yskoh; +Cc: dev

Interrupt disable can be called when the interrupt vector is not yet
allocated. Such case ends up with segmentation fault.

Fixing it by adding verification for interrupt vector validity.

Fixes: 09cb5b581762 ("net/mlx5: separate DPDK from verbs Rx queue objects")
Cc: nelio.laranjeiro@6wind.com

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
---
 drivers/net/mlx5/mlx5_rxq.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
index ad741ef44..2beebfdf2 100644
--- a/drivers/net/mlx5/mlx5_rxq.c
+++ b/drivers/net/mlx5/mlx5_rxq.c
@@ -396,6 +396,8 @@ priv_rx_intr_vec_disable(struct priv *priv)
 
 	if (!priv->dev->data->dev_conf.intr_conf.rxq)
 		return;
+	if (!intr_handle->intr_vec)
+		goto free;
 	for (i = 0; i != n; ++i) {
 		struct mlx5_rxq_ctrl *rxq_ctrl;
 		struct mlx5_rxq_data *rxq_data;
@@ -411,8 +413,10 @@ priv_rx_intr_vec_disable(struct priv *priv)
 		rxq_ctrl = container_of(rxq_data, struct mlx5_rxq_ctrl, rxq);
 		mlx5_priv_rxq_ibv_release(priv, rxq_ctrl->ibv);
 	}
+free:
 	rte_intr_free_epoll_fd(intr_handle);
-	free(intr_handle->intr_vec);
+	if (intr_handle->intr_vec)
+		free(intr_handle->intr_vec);
 	intr_handle->nb_efd = 0;
 	intr_handle->intr_vec = NULL;
 }
-- 
2.12.0

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-10-23 17:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-17 12:04 [dpdk-dev] [PATCH 1/2] net/mlx5: fix segfault on interrupt disable Shahaf Shuler
2017-10-17 12:04 ` [dpdk-dev] [PATCH 2/2] net/mlx5: fix interrupt management fields assignment Shahaf Shuler
2017-10-23 17:49 ` [dpdk-dev] [PATCH 1/2] net/mlx5: fix segfault on interrupt disable Ferruh Yigit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).