RDMA/hns: Do not halt commands during reset until later
authorYangyang Li <liyangyang20@huawei.com>
Tue, 23 Nov 2021 08:48:09 +0000 (16:48 +0800)
committerJason Gunthorpe <jgg@nvidia.com>
Thu, 25 Nov 2021 17:20:07 +0000 (13:20 -0400)
commit52414e27d6b568120b087d1fbafbb4482b0ccaab
treef74ba4436b975b393ac661625ad96b1de9d056fc
parentc4a6f9cd10bd8f84c601516b96b24e3eb6dcc86a
RDMA/hns: Do not halt commands during reset until later

is_reset is used to indicate whether the hardware starts to reset. When
hns_roce_hw_v2_reset_notify_down() is called, the hardware has not yet
started to reset. If is_reset is set at this time, all mailbox operations
of resource destroy actions will be intercepted by driver. When the driver
cleans up resources, but the hardware is still accessed, the following
errors will appear:

  arm-smmu-v3 arm-smmu-v3.2.auto: event 0x10 received:
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x0000350100000010
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x000002088000003f
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x00000000a50e0800
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x0000000000000000
  arm-smmu-v3 arm-smmu-v3.2.auto: event 0x10 received:
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x0000350100000010
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x000002088000043e
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x00000000a50a0800
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x0000000000000000
  arm-smmu-v3 arm-smmu-v3.2.auto: event 0x10 received:
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x0000350100000010
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x0000020880000436
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x00000000a50a0880
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x0000000000000000
  arm-smmu-v3 arm-smmu-v3.2.auto: event 0x10 received:
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x0000350100000010
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x000002088000043a
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x00000000a50e0840
  hns3 0000:35:00.0: INT status: CMDQ(0x0) HW errors(0x0) other(0x0)
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x0000000000000000
  hns3 0000:35:00.0: received unknown or unhandled event of vector0
  arm-smmu-v3 arm-smmu-v3.2.auto: event 0x10 received:
  arm-smmu-v3 arm-smmu-v3.2.auto:  0x0000350100000010
  {34}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 7

is_reset will be set correctly in check_aedev_reset_status(), so the
setting in hns_roce_hw_v2_reset_notify_down() should be deleted.

Fixes: 726be12f5ca0 ("RDMA/hns: Set reset flag when hw resetting")
Link: https://lore.kernel.org/r/20211123084809.37318-1-liangwenpeng@huawei.com
Signed-off-by: Yangyang Li <liyangyang20@huawei.com>
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/hns/hns_roce_hw_v2.c