OSDN Git Service

RDMA/hns: Fixs hw access invalid dma memory error
authorXi Wang <wangxi11@huawei.com>
Mon, 24 Jun 2019 11:47:51 +0000 (19:47 +0800)
committerJason Gunthorpe <jgg@mellanox.com>
Sun, 7 Jul 2019 12:19:38 +0000 (09:19 -0300)
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>
drivers/infiniband/hw/hns/hns_roce_qp.c

index c109602..e042402 100644 (file)
@@ -254,7 +254,6 @@ void hns_roce_qp_free(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)
                        hns_roce_table_put(hr_dev, &qp_table->trrl_table,
                                           hr_qp->qpn);
                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);
        }
 }