[PATCH v2 5/8] kernel: convert process/thread iterators to for_each_*_rculock

Oleg Nesterov oleg at redhat.com
Tue Sep 8 06:35:16 UTC 2026


On 09/08, K Prateek Nayak wrote:
>
> On 9/8/2026 3:24 AM, Oleg Nesterov wrote:
> >> This might be my - admittedly shallow - understanding of scoped_guard,
> >> but does scoped guard handle goto correctly?
> >
> > Yes, it does,
> >
> >> and why it's generally discouraged to mix cleanup.h and goto.
> >
> > Hmm, why? I didn't know...
>
> Apparently older GCC would allow subtle bugs with cleanup + goto to slip
> by but clang has always caught those bugs and refused to compile so as
> long as clang builds are happy, things should be good.
>
> Here is an older explanation from Peter:
> https://lore.kernel.org/lkml/20260327154136.GL3739106@noisy.programming.kicks-ass.net/

Ah, but in this case the code is buggy, "goto unregister" jumps
into the scope of __free.

Anyway, I agree that mixing cleanup and goto can make the code
confusing or buggy, but this particular case still looks fine
to me...

Oleg.




More information about the Linux-security-module-archive mailing list