We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent c6cab97 commit 339b84aCopy full SHA for 339b84a
lib/closure.c
@@ -17,12 +17,18 @@ static inline void closure_put_after_sub(struct closure *cl, int flags)
17
{
18
int r = flags & CLOSURE_REMAINING_MASK;
19
20
- BUG_ON(flags & CLOSURE_GUARD_MASK);
21
- BUG_ON(!r && (flags & ~CLOSURE_DESTRUCTOR));
+ if (WARN(flags & CLOSURE_GUARD_MASK,
+ "closure has guard bits set: %x (%u)",
22
+ flags & CLOSURE_GUARD_MASK, (unsigned) __fls(r)))
23
+ r &= ~CLOSURE_GUARD_MASK;
24
25
if (!r) {
26
smp_acquire__after_ctrl_dep();
27
28
+ WARN(flags & ~CLOSURE_DESTRUCTOR,
29
+ "closure ref hit 0 with incorrect flags set: %x (%u)",
30
+ flags & ~CLOSURE_DESTRUCTOR, (unsigned) __fls(flags));
31
+
32
cl->closure_get_happened = false;
33
34
if (cl->fn && !(flags & CLOSURE_DESTRUCTOR)) {
0 commit comments