Re: [PATCH for-rc] RDMA/hns: Fix a calltrace when registering MR from userspace

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 16, 2020 at 09:37:09PM +0800, Weihang Li wrote:
> From: Yangyang Li <liyangyang20@xxxxxxxxxx>
> 
> ibmr.device is assigned after MR is successfully registered, but both
> write_mtpt() and frmr_write_mtpt() accesses it during the mr registration
> process, which may cause the following error when trying to register MR
> in userspace and pbl_hop_num is set to 0.
> 
> [ 3307.615548] pc : hns_roce_mtr_find+0xa0/0x200 [hns_roce]
> [ 3307.615554] lr : set_mtpt_pbl+0x54/0x118 [hns_roce_hw_v2]
> [ 3307.707924] sp : ffff00023e73ba20
> [ 3307.711225] x29: ffff00023e73ba20 x28: ffff00023e73bad8
> [ 3307.716523] x27: 0000000000000000 x26: 0000000000000000
> [ 3307.721821] x25: 0000000000000002 x24: 0000000000000000
> [ 3307.727119] x23: ffff00023e73bad0 x22: 0000000000000000
> [ 3307.732417] x21: ffff0000094d9000 x20: 0000000000000000
> [ 3307.737715] x19: ffff8020a6bdb2c0 x18: 0000000000000000
> [ 3307.743012] x17: 0000000000000000 x16: 0000000000000000
> [ 3307.748310] x15: 0000000000000000 x14: 0000000000000000
> [ 3307.753607] x13: 0140000000000000 x12: 0040000000000041
> [ 3307.758905] x11: ffff000240000000 x10: 0000000000001000
> [ 3307.764203] x9 : 0000000000000000 x8 : ffff802fb7558480
> [ 3307.769501] x7 : ffff802fb7558480 x6 : 000000000003483d
> [ 3307.774799] x5 : ffff00023e73bad0 x4 : 0000000000000002
> [ 3307.780097] x3 : ffff00023e73bad8 x2 : 0000000000000000
> [ 3307.785394] x1 : 0000000000000000 x0 : ffff0000094d9708
> [ 3307.790692] Call trace:
> [ 3307.793130]  hns_roce_mtr_find+0xa0/0x200 [hns_roce]
> [ 3307.798081]  set_mtpt_pbl+0x54/0x118 [hns_roce_hw_v2]
> [ 3307.803119]  hns_roce_v2_write_mtpt+0x14c/0x168 [hns_roce_hw_v2]
> [ 3307.809114]  hns_roce_mr_enable+0x6c/0x148 [hns_roce]
> [ 3307.814154]  hns_roce_reg_user_mr+0xd8/0x130 [hns_roce]
> [ 3307.819369]  ib_uverbs_reg_mr+0x14c/0x2e0 [ib_uverbs]
> [ 3307.824408]  ib_uverbs_write+0x27c/0x3e8 [ib_uverbs]
> [ 3307.829361]  __vfs_write+0x60/0x190
> [ 3307.832835]  vfs_write+0xac/0x1c0
> [ 3307.836136]  ksys_write+0x6c/0xd8
> [ 3307.839437]  __arm64_sys_write+0x24/0x30
> [ 3307.843347]  el0_svc_common+0x78/0x130
> [ 3307.847082]  el0_svc_handler+0x38/0x78
> [ 3307.850817]  el0_svc+0x8/0xc
> 
> Solve above issue by adding a pointer of structure hns_roce_dev as a
> parameter of write_mtpt() and frmr_write_mtpt(), so that both of these
> functions can access it before finishing MR's registration.
> 
> Fixes: 9b2cf76c9f05 ("RDMA/hns: Optimize PBL buffer allocation process")
> Signed-off-by: Yangyang Li <liyangyang20@xxxxxxxxxx>
> Signed-off-by: Weihang Li <liweihang@xxxxxxxxxx>
> ---
>  drivers/infiniband/hw/hns/hns_roce_device.h |  7 ++++---
>  drivers/infiniband/hw/hns/hns_roce_hw_v1.c  |  4 ++--
>  drivers/infiniband/hw/hns/hns_roce_hw_v2.c  | 15 ++++++++-------
>  drivers/infiniband/hw/hns/hns_roce_mr.c     |  5 +++--
>  4 files changed, 17 insertions(+), 14 deletions(-)

Applied to for-rc, thanks

Jason



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux