From 2bce6368c46b835a133f7f4946eea9c4513828dd Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Tue, 24 Oct 2023 14:46:58 -0400 Subject: closures: Better memory barriers atomic_(dec|sub)_return_release() are a thing now - use them. Also, delete the useless barrier in set_closure_fn(): it's redundant with the memory barrier in closure_put(0. Since closure_put() would now otherwise just have a release barrier, we also need a new barrier when the ref hits 0 - smp_acquire__after_ctrl_dep(). Signed-off-by: Kent Overstreet --- include/linux/closure.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'include/linux/closure.h') diff --git a/include/linux/closure.h b/include/linux/closure.h index 722a586bb224..bdab17050bc8 100644 --- a/include/linux/closure.h +++ b/include/linux/closure.h @@ -233,8 +233,6 @@ static inline void set_closure_fn(struct closure *cl, closure_fn *fn, closure_set_ip(cl); cl->fn = fn; cl->wq = wq; - /* between atomic_dec() in closure_put() */ - smp_mb__before_atomic(); } static inline void closure_queue(struct closure *cl) -- cgit v1.2.3-70-g09d2