exit: Use READ_ONCE() for all oops/warn limit reads
[linux-2.6-microblaze.git] / kernel / panic.c
index 54deb74..7834c98 100644 (file)
@@ -231,12 +231,15 @@ static void panic_print_sys_info(bool console_flush)
 
 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);
 }
 
 /**