| From 5a186f5434514f9df76b4f943288afb1715df5bb Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 5 Jun 2023 13:33:17 +0300 |
| Subject: RDMA/mlx5: Initiate dropless RQ for RAW Ethernet functions |
| |
| From: Maher Sanalla <msanalla@nvidia.com> |
| |
| [ Upstream commit ee4d269eccfea6c17b18281bef482700d898e86f ] |
| |
| Delay drop data is initiated for PFs that have the capability of |
| rq_delay_drop and are in roce profile. |
| |
| However, PFs with RAW ethernet profile do not initiate delay drop data |
| on function load, causing kernel panic if delay drop struct members are |
| accessed later on in case a dropless RQ is created. |
| |
| Thus, stage the delay drop initialization as part of RAW ethernet |
| PF loading process. |
| |
| Fixes: b5ca15ad7e61 ("IB/mlx5: Add proper representors support") |
| Signed-off-by: Maher Sanalla <msanalla@nvidia.com> |
| Reviewed-by: Maor Gottlieb <maorg@nvidia.com> |
| Link: https://lore.kernel.org/r/2e9d386785043d48c38711826eb910315c1de141.1685960567.git.leon@kernel.org |
| Signed-off-by: Leon Romanovsky <leon@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/infiniband/hw/mlx5/main.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c |
| index eaa35e1df2a85..3178df55c4d85 100644 |
| --- a/drivers/infiniband/hw/mlx5/main.c |
| +++ b/drivers/infiniband/hw/mlx5/main.c |
| @@ -4250,6 +4250,9 @@ const struct mlx5_ib_profile raw_eth_profile = { |
| STAGE_CREATE(MLX5_IB_STAGE_POST_IB_REG_UMR, |
| mlx5_ib_stage_post_ib_reg_umr_init, |
| NULL), |
| + STAGE_CREATE(MLX5_IB_STAGE_DELAY_DROP, |
| + mlx5_ib_stage_delay_drop_init, |
| + mlx5_ib_stage_delay_drop_cleanup), |
| STAGE_CREATE(MLX5_IB_STAGE_RESTRACK, |
| mlx5_ib_restrack_init, |
| NULL), |
| -- |
| 2.39.2 |
| |