linux/drivers/infiniband/hw/cxgb4
Dakshaja Uppalapati 2638a32348 RDMA/iw_cxgb4: Fix refcount underflow while destroying cqs.
Previous atomic increment/decrement logic expects the atomic count to be
'0' after the final decrement.

Replacing atomic count with refcount does not allow that, as
refcount_dec() considers count of 1 as underflow and triggers a kernel
splat.

Fix the current refcount logic by using the usual pattern of decrementing
the refcount and test if it is '0' on the final deref in
c4iw_destroy_cq(). Use wait_for_completion() instead of wait_event().

Fixes: 7183451f84 ("RDMA/cxgb4: Use refcount_t instead of atomic_t for reference counting")
Link: https://lore.kernel.org/r/1628167412-12114-1-git-send-email-dakshaja@chelsio.com
Signed-off-by: Dakshaja Uppalapati <dakshaja@chelsio.com>
Reviewed-by: Potnuri Bharat Teja <bharat@chelsio.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
2021-08-05 22:33:00 -03:00
..
cm.c RDMA merge window pull request 2021-05-01 09:15:05 -07:00
cq.c RDMA/iw_cxgb4: Fix refcount underflow while destroying cqs. 2021-08-05 22:33:00 -03:00
device.c RDMA/iw_cxgb4: cleanup device debugfs entries on ULD remove 2020-05-25 15:38:35 -03:00
ev.c RDMA/iw_cxgb4: Fix refcount underflow while destroying cqs. 2021-08-05 22:33:00 -03:00
id_table.c
iw_cxgb4.h RDMA/iw_cxgb4: Fix refcount underflow while destroying cqs. 2021-08-05 22:33:00 -03:00
Kconfig treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
mem.c RDMA/cxgb4: Remove MW support 2020-10-26 19:27:44 -03:00
provider.c RDMA: Remove rdma_set_device_sysfs_group() 2021-06-16 20:58:32 -03:00
qp.c RDMA/cxgb4: Fix missing error code in create_qp() 2021-06-04 11:55:34 -03:00
resource.c RDMA/cxgb4: add missing qpid increment 2021-04-20 09:36:00 -03:00
restrack.c RDMA: Use kzalloc for allocating only one thing 2021-01-07 16:47:53 -04:00
t4.h RDMA: Delete not-used static inline functions 2021-03-22 09:31:19 -03:00
t4fw_ri_api.h RDMA: Replace zero-length array with flexible-array member 2020-02-20 13:33:51 -04:00