Thread (19 messages) 19 messages, 4 authors, 2021-05-28

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

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(struct
hfi1_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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help