RDMA/cm: Make the local_id_table xarray non-irq
authorJason Gunthorpe <jgg@nvidia.com>
Wed, 4 Nov 2020 21:40:59 +0000 (17:40 -0400)
committerJason Gunthorpe <jgg@nvidia.com>
Thu, 12 Nov 2020 16:31:27 +0000 (12:31 -0400)
commiteb73060b971aa04e4f7421b8c9c0363918608b72
tree0949b05a44dfdb947ab29e1dda7772bbd9d57135
parentf8394f232b1eab649ce2df5c5f15b0e528c92091
RDMA/cm: Make the local_id_table xarray non-irq

The xarray is never mutated from an IRQ handler, only from work queues
under a spinlock_irq. Thus there is no reason for it be an IRQ type
xarray.

This was copied over from the original IDR code, but the recent rework put
the xarray inside another spinlock_irq which will unbalance the unlocking.

Fixes: c206f8bad15d ("RDMA/cm: Make it clearer how concurrency works in cm_req_handler()")
Link: https://lore.kernel.org/r/0-v1-808b6da3bd3f+1857-cm_xarray_no_irq_jgg@nvidia.com
Reported-by: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/core/cm.c