vsprintf: use WARN_ON_ONCE
authorMarcin Slusarz <marcin.slusarz@gmail.com>
Tue, 22 Sep 2009 00:04:29 +0000 (17:04 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 22 Sep 2009 14:17:47 +0000 (07:17 -0700)
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Reviewed-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
lib/vsprintf.c

index d320c1816a7bfb3719b82e3b6da4531b473cb94c..73a14b8c6d1f860796ebe7982ff0a7ca1d6c2081 100644 (file)
@@ -1092,13 +1092,8 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
 
        /* Reject out-of-range values early.  Large positive sizes are
           used for unknown buffer sizes. */
-       if (unlikely((int) size < 0)) {
-               /* There can be only one.. */
-               static char warn = 1;
-               WARN_ON(warn);
-               warn = 0;
+       if (WARN_ON_ONCE((int) size < 0))
                return 0;
-       }
 
        str = buf;
        end = buf + size;
@@ -1544,13 +1539,8 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
 
        struct printf_spec spec = {0};
 
-       if (unlikely((int) size < 0)) {
-               /* There can be only one.. */
-               static char warn = 1;
-               WARN_ON(warn);
-               warn = 0;
+       if (WARN_ON_ONCE((int) size < 0))
                return 0;
-       }
 
        str = buf;
        end = buf + size;