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.
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
 
  * 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 >=