RDMA/core: Fix locking in ib_uverbs_event_read
authorJason Gunthorpe <jgg@mellanox.com>
Wed, 8 Jan 2020 17:22:03 +0000 (19:22 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Fri, 10 Jan 2020 14:52:56 +0000 (10:52 -0400)
commit14e23bd6d22123f6f3b2747701fa6cd4c6d05873
tree943acf256671a2ff0075fced9959db471f090be3
parent74f75cda754eb69a77f910ceb5bc85f8e9ba56a5
RDMA/core: Fix locking in ib_uverbs_event_read

This should not be using ib_dev to test for disassociation, during
disassociation is_closed is set under lock and the waitq is triggered.

Instead check is_closed and be sure to re-obtain the lock to test the
value after the wait_event returns.

Fixes: 036b10635739 ("IB/uverbs: Enable device removal when there are active user space applications")
Link: https://lore.kernel.org/r/1578504126-9400-12-git-send-email-yishaih@mellanox.com
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Reviewed-by: HÃ¥kon Bugge <haakon.bugge@oracle.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/uverbs_main.c