On Fri, Dec 02, 2022 at 01:06:21PM -0800, Kees Cook wrote: > --- a/kernel/exit.c > +++ b/kernel/exit.c > @@ -954,7 +954,7 @@ void __noreturn make_task_dead(int signr) > * To make sure this can't happen, place an upper bound on how often the > * kernel may oops without panic(). > */ > - if (atomic_inc_return(&oops_count) >= READ_ONCE(oops_limit)) > + if (atomic_inc_return(&oops_count) >= READ_ONCE(oops_limit) && oops_limit) > panic("Oopsed too often (kernel.oops_limit is %d)", oops_limit); > That's dodgy, please write as: limit = READ_ONCE(oops_limit); if (atomic_inc_return(&oops_count) >= limit && limit) So we don't explicitly add a reload that negates the whole READ_ONCE().