Merge tag 'for-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pateldipen19...
[linux-block.git] / lib / test_printf.c
index 46b4e6c414a3573f9714ea36173cf7a28bc50a02..7677ebccf3c36aad90d6ae6a8023f81eb33d89f2 100644 (file)
@@ -642,12 +642,26 @@ page_flags_test(int section, int node, int zone, int last_cpupid,
        test(cmp_buf, "%pGp", &flags);
 }
 
+static void __init page_type_test(unsigned int page_type, const char *name,
+                                 char *cmp_buf)
+{
+       unsigned long size;
+
+       size = scnprintf(cmp_buf, BUF_SIZE, "%#x(", page_type);
+       if (page_type_has_type(page_type))
+               size += scnprintf(cmp_buf + size, BUF_SIZE - size, "%s", name);
+
+       snprintf(cmp_buf + size, BUF_SIZE - size, ")");
+       test(cmp_buf, "%pGt", &page_type);
+}
+
 static void __init
 flags(void)
 {
        unsigned long flags;
        char *cmp_buffer;
        gfp_t gfp;
+       unsigned int page_type;
 
        cmp_buffer = kmalloc(BUF_SIZE, GFP_KERNEL);
        if (!cmp_buffer)
@@ -687,6 +701,18 @@ flags(void)
        gfp |= __GFP_HIGH;
        test(cmp_buffer, "%pGg", &gfp);
 
+       page_type = ~0;
+       page_type_test(page_type, "", cmp_buffer);
+
+       page_type = 10;
+       page_type_test(page_type, "", cmp_buffer);
+
+       page_type = ~PG_buddy;
+       page_type_test(page_type, "buddy", cmp_buffer);
+
+       page_type = ~(PG_table | PG_buddy);
+       page_type_test(page_type, "table|buddy", cmp_buffer);
+
        kfree(cmp_buffer);
 }