linux/drivers/infiniband/hw
Yishai Hadas 1c77483e4c IB: Improve uverbs_cleanup_ucontext algorithm
Improve uverbs_cleanup_ucontext algorithm to work properly when the
topology graph of the objects cannot be determined at compile time.  This
is the case with objects created via the devx interface in mlx5.

Typically uverbs objects must be created in a strict topologically sorted
order, so that LIFO ordering will generally cause them to be freed
properly. There are only a few cases (eg memory windows) where objects can
point to things out of the strict LIFO order.

Instead of using an explicit ordering scheme where the HW destroy is not
allowed to fail, go over the list multiple times and allow the destroy
function to fail. If progress halts then a final, desperate, cleanup is
done before leaking the memory. This indicates a driver bug.

Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2018-06-29 14:35:46 -06:00
..
bnxt_re IB/core: add max_send_sge and max_recv_sge attributes 2018-06-18 13:17:28 -06:00
cxgb3 IB/core: add max_send_sge and max_recv_sge attributes 2018-06-18 13:17:28 -06:00
cxgb4 iw_cxgb4: remove duplicate memcpy() in c4iw_create_listen() 2018-06-18 16:06:01 -06:00
hfi1 IB/hfi1: Remove INTx support and simplify MSIx usage 2018-06-22 09:12:17 -06:00
hns IB/core: add max_send_sge and max_recv_sge attributes 2018-06-18 13:17:28 -06:00
i40iw IB/core: add max_send_sge and max_recv_sge attributes 2018-06-18 13:17:28 -06:00
mlx4 IB/mlx4: Create slave AH's directly 2018-06-26 14:37:26 -06:00
mlx5 IB: Improve uverbs_cleanup_ucontext algorithm 2018-06-29 14:35:46 -06:00
mthca IB/core: add max_send_sge and max_recv_sge attributes 2018-06-18 13:17:28 -06:00
nes IB/core: add max_send_sge and max_recv_sge attributes 2018-06-18 13:17:28 -06:00
ocrdma IB/core: add max_send_sge and max_recv_sge attributes 2018-06-18 13:17:28 -06:00
qedr IB/core: add max_send_sge and max_recv_sge attributes 2018-06-18 13:17:28 -06:00
qib IB/core: add max_send_sge and max_recv_sge attributes 2018-06-18 13:17:28 -06:00
usnic IB/usnic: Update with bug fixes from core code 2018-06-25 14:38:28 -06:00
vmw_pvrdma RDMA/vmw_pvrdma: Delete unused function 2018-06-27 15:08:49 -06:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00