Thread (16 messages) 16 messages, 8 authors, 2025-07-08

Re: [PATCHv3 0/2]

From: Keith Busch <kbusch@kernel.org>
Date: 2025-02-28 15:36:37
Also in: kvm, virtualization

On Fri, Feb 28, 2025 at 07:29:45AM -0800, Sean Christopherson wrote:
On Fri, Feb 28, 2025, Keith Busch wrote:
quoted
On Fri, Feb 28, 2025 at 06:32:47AM -0800, Sean Christopherson wrote:
quoted
quoted
@@ -35,10 +35,12 @@ static inline int call_once(struct once *once, int (*cb)(struct once *))
                return 0;
 
         guard(mutex)(&once->lock);
-        WARN_ON(atomic_read(&once->state) == ONCE_RUNNING);
-        if (atomic_read(&once->state) != ONCE_NOT_STARTED)
+        if (WARN_ON(atomic_read(&once->state) == ONCE_RUNNING))
                 return -EINVAL;
 
+        if (atomic_read(&once->state) == ONCE_COMPLETED)
+                return 0;
+
         atomic_set(&once->state, ONCE_RUNNING);
        r = cb(once);
        if (r)
Possible suggestion since it seems odd to do an atomic_read twice on the
same value.
Yeah, good call.  At the risk of getting too cute, how about this?
Sure, that also looks good to me.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help