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 to avoid including linux/mm.h in our pgtable.h, which
unbreaks the build.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  * 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 >=