RDMA/mlx5: Issue FW command to destroy SRQ on reentry
authorLeon Romanovsky <leonro@mellanox.com>
Mon, 7 Sep 2020 12:09:15 +0000 (15:09 +0300)
committerJason Gunthorpe <jgg@nvidia.com>
Wed, 9 Sep 2020 17:04:13 +0000 (14:04 -0300)
commitfd89099d635e67f22c3eda263bef1f27f9d5dcb5
tree9f90ba377b044efeb89c49d6603f6d715d0e8132
parent9a9ebf8cd72b809405ad571fb2f635ffc9df2420
RDMA/mlx5: Issue FW command to destroy SRQ on reentry

The HW release can fail and leave the system in limbo state, where SRQ is
removed from the table, but can't be destroyed later.  In every reentry,
the initial xa_erase_irq() check will fail.

Rewrite the erase logic to keep index, but don't store the entry
itself. By doing it, we can safely reinsert entry back in the case of
destroy failure.

Link: https://lore.kernel.org/r/20200907120921.476363-4-leon@kernel.org
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/mlx5/srq_cmd.c