linux_dsm_epyc7002/drivers/infiniband/hw
Bodong Wang b8ca123860 RDMA/mlx5: Cleanup rep when doing unload
When an IB rep is loaded, netdev for the same vport is saved for later
reference. However, it's not cleaned up when doing unload. For ECPF,
kernel crashes when driver is referring to the already removed netdev.

Following steps lead to a shown call trace:
1. Create n VFs from host PF
2. Distroy the VFs
3. Run "rdma link" from ARM

Call trace:
  mlx5_ib_get_netdev+0x9c/0xe8 [mlx5_ib]
  mlx5_query_port_roce+0x268/0x558 [mlx5_ib]
  mlx5_ib_rep_query_port+0x14/0x34 [mlx5_ib]
  ib_query_port+0x9c/0xfc [ib_core]
  fill_port_info+0x74/0x28c [ib_core]
  nldev_port_get_doit+0x1a8/0x1e8 [ib_core]
  rdma_nl_rcv_msg+0x16c/0x1c0 [ib_core]
  rdma_nl_rcv+0xe8/0x144 [ib_core]
  netlink_unicast+0x184/0x214
  netlink_sendmsg+0x288/0x354
  sock_sendmsg+0x18/0x2c
  __sys_sendto+0xbc/0x138
  __arm64_sys_sendto+0x28/0x34
  el0_svc_common+0xb0/0x100
  el0_svc_handler+0x6c/0x84
  el0_svc+0x8/0xc

Cleanup the rep and netdev reference when unloading IB rep.

Fixes: 26628e2d58 ("RDMA/mlx5: Move to single device multiport ports in switchdev mode")
Signed-off-by: Bodong Wang <bodong@mellanox.com>
Reviewed-by: Mark Bloch <markb@mellanox.com>
Reviewed-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
2019-07-01 16:40:30 -07:00
..
bnxt_re RDMA/bnxt_re: Use core helpers to get aligned DMA address 2019-05-06 13:08:11 -03:00
cxgb3 RDMA: Get rid of iw_cm_verbs 2019-05-03 10:56:56 -03:00
cxgb4 5.2 Merge Window pull request 2019-05-09 09:02:46 -07:00
efa RDMA/efa: Add driver to Kconfig/Makefile 2019-05-07 12:47:47 -03:00
hfi1 IB/hfi1: use the new FOLL_LONGTERM flag to get_user_pages_fast() 2019-05-14 09:47:46 -07:00
hns 5.2 Merge Window pull request 2019-05-09 09:02:46 -07:00
i40iw 5.2 Merge Window pull request 2019-05-09 09:02:46 -07:00
mlx4 5.2 Merge Window pull request 2019-05-09 09:02:46 -07:00
mlx5 RDMA/mlx5: Cleanup rep when doing unload 2019-07-01 16:40:30 -07:00
mthca IB/mthca: use the new FOLL_LONGTERM flag to get_user_pages_fast() 2019-05-14 09:47:46 -07:00
nes 5.2 Merge Window pull request 2019-05-09 09:02:46 -07:00
ocrdma RDMA: Directly cast the sockaddr union to sockaddr 2019-05-13 22:16:38 -03:00
qedr 5.2 Merge Window pull request 2019-05-09 09:02:46 -07:00
qib IB/qib: use the new FOLL_LONGTERM flag to get_user_pages_fast() 2019-05-14 09:47:46 -07:00
usnic mm/gup: replace get_user_pages_longterm() with FOLL_LONGTERM 2019-05-14 09:47:45 -07:00
vmw_pvrdma Merge branch 'rdma_mmap' into rdma.git for-next 2019-04-24 16:20:34 -03:00
Makefile RDMA/efa: Add driver to Kconfig/Makefile 2019-05-07 12:47:47 -03:00