Re: [PATCH v3 for-next 13/13] RDMA/rdmavt: Use refcount_t instead of atomic_t on refcount of rvt_mcast
From: Jason Gunthorpe <jgg@nvidia.com>
Date: 2021-05-27 13:16:04
From: Jason Gunthorpe <jgg@nvidia.com>
Date: 2021-05-27 13:16:04
On Thu, May 27, 2021 at 01:08:37PM +0000, Marciniszyn, Mike wrote:
quoted
+++ b/drivers/infiniband/hw/hfi1/verbs.c@@ -534,7 +534,8 @@ static inline void hfi1_handle_packet(structhfi1_packet *packet, * Notify rvt_multicast_detach() if it is waiting for us * to finish. */ - if (atomic_dec_return(&mcast->refcount) <= 1) + refcount_dec(&mcast->refcount); + if (refcount_read(&mcast->refcount) <= 1) wake_up(&mcast->wait);Is there refcount_ that preserves the atomic characteristics of the single call?
You are supposed to us refcount_dec_and_test() for patterns like this, this hunk looks wrong to me Jason