android_kernel_msm-6.1_noth.../include/linux/mlx5
Dmytro Linkin a5ae8fc905 net/mlx5e: Don't create devices during unload flow
Running devlink reload command for port in switchdev mode cause
resources to corrupt: driver can't release allocated EQ and reclaim
memory pages, because "rdma" auxiliary device had add CQs which blocks
EQ from deletion.
Erroneous sequence happens during reload-down phase, and is following:

1. detach device - suspends auxiliary devices which support it, destroys
   others. During this step "eth-rep" and "rdma-rep" are destroyed,
   "eth" - suspended.
2. disable SRIOV - moves device to legacy mode; as part of disablement -
   rescans drivers. This step adds "rdma" auxiliary device.
3. destroy EQ table - <failure>.

Driver shouldn't create any device during unload flows. To handle that
implement MLX5_PRIV_FLAGS_DETACH flag, set it on device detach and unset
on device attach. If flag is set do no-op on drivers rescan.

Fixes: a925b5e309 ("net/mlx5: Register mlx5 devices to auxiliary virtual bus")
Signed-off-by: Dmytro Linkin <dlinkin@nvidia.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Reviewed-by: Roi Dayan <roid@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2021-06-16 15:36:47 -07:00
..
accel.h net/mlx5: Accel, Add core IPsec support for the Connect-X family 2020-07-16 16:36:42 -07:00
cq.h net/mlx5: Avoid RDMA file inclusion in core driver 2020-06-27 13:50:46 -07:00
device.h net/mlx5e: RX, Add checks for calculated Striding RQ attributes 2021-04-19 20:17:09 -07:00
doorbell.h
driver.h net/mlx5e: Don't create devices during unload flow 2021-06-16 15:36:47 -07:00
eq.h
eswitch.h net/mlx5: E-Switch, Return eswitch max ports when eswitch is supported 2021-04-24 00:58:40 -07:00
fs.h net/mlx5: Treat host PF vport as other (non eswitch manager) vport 2020-11-26 18:45:03 -08:00
fs_helpers.h
mlx5_ifc.h net/mlx5: DR, Create multi-destination flow table with level less than 64 2021-06-01 18:30:21 -07:00
mlx5_ifc_fpga.h
mlx5_ifc_vdpa.h vdpa/mlx5: Make hardware definitions visible to all mlx5 devices 2020-12-04 14:46:56 +02:00
mpfs.h {net,vdpa}/mlx5: Configure interface MAC into mpfs L2 table 2021-05-18 23:01:48 -07:00
port.h net/mlx5: Add support for DSFP module EEPROM dumps 2021-04-11 16:34:56 -07:00
qp.h net/mlx5: Set QP timestamp mode to default 2021-03-10 11:01:56 -08:00
rsc_dump.h net/mlx5: Add support in query QP, CQ and MKEY segments 2020-06-23 17:26:10 +03:00
transobj.h net/mlx5e: Fix page reclaim for dead peer hairpin 2021-06-09 17:20:03 -07:00
vport.h net/mlx5: E-Switch, Prepare to return total vports from eswitch struct 2021-04-24 00:58:43 -07:00