summaryrefslogtreecommitdiff
path: root/arch/x86/mm
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-03-27 23:20:47 +0300
committerLinus Torvalds <torvalds@linux-foundation.org>2008-03-27 23:20:47 +0300
commitfb8c7fb25d7d754a992481e9f763ec0b5889c4d9 (patch)
treed43cd30836988e263ddeecd54a6c74e9ac03aad2 /arch/x86/mm
parent074fcab574a36edec35d2e74955250f2e17d6000 (diff)
parent2e8fe719b57bbdc9e313daed1204bb55fed3ed44 (diff)
downloadlinux-fb8c7fb25d7d754a992481e9f763ec0b5889c4d9.tar.xz
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86: xen: fix UP setup of shared_info xen: fix RMW when unmasking events x86, documentation: nmi_watchdog=2 works on x86_64 x86: stricter check in follow_huge_addr() rdc321x: GPIO routines bugfixes x86: ptrace.c: fix defined-but-unused warnings x86: fix prefetch workaround
Diffstat (limited to 'arch/x86/mm')
-rw-r--r--arch/x86/mm/fault.c3
-rw-r--r--arch/x86/mm/hugetlbpage.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index fdc667422df9..c0c82bc143c9 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -92,7 +92,8 @@ static int is_prefetch(struct pt_regs *regs, unsigned long addr,
unsigned char *max_instr;
#ifdef CONFIG_X86_32
- if (!(__supported_pte_mask & _PAGE_NX))
+ /* Catch an obscure case of prefetch inside an NX page: */
+ if ((__supported_pte_mask & _PAGE_NX) && (error_code & 16))
return 0;
#endif
diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c
index 4fbafb4bc2f0..0b3d567e686d 100644
--- a/arch/x86/mm/hugetlbpage.c
+++ b/arch/x86/mm/hugetlbpage.c
@@ -178,7 +178,7 @@ follow_huge_addr(struct mm_struct *mm, unsigned long address, int write)
page = &pte_page(*pte)[vpfn % (HPAGE_SIZE/PAGE_SIZE)];
- WARN_ON(!PageCompound(page));
+ WARN_ON(!PageHead(page));
return page;
}