linux_dsm_epyc7002/drivers/infiniband/hw/mlx5
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
..
ah.c RDMA: Handle AH allocations by IB/core 2019-04-08 13:05:25 -03:00
cmd.c IB/mlx5: Add steering SW ICM device memory type 2019-05-06 12:51:51 -03:00
cmd.h IB/mlx5: Add steering SW ICM device memory type 2019-05-06 12:51:51 -03:00
cong.c infiniband: mlx5: no need to check return value of debugfs_create functions 2019-01-24 09:22:29 -07:00
cq.c net/mlx5: Convert mkey_table to XArray 2019-06-24 16:44:40 -07:00
devx.c net/mlx5: Convert mkey_table to XArray 2019-06-24 16:44:40 -07:00
doorbell.c IB/{core,hw}: Have ib_umem_get extract the ib_ucontext from ib_udata 2019-01-10 17:07:45 -07:00
flow.c net/mlx5: Add flow context for flow tag 2019-06-26 12:01:28 -07:00
gsi.c RDMA, core and ULPs: Declare ib_post_send() and ib_post_recv() arguments const 2018-07-30 20:09:34 -06:00
ib_rep.c RDMA/mlx5: Cleanup rep when doing unload 2019-07-01 16:40:30 -07:00
ib_rep.h {IB,net}/mlx5: Constify rep ops functions pointers 2019-05-31 12:28:14 -07:00
ib_virt.c IB/mlx5: Restore IB guid/policy for virtual functions 2017-07-24 10:34:28 -04:00
Kconfig IB/{core,uverbs}: Move ib_umem_xxx functions from ib_core to ib_uverbs 2019-01-10 17:06:44 -07:00
mad.c RDMA/mad: Reduce MAD scope to mlx5_ib only 2019-01-15 10:02:29 +02:00
main.c RDMA/mlx5: Add vport metadata matching for IB representors 2019-06-26 12:01:29 -07:00
Makefile net/mlx5: Move SRQ functions to RDMA part 2018-12-04 09:14:30 +02:00
mem.c RDMA/mlx5: Embed into the code flow the ODP config option 2019-01-08 16:41:38 -07:00
mlx5_ib.h {IB, net}/mlx5: E-Switch, Use index of rep for vport to IB port mapping 2019-07-01 16:40:30 -07:00
mr.c net/mlx5: Convert mkey_table to XArray 2019-06-24 16:44:40 -07:00
odp.c net/mlx5: Convert mkey_table to XArray 2019-06-24 16:44:40 -07:00
qp.c 5.2 Merge Window pull request 2019-05-09 09:02:46 -07:00
srq_cmd.c RDMA: Handle SRQ allocations by IB/core 2019-04-08 13:05:25 -03:00
srq.c RDMA: Handle SRQ allocations by IB/core 2019-04-08 13:05:25 -03:00
srq.h RDMA: Handle SRQ allocations by IB/core 2019-04-08 13:05:25 -03:00