]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
RDMA/hns: Fix warning storm caused by invalid input in IO path
authorChengchang Tang <tangchengchang@huawei.com>
Fri, 20 Dec 2024 05:52:48 +0000 (13:52 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jan 2025 12:28:45 +0000 (13:28 +0100)
[ 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

index 6fdd563c9b9efe7fef771b5d0467fdc056a12463..aa0e5076f02af7ee63c70e2e6bd326d415839abc 100644 (file)
@@ -459,7 +459,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);
@@ -563,7 +563,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,