Merge tag 'trace-seq-buf-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/roste...
[cascardo/linux.git] / arch / x86 / mm / dump_pagetables.c
index 95a427e..f0cedf3 100644 (file)
@@ -75,6 +75,9 @@ static struct addr_marker address_markers[] = {
        { VMEMMAP_START,        "Vmemmap" },
 # ifdef CONFIG_X86_ESPFIX64
        { ESPFIX_BASE_ADDR,     "ESPfix Area", 16 },
+# endif
+# ifdef CONFIG_EFI
+       { EFI_VA_END,           "EFI Runtime Services" },
 # endif
        { __START_KERNEL_map,   "High Kernel Mapping" },
        { MODULES_VADDR,        "Modules" },
@@ -126,7 +129,7 @@ static void printk_prot(struct seq_file *m, pgprot_t prot, int level, bool dmsg)
 
        if (!pgprot_val(prot)) {
                /* Not present */
-               pt_dump_cont_printf(m, dmsg, "                          ");
+               pt_dump_cont_printf(m, dmsg, "                              ");
        } else {
                if (pr & _PAGE_USER)
                        pt_dump_cont_printf(m, dmsg, "USR ");
@@ -145,18 +148,16 @@ static void printk_prot(struct seq_file *m, pgprot_t prot, int level, bool dmsg)
                else
                        pt_dump_cont_printf(m, dmsg, "    ");
 
-               /* Bit 9 has a different meaning on level 3 vs 4 */
-               if (level <= 3) {
-                       if (pr & _PAGE_PSE)
-                               pt_dump_cont_printf(m, dmsg, "PSE ");
-                       else
-                               pt_dump_cont_printf(m, dmsg, "    ");
-               } else {
-                       if (pr & _PAGE_PAT)
-                               pt_dump_cont_printf(m, dmsg, "pat ");
-                       else
-                               pt_dump_cont_printf(m, dmsg, "    ");
-               }
+               /* Bit 7 has a different meaning on level 3 vs 4 */
+               if (level <= 3 && pr & _PAGE_PSE)
+                       pt_dump_cont_printf(m, dmsg, "PSE ");
+               else
+                       pt_dump_cont_printf(m, dmsg, "    ");
+               if ((level == 4 && pr & _PAGE_PAT) ||
+                   ((level == 3 || level == 2) && pr & _PAGE_PAT_LARGE))
+                       pt_dump_cont_printf(m, dmsg, "pat ");
+               else
+                       pt_dump_cont_printf(m, dmsg, "    ");
                if (pr & _PAGE_GLOBAL)
                        pt_dump_cont_printf(m, dmsg, "GLB ");
                else