RDMA/devices: Remove the lock around remove_client_context
authorJason Gunthorpe <jgg@mellanox.com>
Wed, 31 Jul 2019 08:18:41 +0000 (11:18 +0300)
committerDoug Ledford <dledford@redhat.com>
Thu, 1 Aug 2019 15:44:48 +0000 (11:44 -0400)
commit9cd5881719e9555cae300ec8b389eda3c8101339
treecace05458bf51c0903ecaddede02f995f5df4261
parent621e55ff5b8e0ab5d1063f0eae0ef3960bef8f6e
RDMA/devices: Remove the lock around remove_client_context

Due to the complexity of client->remove() callbacks it is desirable to not
hold any locks while calling them. Remove the last one by tracking only
the highest client ID and running backwards from there over the xarray.

Since the only purpose of that lock was to protect the linked list, we can
drop the lock.

Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Link: https://lore.kernel.org/r/20190731081841.32345-3-leon@kernel.org
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/core/device.c
include/rdma/ib_verbs.h