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.