summaryrefslogtreecommitdiff
path: root/include/linux/closure.h
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2024-07-04 16:00:24 +0200
committerPeter Zijlstra <peterz@infradead.org>2024-07-04 16:00:24 +0200
commit0c8ea05e9b3d8e5287e2a968f2a2e744dfd31b99 (patch)
treeba0443b74f063471c5d81d85e795e04e7e1dc79c /include/linux/closure.h
parent0ca4da2412da05fb9dd0b5d90dcc8026219f0f29 (diff)
parent34b3fc558b537bdf99644dcde539e151716f6331 (diff)
Merge branch 'tip/x86/cpu'
The Lunarlake patches rely on the new VFM stuff. Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Diffstat (limited to 'include/linux/closure.h')
-rw-r--r--include/linux/closure.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/closure.h b/include/linux/closure.h
index c554c6a08768..99155df162d0 100644
--- a/include/linux/closure.h
+++ b/include/linux/closure.h
@@ -194,6 +194,18 @@ static inline void closure_sync(struct closure *cl)
__closure_sync(cl);
}
+int __closure_sync_timeout(struct closure *cl, unsigned long timeout);
+
+static inline int closure_sync_timeout(struct closure *cl, unsigned long timeout)
+{
+#ifdef CONFIG_DEBUG_CLOSURES
+ BUG_ON(closure_nr_remaining(cl) != 1 && !cl->closure_get_happened);
+#endif
+ return cl->closure_get_happened
+ ? __closure_sync_timeout(cl, timeout)
+ : 0;
+}
+
#ifdef CONFIG_DEBUG_CLOSURES
void closure_debug_create(struct closure *cl);