| From 25f321ed72e24ad189faa83d4f57f6a8efc506ec Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 20 Dec 2024 13:52:48 +0800 |
| Subject: RDMA/hns: Fix warning storm caused by invalid input in IO path |
| |
| From: Chengchang Tang <tangchengchang@huawei.com> |
| |
| [ Upstream commit fa5c4ba8cdbfd2c2d6422e001311c8213283ebbf ] |
| |
| WARN_ON() is called in the IO path. And it could lead to a warning |
| storm. Use WARN_ON_ONCE() instead of WARN_ON(). |
| |
| Fixes: 12542f1de179 ("RDMA/hns: Refactor process about opcode in post_send()") |
| Signed-off-by: Chengchang Tang <tangchengchang@huawei.com> |
| Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com> |
| Link: https://patch.msgid.link/20241220055249.146943-4-huangjunxian6@hisilicon.com |
| Signed-off-by: Leon Romanovsky <leon@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c |
| index 60628ef1c46e..23667cfbf8e7 100644 |
| --- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c |
| +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c |
| @@ -471,7 +471,7 @@ static inline int set_ud_wqe(struct hns_roce_qp *qp, |
| valid_num_sge = calc_wr_sge_num(wr, &msg_len); |
| |
| ret = set_ud_opcode(ud_sq_wqe, wr); |
| - if (WARN_ON(ret)) |
| + if (WARN_ON_ONCE(ret)) |
| return ret; |
| |
| ud_sq_wqe->msg_len = cpu_to_le32(msg_len); |
| @@ -575,7 +575,7 @@ static inline int set_rc_wqe(struct hns_roce_qp *qp, |
| rc_sq_wqe->msg_len = cpu_to_le32(msg_len); |
| |
| ret = set_rc_opcode(hr_dev, rc_sq_wqe, wr); |
| - if (WARN_ON(ret)) |
| + if (WARN_ON_ONCE(ret)) |
| return ret; |
| |
| hr_reg_write(rc_sq_wqe, RC_SEND_WQE_SO, |
| -- |
| 2.39.5 |
| |