RDMA/hns: Fix ah error counter in sw stat not increasing
BugLink: https://bugs.launchpad.net/bugs/2089340
[ Upstream commit 39c047d4047a1242aeefa87513174b56a91080ab ]
There are several error cases where hns_roce_create_ah() returns
directly without jumping to sw stat path, thus leading to a problem
that the ah error counter does not increase.
Fixes: ee20cc17e9d8 ("RDMA/hns: Support DSCP")
Fixes: eb7854d63d ("RDMA/hns: Support SW stats with debugfs")
Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com>
Link: https://patch.msgid.link/20240912115700.2016443-1-huangjunxian6@hisilicon.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Portia Stephens <portia.stephens@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
This commit is contained in:
committed by
Mehmet Basaran
parent
52953c2af4
commit
0a609a0af4
@@ -62,8 +62,10 @@ int hns_roce_create_ah(struct ib_ah *ibah, struct rdma_ah_init_attr *init_attr,
|
||||
int ret = 0;
|
||||
u32 max_sl;
|
||||
|
||||
if (hr_dev->pci_dev->revision == PCI_REVISION_ID_HIP08 && udata)
|
||||
return -EOPNOTSUPP;
|
||||
if (hr_dev->pci_dev->revision == PCI_REVISION_ID_HIP08 && udata) {
|
||||
ret = -EOPNOTSUPP;
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
ah->av.port = rdma_ah_get_port_num(ah_attr);
|
||||
ah->av.gid_index = grh->sgid_index;
|
||||
@@ -82,7 +84,8 @@ int hns_roce_create_ah(struct ib_ah *ibah, struct rdma_ah_init_attr *init_attr,
|
||||
ibdev_err_ratelimited(&hr_dev->ib_dev,
|
||||
"failed to set sl, sl (%u) shouldn't be larger than %u.\n",
|
||||
ah->av.sl, max_sl);
|
||||
return -EINVAL;
|
||||
ret = -EINVAL;
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
memcpy(ah->av.dgid, grh->dgid.raw, HNS_ROCE_GID_SIZE);
|
||||
|
||||
Reference in New Issue
Block a user