Re: ia64 broken by transparent huge pages - other arches too?

Andrea Arcangeli
2011-01-16T22:06:26Z

On Sun, Jan 16, 2011 at 01:10:39PM -0800, Andrew Morton wrote:
> I believe it's the below. I haven't tested it yet and nor has anyone
> else apart from Andrea, afaik.

Correct. I tested it with sparc64 cross compiler using ARCH=sparc32 in
addition to x86_32/64 with THP on and off. It should solve the
problem.

James' fix for arm still needed in addition to it, I'm appending it.

Thanks and sorry again for the arch build trouble.
Andrea

===
Subject: [PATCH] parisc: fix compile breakage caused by inlining maybe_mkwrite

From: James Bottomley <James.Bottomley@HansenPartnership.com>

on Parisc, we have an include of linux/mm.h inside our asm/pgtable.h, so
this patch

commit 14fd403f2146f740942d78af4e0ee59396ad8eab
Author: Andrea Arcangeli <aarcange@redhat.com>
Date: Thu Jan 13 15:46:37 2011 -0800

thp: export maybe_mkwrite

Causes us an unsatisfiable use of pte_mkwrite in linux/mm.h

The fix is obviously not to include linux/mm.h in our pgtable.h, which
unbreaks the build.

James

---

diff --git a/arch/parisc/include/asm/pgtable.h b/arch/parisc/include/asm/pgtable.h
index f3c0973..5d7b8ce 100644
--- a/arch/parisc/include/asm/pgtable.h
+++ b/arch/parisc/include/asm/pgtable.h
@@ -10,11 +10,13 @@
* we simulate an x86-style page table for the linux mm code
*/

-#include <linux/mm.h> /* for vm_area_struct */
#include <linux/bitops.h>
+#include <linux/spinlock.h>
#include <asm/processor.h>
#include <asm/cache.h>

+struct vm_area_struct;
+
/*
* kern_addr_valid(ADDR) tests if ADDR is pointing to valid kernel
* memory. For the return value to be meaningful, ADDR must be >=