All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20151112084616.EABFE19B@black.fi.intel.com>

diff --git a/a/1.txt b/N1/1.txt
index fb81410..6387066 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -47,3 +47,216 @@ Yeah, I basically worry about non realized side effect.
 And these masks are defined via {PMD,PUD}_PAGE_SIZE. Should we change them
 to 'unsigned long long' too or leave alone? What about PAGE_SIZE and
 PAGE_MASK? Need to be converted too?
+
+>From 96362f38d47d6ef9a0ebb9a92c6b4db9337f1565 Mon Sep 17 00:00:00 2001
+From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
+Date: Thu, 12 Nov 2015 10:39:00 +0200
+Subject: [PATCH] x86/mm: fix regression with huge pages on PAE
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Recent PAT patchset has caused issue on 32-bit PAE machines:
+
+page:eea45000 count:0 mapcount:-128 mapping:  (null) index:0x0
+flags: 0x40000000()
+page dumped because: VM_BUG_ON_PAGE(page_mapcount(page) < 0)
+------------[ cut here ]------------
+kernel BUG at /home/build/linux-boris/mm/huge_memory.c:1485!
+invalid opcode: 0000 [#1] SMP
+Modules linked in: ahci libahci ata_generic skge r8169 firewire_ohci mii libata qla2xxx(+) scsi_transport_fc scsi_mod radeon tpm_infineon ttm backlight wmi acpi_cpufreq tpm_tis
+CPU: 2 PID: 1758 Comm: modprobe Not tainted 4.3.0upstream-09269-gce5c2d2 #1
+Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./To be filled by O.E.M., BIOS 080014  07/18/2008
+task: ed84e600 ti: f6458000 task.ti: f6458000
+EIP: 0060:[<c11bde80>] EFLAGS: 00010246 CPU: 2
+EIP is at zap_huge_pmd+0x240/0x260
+EAX: 00000000 EBX: f6459eb0 ECX: 00000292 EDX: 00000292
+ESI: f6634d98 EDI: eea45000 EBP: f6459dc8 ESP: f6459d98
+ata1: SATA link down (SStatus 0 SControl 300)
+ata2: SATA link down (SStatus 0 SControl 300)
+ DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
+CR0: 8005003b CR2: b75b21a0 CR3: 3655b880 CR4: 000006f0
+Stack:
+ ...
+Call Trace:
+ unmap_single_vma
+ ? __wake_up
+ unmap_vmas
+ unmap_region
+ do_munmap
+ vm_munmap
+ SyS_munmap
+ do_fast_syscall_32
+ ? __do_page_fault
+ sysenter_past_esp
+Code: 00 e9 05 fe ff ff 90 8d 74 26 00 0f 0b eb fe ba 4c e1 7a c1 89 f8 e8 f0 91 fd ff 0f 0b eb fe ba 6c e1 7a c1 89 f8 e8 e0 91 fd ff <0f> 0b eb fe ba c4 e1 7a c1 89 f8 e8 d0 91 fd ff 0f 0b eb fe 8d
+EIP: [<c11bde80>] zap_huge_pmd+0x240/0x260 SS:ESP 0068:f6459d98
+---[ end trace cba8fb1fc2e2e78a ]---
+
+The problem is in pmd_pfn_mask() and pmd_flags_mask(). These helpers use
+PMD_PAGE_MASK to calculate resulting mask. PMD_PAGE_MASK is 'unsigned
+long', not 'unsigned long long' as phys_addr_t. As result upper bits of
+resulting mask is truncated.
+
+pud_pfn_mask() and pud_flags_mask() aren't problematic since we don't
+have PUD page table level on 32-bit systems, but it's reasonable to keep
+them consitent with PMD counterpart.
+
+The patch introduces PHYSICAL_PMD_PAGE_MASK and PHYSICAL_PUD_PAGE_MASK
+in addition to existing PHYSICAL_PAGE_MASK and rework helpers to use
+them.
+
+Reported-and-Tested-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
+Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
+Reviewed-by: Toshi Kani <toshi.kani@hpe.com>
+Cc: Andrew Morton <akpm@linux-foundation.org>
+Cc: elliott@hpe.com
+Cc: "H. Peter Anvin" <hpa@zytor.com>
+Cc: Ingo Molnar <mingo@redhat.com>
+Cc: Jürgen Gross <jgross@suse.com>
+Cc: konrad.wilk@oracle.com
+Cc: linux-mm <linux-mm@kvack.org>
+Cc: Mel Gorman <mgorman@suse.de>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Fixes: f70abb0fc3da ("x86/asm: Fix pud/pmd interfaces to handle large PAT bit")
+Link: http://lkml.kernel.org/r/1447111090-8526-1-git-send-email-kirill.shutemov@linux.intel.com
+[ Fix -Woverflow warnings from the realmode code. ]
+Signed-off-by: Borislav Petkov <bp@suse.de>
+---
+ arch/x86/boot/boot.h                 |  1 -
+ arch/x86/boot/video-mode.c           |  2 ++
+ arch/x86/boot/video.c                |  2 ++
+ arch/x86/include/asm/page_types.h    | 16 +++++++++-------
+ arch/x86/include/asm/pgtable_types.h | 14 ++++----------
+ arch/x86/include/asm/x86_init.h      |  1 -
+ 6 files changed, 17 insertions(+), 19 deletions(-)
+
+diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h
+index 0033e96c3f09..9011a88353de 100644
+--- a/arch/x86/boot/boot.h
++++ b/arch/x86/boot/boot.h
+@@ -23,7 +23,6 @@
+ #include <stdarg.h>
+ #include <linux/types.h>
+ #include <linux/edd.h>
+-#include <asm/boot.h>
+ #include <asm/setup.h>
+ #include "bitops.h"
+ #include "ctype.h"
+diff --git a/arch/x86/boot/video-mode.c b/arch/x86/boot/video-mode.c
+index aa8a96b052e3..95c7a818c0ed 100644
+--- a/arch/x86/boot/video-mode.c
++++ b/arch/x86/boot/video-mode.c
+@@ -19,6 +19,8 @@
+ #include "video.h"
+ #include "vesa.h"
+ 
++#include <uapi/asm/boot.h>
++
+ /*
+  * Common variables
+  */
+diff --git a/arch/x86/boot/video.c b/arch/x86/boot/video.c
+index 05111bb8d018..77780e386e9b 100644
+--- a/arch/x86/boot/video.c
++++ b/arch/x86/boot/video.c
+@@ -13,6 +13,8 @@
+  * Select video mode
+  */
+ 
++#include <uapi/asm/boot.h>
++
+ #include "boot.h"
+ #include "video.h"
+ #include "vesa.h"
+diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h
+index c5b7fb2774d0..cc071c6f7d4d 100644
+--- a/arch/x86/include/asm/page_types.h
++++ b/arch/x86/include/asm/page_types.h
+@@ -9,19 +9,21 @@
+ #define PAGE_SIZE	(_AC(1,UL) << PAGE_SHIFT)
+ #define PAGE_MASK	(~(PAGE_SIZE-1))
+ 
++#define PMD_PAGE_SIZE		(_AC(1, UL) << PMD_SHIFT)
++#define PMD_PAGE_MASK		(~(PMD_PAGE_SIZE-1))
++
++#define PUD_PAGE_SIZE		(_AC(1, UL) << PUD_SHIFT)
++#define PUD_PAGE_MASK		(~(PUD_PAGE_SIZE-1))
++
+ #define __PHYSICAL_MASK		((phys_addr_t)((1ULL << __PHYSICAL_MASK_SHIFT) - 1))
+ #define __VIRTUAL_MASK		((1UL << __VIRTUAL_MASK_SHIFT) - 1)
+ 
+-/* Cast PAGE_MASK to a signed type so that it is sign-extended if
++/* Cast *PAGE_MASK to a signed type so that it is sign-extended if
+    virtual addresses are 32-bits but physical addresses are larger
+    (ie, 32-bit PAE). */
+ #define PHYSICAL_PAGE_MASK	(((signed long)PAGE_MASK) & __PHYSICAL_MASK)
+-
+-#define PMD_PAGE_SIZE		(_AC(1, UL) << PMD_SHIFT)
+-#define PMD_PAGE_MASK		(~(PMD_PAGE_SIZE-1))
+-
+-#define PUD_PAGE_SIZE		(_AC(1, UL) << PUD_SHIFT)
+-#define PUD_PAGE_MASK		(~(PUD_PAGE_SIZE-1))
++#define PHYSICAL_PMD_PAGE_MASK	(((signed long)PMD_PAGE_MASK) & __PHYSICAL_MASK)
++#define PHYSICAL_PUD_PAGE_MASK	(((signed long)PUD_PAGE_MASK) & __PHYSICAL_MASK)
+ 
+ #define HPAGE_SHIFT		PMD_SHIFT
+ #define HPAGE_SIZE		(_AC(1,UL) << HPAGE_SHIFT)
+diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
+index 116fc4ee586f..d1b76f88ccd1 100644
+--- a/arch/x86/include/asm/pgtable_types.h
++++ b/arch/x86/include/asm/pgtable_types.h
+@@ -277,17 +277,14 @@ static inline pmdval_t native_pmd_val(pmd_t pmd)
+ static inline pudval_t pud_pfn_mask(pud_t pud)
+ {
+ 	if (native_pud_val(pud) & _PAGE_PSE)
+-		return PUD_PAGE_MASK & PHYSICAL_PAGE_MASK;
++		return PHYSICAL_PUD_PAGE_MASK;
+ 	else
+ 		return PTE_PFN_MASK;
+ }
+ 
+ static inline pudval_t pud_flags_mask(pud_t pud)
+ {
+-	if (native_pud_val(pud) & _PAGE_PSE)
+-		return ~(PUD_PAGE_MASK & (pudval_t)PHYSICAL_PAGE_MASK);
+-	else
+-		return ~PTE_PFN_MASK;
++	return ~pud_pfn_mask(pud);
+ }
+ 
+ static inline pudval_t pud_flags(pud_t pud)
+@@ -298,17 +295,14 @@ static inline pudval_t pud_flags(pud_t pud)
+ static inline pmdval_t pmd_pfn_mask(pmd_t pmd)
+ {
+ 	if (native_pmd_val(pmd) & _PAGE_PSE)
+-		return PMD_PAGE_MASK & PHYSICAL_PAGE_MASK;
++		return PHYSICAL_PMD_PAGE_MASK;
+ 	else
+ 		return PTE_PFN_MASK;
+ }
+ 
+ static inline pmdval_t pmd_flags_mask(pmd_t pmd)
+ {
+-	if (native_pmd_val(pmd) & _PAGE_PSE)
+-		return ~(PMD_PAGE_MASK & (pmdval_t)PHYSICAL_PAGE_MASK);
+-	else
+-		return ~PTE_PFN_MASK;
++	return ~pmd_pfn_mask(pmd);
+ }
+ 
+ static inline pmdval_t pmd_flags(pmd_t pmd)
+diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
+index 48d34d28f5a6..cd0fc0cc78bc 100644
+--- a/arch/x86/include/asm/x86_init.h
++++ b/arch/x86/include/asm/x86_init.h
+@@ -1,7 +1,6 @@
+ #ifndef _ASM_X86_PLATFORM_H
+ #define _ASM_X86_PLATFORM_H
+ 
+-#include <asm/pgtable_types.h>
+ #include <asm/bootparam.h>
+ 
+ struct mpc_bus;
+-- 
+2.6.2
diff --git a/a/content_digest b/N1/content_digest
index 26fa435..a06ea04 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -78,6 +78,219 @@
  "\n"
  "And these masks are defined via {PMD,PUD}_PAGE_SIZE. Should we change them\n"
  "to 'unsigned long long' too or leave alone? What about PAGE_SIZE and\n"
- PAGE_MASK? Need to be converted too?
+ "PAGE_MASK? Need to be converted too?\n"
+ "\n"
+ ">From 96362f38d47d6ef9a0ebb9a92c6b4db9337f1565 Mon Sep 17 00:00:00 2001\n"
+ "From: \"Kirill A. Shutemov\" <kirill.shutemov@linux.intel.com>\n"
+ "Date: Thu, 12 Nov 2015 10:39:00 +0200\n"
+ "Subject: [PATCH] x86/mm: fix regression with huge pages on PAE\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "\n"
+ "Recent PAT patchset has caused issue on 32-bit PAE machines:\n"
+ "\n"
+ "page:eea45000 count:0 mapcount:-128 mapping:  (null) index:0x0\n"
+ "flags: 0x40000000()\n"
+ "page dumped because: VM_BUG_ON_PAGE(page_mapcount(page) < 0)\n"
+ "------------[ cut here ]------------\n"
+ "kernel BUG at /home/build/linux-boris/mm/huge_memory.c:1485!\n"
+ "invalid opcode: 0000 [#1] SMP\n"
+ "Modules linked in: ahci libahci ata_generic skge r8169 firewire_ohci mii libata qla2xxx(+) scsi_transport_fc scsi_mod radeon tpm_infineon ttm backlight wmi acpi_cpufreq tpm_tis\n"
+ "CPU: 2 PID: 1758 Comm: modprobe Not tainted 4.3.0upstream-09269-gce5c2d2 #1\n"
+ "Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./To be filled by O.E.M., BIOS 080014  07/18/2008\n"
+ "task: ed84e600 ti: f6458000 task.ti: f6458000\n"
+ "EIP: 0060:[<c11bde80>] EFLAGS: 00010246 CPU: 2\n"
+ "EIP is at zap_huge_pmd+0x240/0x260\n"
+ "EAX: 00000000 EBX: f6459eb0 ECX: 00000292 EDX: 00000292\n"
+ "ESI: f6634d98 EDI: eea45000 EBP: f6459dc8 ESP: f6459d98\n"
+ "ata1: SATA link down (SStatus 0 SControl 300)\n"
+ "ata2: SATA link down (SStatus 0 SControl 300)\n"
+ " DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\n"
+ "CR0: 8005003b CR2: b75b21a0 CR3: 3655b880 CR4: 000006f0\n"
+ "Stack:\n"
+ " ...\n"
+ "Call Trace:\n"
+ " unmap_single_vma\n"
+ " ? __wake_up\n"
+ " unmap_vmas\n"
+ " unmap_region\n"
+ " do_munmap\n"
+ " vm_munmap\n"
+ " SyS_munmap\n"
+ " do_fast_syscall_32\n"
+ " ? __do_page_fault\n"
+ " sysenter_past_esp\n"
+ "Code: 00 e9 05 fe ff ff 90 8d 74 26 00 0f 0b eb fe ba 4c e1 7a c1 89 f8 e8 f0 91 fd ff 0f 0b eb fe ba 6c e1 7a c1 89 f8 e8 e0 91 fd ff <0f> 0b eb fe ba c4 e1 7a c1 89 f8 e8 d0 91 fd ff 0f 0b eb fe 8d\n"
+ "EIP: [<c11bde80>] zap_huge_pmd+0x240/0x260 SS:ESP 0068:f6459d98\n"
+ "---[ end trace cba8fb1fc2e2e78a ]---\n"
+ "\n"
+ "The problem is in pmd_pfn_mask() and pmd_flags_mask(). These helpers use\n"
+ "PMD_PAGE_MASK to calculate resulting mask. PMD_PAGE_MASK is 'unsigned\n"
+ "long', not 'unsigned long long' as phys_addr_t. As result upper bits of\n"
+ "resulting mask is truncated.\n"
+ "\n"
+ "pud_pfn_mask() and pud_flags_mask() aren't problematic since we don't\n"
+ "have PUD page table level on 32-bit systems, but it's reasonable to keep\n"
+ "them consitent with PMD counterpart.\n"
+ "\n"
+ "The patch introduces PHYSICAL_PMD_PAGE_MASK and PHYSICAL_PUD_PAGE_MASK\n"
+ "in addition to existing PHYSICAL_PAGE_MASK and rework helpers to use\n"
+ "them.\n"
+ "\n"
+ "Reported-and-Tested-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>\n"
+ "Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>\n"
+ "Reviewed-by: Toshi Kani <toshi.kani@hpe.com>\n"
+ "Cc: Andrew Morton <akpm@linux-foundation.org>\n"
+ "Cc: elliott@hpe.com\n"
+ "Cc: \"H. Peter Anvin\" <hpa@zytor.com>\n"
+ "Cc: Ingo Molnar <mingo@redhat.com>\n"
+ "Cc: J\303\203\302\274rgen Gross <jgross@suse.com>\n"
+ "Cc: konrad.wilk@oracle.com\n"
+ "Cc: linux-mm <linux-mm@kvack.org>\n"
+ "Cc: Mel Gorman <mgorman@suse.de>\n"
+ "Cc: Thomas Gleixner <tglx@linutronix.de>\n"
+ "Fixes: f70abb0fc3da (\"x86/asm: Fix pud/pmd interfaces to handle large PAT bit\")\n"
+ "Link: http://lkml.kernel.org/r/1447111090-8526-1-git-send-email-kirill.shutemov@linux.intel.com\n"
+ "[ Fix -Woverflow warnings from the realmode code. ]\n"
+ "Signed-off-by: Borislav Petkov <bp@suse.de>\n"
+ "---\n"
+ " arch/x86/boot/boot.h                 |  1 -\n"
+ " arch/x86/boot/video-mode.c           |  2 ++\n"
+ " arch/x86/boot/video.c                |  2 ++\n"
+ " arch/x86/include/asm/page_types.h    | 16 +++++++++-------\n"
+ " arch/x86/include/asm/pgtable_types.h | 14 ++++----------\n"
+ " arch/x86/include/asm/x86_init.h      |  1 -\n"
+ " 6 files changed, 17 insertions(+), 19 deletions(-)\n"
+ "\n"
+ "diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h\n"
+ "index 0033e96c3f09..9011a88353de 100644\n"
+ "--- a/arch/x86/boot/boot.h\n"
+ "+++ b/arch/x86/boot/boot.h\n"
+ "@@ -23,7 +23,6 @@\n"
+ " #include <stdarg.h>\n"
+ " #include <linux/types.h>\n"
+ " #include <linux/edd.h>\n"
+ "-#include <asm/boot.h>\n"
+ " #include <asm/setup.h>\n"
+ " #include \"bitops.h\"\n"
+ " #include \"ctype.h\"\n"
+ "diff --git a/arch/x86/boot/video-mode.c b/arch/x86/boot/video-mode.c\n"
+ "index aa8a96b052e3..95c7a818c0ed 100644\n"
+ "--- a/arch/x86/boot/video-mode.c\n"
+ "+++ b/arch/x86/boot/video-mode.c\n"
+ "@@ -19,6 +19,8 @@\n"
+ " #include \"video.h\"\n"
+ " #include \"vesa.h\"\n"
+ " \n"
+ "+#include <uapi/asm/boot.h>\n"
+ "+\n"
+ " /*\n"
+ "  * Common variables\n"
+ "  */\n"
+ "diff --git a/arch/x86/boot/video.c b/arch/x86/boot/video.c\n"
+ "index 05111bb8d018..77780e386e9b 100644\n"
+ "--- a/arch/x86/boot/video.c\n"
+ "+++ b/arch/x86/boot/video.c\n"
+ "@@ -13,6 +13,8 @@\n"
+ "  * Select video mode\n"
+ "  */\n"
+ " \n"
+ "+#include <uapi/asm/boot.h>\n"
+ "+\n"
+ " #include \"boot.h\"\n"
+ " #include \"video.h\"\n"
+ " #include \"vesa.h\"\n"
+ "diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h\n"
+ "index c5b7fb2774d0..cc071c6f7d4d 100644\n"
+ "--- a/arch/x86/include/asm/page_types.h\n"
+ "+++ b/arch/x86/include/asm/page_types.h\n"
+ "@@ -9,19 +9,21 @@\n"
+ " #define PAGE_SIZE\t(_AC(1,UL) << PAGE_SHIFT)\n"
+ " #define PAGE_MASK\t(~(PAGE_SIZE-1))\n"
+ " \n"
+ "+#define PMD_PAGE_SIZE\t\t(_AC(1, UL) << PMD_SHIFT)\n"
+ "+#define PMD_PAGE_MASK\t\t(~(PMD_PAGE_SIZE-1))\n"
+ "+\n"
+ "+#define PUD_PAGE_SIZE\t\t(_AC(1, UL) << PUD_SHIFT)\n"
+ "+#define PUD_PAGE_MASK\t\t(~(PUD_PAGE_SIZE-1))\n"
+ "+\n"
+ " #define __PHYSICAL_MASK\t\t((phys_addr_t)((1ULL << __PHYSICAL_MASK_SHIFT) - 1))\n"
+ " #define __VIRTUAL_MASK\t\t((1UL << __VIRTUAL_MASK_SHIFT) - 1)\n"
+ " \n"
+ "-/* Cast PAGE_MASK to a signed type so that it is sign-extended if\n"
+ "+/* Cast *PAGE_MASK to a signed type so that it is sign-extended if\n"
+ "    virtual addresses are 32-bits but physical addresses are larger\n"
+ "    (ie, 32-bit PAE). */\n"
+ " #define PHYSICAL_PAGE_MASK\t(((signed long)PAGE_MASK) & __PHYSICAL_MASK)\n"
+ "-\n"
+ "-#define PMD_PAGE_SIZE\t\t(_AC(1, UL) << PMD_SHIFT)\n"
+ "-#define PMD_PAGE_MASK\t\t(~(PMD_PAGE_SIZE-1))\n"
+ "-\n"
+ "-#define PUD_PAGE_SIZE\t\t(_AC(1, UL) << PUD_SHIFT)\n"
+ "-#define PUD_PAGE_MASK\t\t(~(PUD_PAGE_SIZE-1))\n"
+ "+#define PHYSICAL_PMD_PAGE_MASK\t(((signed long)PMD_PAGE_MASK) & __PHYSICAL_MASK)\n"
+ "+#define PHYSICAL_PUD_PAGE_MASK\t(((signed long)PUD_PAGE_MASK) & __PHYSICAL_MASK)\n"
+ " \n"
+ " #define HPAGE_SHIFT\t\tPMD_SHIFT\n"
+ " #define HPAGE_SIZE\t\t(_AC(1,UL) << HPAGE_SHIFT)\n"
+ "diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h\n"
+ "index 116fc4ee586f..d1b76f88ccd1 100644\n"
+ "--- a/arch/x86/include/asm/pgtable_types.h\n"
+ "+++ b/arch/x86/include/asm/pgtable_types.h\n"
+ "@@ -277,17 +277,14 @@ static inline pmdval_t native_pmd_val(pmd_t pmd)\n"
+ " static inline pudval_t pud_pfn_mask(pud_t pud)\n"
+ " {\n"
+ " \tif (native_pud_val(pud) & _PAGE_PSE)\n"
+ "-\t\treturn PUD_PAGE_MASK & PHYSICAL_PAGE_MASK;\n"
+ "+\t\treturn PHYSICAL_PUD_PAGE_MASK;\n"
+ " \telse\n"
+ " \t\treturn PTE_PFN_MASK;\n"
+ " }\n"
+ " \n"
+ " static inline pudval_t pud_flags_mask(pud_t pud)\n"
+ " {\n"
+ "-\tif (native_pud_val(pud) & _PAGE_PSE)\n"
+ "-\t\treturn ~(PUD_PAGE_MASK & (pudval_t)PHYSICAL_PAGE_MASK);\n"
+ "-\telse\n"
+ "-\t\treturn ~PTE_PFN_MASK;\n"
+ "+\treturn ~pud_pfn_mask(pud);\n"
+ " }\n"
+ " \n"
+ " static inline pudval_t pud_flags(pud_t pud)\n"
+ "@@ -298,17 +295,14 @@ static inline pudval_t pud_flags(pud_t pud)\n"
+ " static inline pmdval_t pmd_pfn_mask(pmd_t pmd)\n"
+ " {\n"
+ " \tif (native_pmd_val(pmd) & _PAGE_PSE)\n"
+ "-\t\treturn PMD_PAGE_MASK & PHYSICAL_PAGE_MASK;\n"
+ "+\t\treturn PHYSICAL_PMD_PAGE_MASK;\n"
+ " \telse\n"
+ " \t\treturn PTE_PFN_MASK;\n"
+ " }\n"
+ " \n"
+ " static inline pmdval_t pmd_flags_mask(pmd_t pmd)\n"
+ " {\n"
+ "-\tif (native_pmd_val(pmd) & _PAGE_PSE)\n"
+ "-\t\treturn ~(PMD_PAGE_MASK & (pmdval_t)PHYSICAL_PAGE_MASK);\n"
+ "-\telse\n"
+ "-\t\treturn ~PTE_PFN_MASK;\n"
+ "+\treturn ~pmd_pfn_mask(pmd);\n"
+ " }\n"
+ " \n"
+ " static inline pmdval_t pmd_flags(pmd_t pmd)\n"
+ "diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h\n"
+ "index 48d34d28f5a6..cd0fc0cc78bc 100644\n"
+ "--- a/arch/x86/include/asm/x86_init.h\n"
+ "+++ b/arch/x86/include/asm/x86_init.h\n"
+ "@@ -1,7 +1,6 @@\n"
+ " #ifndef _ASM_X86_PLATFORM_H\n"
+ " #define _ASM_X86_PLATFORM_H\n"
+ " \n"
+ "-#include <asm/pgtable_types.h>\n"
+ " #include <asm/bootparam.h>\n"
+ " \n"
+ " struct mpc_bus;\n"
+ "-- \n"
+ 2.6.2
 
-bb7b9a0e212f2ed284f0109efa0abcb6215f6377ffa3236a9525a6ef324bd52d
+ead0124e42392475139cc112744be1a4653b1e39a4900effe06695f3008e1370

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.