| From 5bb8b693867ea03d1d5c7c3d15d96971af836ece Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 24 Jun 2019 19:47:51 +0800 |
| Subject: RDMA/hns: Fixs hw access invalid dma memory error |
| |
| From: Xi Wang <wangxi11@huawei.com> |
| |
| [ Upstream commit ec5bc2cc69b4fc494e04d10fc5226f6f9cf67c56 ] |
| |
| When smmu is enable, if execute the perftest command and then use 'kill |
| -9' to exit, follow this operation repeatedly, the kernel will have a high |
| probability to print the following smmu event: |
| |
| arm-smmu-v3 arm-smmu-v3.1.auto: event 0x10 received: |
| arm-smmu-v3 arm-smmu-v3.1.auto: 0x00007d0000000010 |
| arm-smmu-v3 arm-smmu-v3.1.auto: 0x0000020900000080 |
| arm-smmu-v3 arm-smmu-v3.1.auto: 0x00000000f47cf000 |
| arm-smmu-v3 arm-smmu-v3.1.auto: 0x00000000f47cf000 |
| |
| This is because the hw will periodically refresh the qpc cache until the |
| next reset. |
| |
| This patch fixed it by removing the action that release qpc memory in the |
| 'hns_roce_qp_free' function. |
| |
| Fixes: 9a4435375cd1 ("IB/hns: Add driver files for hns RoCE driver") |
| Signed-off-by: Xi Wang <wangxi11@huawei.com> |
| Signed-off-by: Jason Gunthorpe <jgg@mellanox.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/infiniband/hw/hns/hns_roce_qp.c | 1 - |
| 1 file changed, 1 deletion(-) |
| |
| diff --git a/drivers/infiniband/hw/hns/hns_roce_qp.c b/drivers/infiniband/hw/hns/hns_roce_qp.c |
| index 33cf1035030b5..6f3c0ea99dd05 100644 |
| --- a/drivers/infiniband/hw/hns/hns_roce_qp.c |
| +++ b/drivers/infiniband/hw/hns/hns_roce_qp.c |
| @@ -241,7 +241,6 @@ void hns_roce_qp_free(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp) |
| |
| if ((hr_qp->ibqp.qp_type) != IB_QPT_GSI) { |
| hns_roce_table_put(hr_dev, &qp_table->irrl_table, hr_qp->qpn); |
| - hns_roce_table_put(hr_dev, &qp_table->qp_table, hr_qp->qpn); |
| } |
| } |
| |
| -- |
| 2.20.1 |
| |