linux_dsm_epyc7002/drivers/infiniband/hw
Xi Wang 60c3becfd1 RDMA/hns: Fix sg offset non-zero issue
When run perftest in many times, the system will report a BUG as follows:

   BUG: Bad rss-counter state mm:(____ptrval____) idx:0 val:-1
   BUG: Bad rss-counter state mm:(____ptrval____) idx:1 val:1

We tested with different kernel version and found it started from the the
following commit:

commit d10bcf947a ("RDMA/umem: Combine contiguous PAGE_SIZE regions in
SGEs")

In this commit, the sg->offset is always 0 when sg_set_page() is called in
ib_umem_get() and the drivers are not allowed to change the sgl, otherwise
it will get bad page descriptor when unfolding SGEs in __ib_umem_release()
as sg_page_count() will get wrong result while sgl->offset is not 0.

However, there is a weird sgl usage in the current hns driver, the driver
modified sg->offset after calling ib_umem_get(), which caused we iterate
past the wrong number of pages in for_each_sg_page iterator.

This patch fixes it by correcting the non-standard sgl usage found in the
hns_roce_db_map_user() function.

Fixes: d10bcf947a ("RDMA/umem: Combine contiguous PAGE_SIZE regions in SGEs")
Fixes: 0425e3e6e0 ("RDMA/hns: Support flush cqe for hip08 in kernel space")
Link: https://lore.kernel.org/r/1562808737-45723-1-git-send-email-oulijun@huawei.com
Signed-off-by: Xi Wang <wangxi11@huawei.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2019-07-22 14:44:08 -03:00
..
bnxt_re Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
cxgb3 IB: Remove unneeded memset 2019-07-03 14:26:49 -03:00
cxgb4 5.3 Merge window RDMA pull request 2019-07-15 20:38:15 -07:00
efa RDMA/efa: Entropy in admin commands id 2019-07-04 14:31:09 -03:00
hfi1 5.3 Merge window RDMA pull request 2019-07-15 20:38:15 -07:00
hns RDMA/hns: Fix sg offset non-zero issue 2019-07-22 14:44:08 -03:00
i40iw 5.3 Merge window RDMA pull request 2019-07-15 20:38:15 -07:00
mlx4 5.3 Merge window RDMA pull request 2019-07-15 20:38:15 -07:00
mlx5 RDMA/mlx5: Set RDMA DIM to be enabled by default 2019-07-08 16:37:22 -03:00
mthca IB: Remove unneeded memset 2019-07-03 14:26:49 -03:00
ocrdma IB: Remove unneeded memset 2019-07-03 14:26:49 -03:00
qedr 5.3 Merge window RDMA pull request 2019-07-15 20:38:15 -07:00
qib Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-07-19 10:42:02 -07:00
usnic 5.3 Merge window RDMA pull request 2019-07-15 20:38:15 -07:00
vmw_pvrdma Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
Makefile rdma: Remove nes 2019-06-13 09:59:49 -04:00