Merge branch 'for-5.16-vsprintf-pgp' into for-linus
[linux-2.6-microblaze.git] / lib / vsprintf.c
index d7ad44f..f90f91d 100644 (file)
@@ -408,8 +408,9 @@ int num_to_str(char *buf, int size, unsigned long long num, unsigned int width)
 #define SMALL  32              /* use lowercase in hex (must be 32 == 0x20) */
 #define SPECIAL        64              /* prefix hex with "0x", octal with "0" */
 
+static_assert(SIGN == 1);
 static_assert(ZEROPAD == ('0' - ' '));
-static_assert(SMALL == ' ');
+static_assert(SMALL == ('a' ^ 'A'));
 
 enum format_type {
        FORMAT_TYPE_NONE, /* Just a string part */
@@ -2023,6 +2024,11 @@ char *format_page_flags(char *buf, char *end, unsigned long flags)
        bool append = false;
        int i;
 
+       buf = number(buf, end, flags, default_flag_spec);
+       if (buf < end)
+               *buf = '(';
+       buf++;
+
        /* Page flags from the main area. */
        if (main_flags) {
                buf = format_flags(buf, end, main_flags, pageflag_names);
@@ -2051,6 +2057,9 @@ char *format_page_flags(char *buf, char *end, unsigned long flags)
 
                append = true;
        }
+       if (buf < end)
+               *buf = ')';
+       buf++;
 
        return buf;
 }