• Yixing Liu's avatar
    RDMA/hns: Fix NULL pointer problem in free_mr_init() · 12bcaf87
    Yixing Liu authored
    Lock grab occurs in a concurrent scenario, resulting in stepping on a NULL
    pointer.  It should be init mutex_init() first before use the lock.
    
      Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
      Call trace:
       __mutex_lock.constprop.0+0xd0/0x5c0
       __mutex_lock_slowpath+0x1c/0x2c
       mutex_lock+0x44/0x50
       free_mr_send_cmd_to_hw+0x7c/0x1c0 [hns_roce_hw_v2]
       hns_roce_v2_dereg_mr+0x30/0x40 [hns_roce_hw_v2]
       hns_roce_dereg_mr+0x4c/0x130 [hns_roce_hw_v2]
       ib_dereg_mr_user+0x54/0x124
       uverbs_free_mr+0x24/0x30
       destroy_hw_idr_uobject+0x38/0x74
       uverbs_destroy_uobject+0x48/0x1c4
       uobj_destroy+0x74/0xcc
       ib_uverbs_cmd_verbs+0x368/0xbb0
       ib_uverbs_ioctl+0xec/0x1a4
       __arm64_sys_ioctl+0xb4/0x100
       invoke_syscall+0x50/0x120
       el0_svc_common.constprop.0+0x58/0x190
       do_el0_svc+0x30/0x90
       el0_svc+0x2c/0xb4
       el0t_64_sync_handler+0x1a4/0x1b0
       el0t_64_sync+0x19c/0x1a0
    
    Fixes: 70f92521 ("RDMA/hns: Use the reserved loopback QPs to free MR before destroying MPT")
    Signed-off-by: default avatarYixing Liu <liuyixing1@huawei.com>
    Signed-off-by: default avatarHaoyue Xu <xuhaoyue1@hisilicon.com>
    Link: https://lore.kernel.org/r/20221024083814.1089722-3-xuhaoyue1@hisilicon.comSigned-off-by: default avatarLeon Romanovsky <leon@kernel.org>
    12bcaf87
hns_roce_hw_v2.c 192 KB