* Then do everything else.
         */
        struct task_struct *tsk = current;
+       unsigned int limit;
 
        if (unlikely(in_interrupt()))
                panic("Aiee, killing interrupt handler!");
         * 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) && oops_limit)
-               panic("Oopsed too often (kernel.oops_limit is %d)", oops_limit);
+       limit = READ_ONCE(oops_limit);
+       if (atomic_inc_return(&oops_count) >= limit && limit)
+               panic("Oopsed too often (kernel.oops_limit is %d)", limit);
 
        /*
         * We're taking recursive faults here in make_task_dead. Safest is to just
 
 
 void check_panic_on_warn(const char *origin)
 {
+       unsigned int limit;
+
        if (panic_on_warn)
                panic("%s: panic_on_warn set ...\n", origin);
 
-       if (atomic_inc_return(&warn_count) >= READ_ONCE(warn_limit) && warn_limit)
+       limit = READ_ONCE(warn_limit);
+       if (atomic_inc_return(&warn_count) >= limit && limit)
                panic("%s: system warned too often (kernel.warn_limit is %d)",
-                     origin, warn_limit);
+                     origin, limit);
 }
 
 /**