aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
-rw-r--r--validation/context-named.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/validation/context-named.c b/validation/context-named.c
index c65b2022..d5573f4a 100644
--- a/validation/context-named.c
+++ b/validation/context-named.c
@@ -465,6 +465,27 @@ static void warn_exact_fn2(void)
r2();
}
+#define __acquire(x) __context__(x,1)
+#define __release(x) __context__(x,-1)
+
+#define rl() \
+ do { __acquire(RCU); } while (0)
+
+#define ru() \
+ do { __release(RCU); } while (0)
+
+static void good_mixed_with_if(void)
+{
+ rl();
+
+ if (condition) {
+ a();
+ r();
+ }
+
+ ru();
+}
+
/*
* check-name: Check -Wcontext with lock names
*