Index: kernel/arch/sparc32/include/arch/mm/frame.h
===================================================================
--- kernel/arch/sparc32/include/arch/mm/frame.h	(revision 8c34acf7ac4a88980ef19ea35292034545fddcde)
+++ kernel/arch/sparc32/include/arch/mm/frame.h	(revision f64fe6e66d56e463f7d0a175dfd25a55757a880f)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup abs32lemm
+/** @addtogroup sparc32mm
  * @{
  */
Index: kernel/arch/sparc32/include/arch/mm/km.h
===================================================================
--- kernel/arch/sparc32/include/arch/mm/km.h	(revision 8c34acf7ac4a88980ef19ea35292034545fddcde)
+++ kernel/arch/sparc32/include/arch/mm/km.h	(revision f64fe6e66d56e463f7d0a175dfd25a55757a880f)
@@ -42,5 +42,5 @@
 
 #define	KM_SPARC32_NON_IDENTITY_START	UINT32_C(0xf0000000)
-#define	KM_SPARC32_NON_IDENTITY_SIZE	UINT32_C(0xff000000)
+#define	KM_SPARC32_NON_IDENTITY_SIZE	UINT32_C(0xff00000)
 
 extern void km_identity_arch_init(void);
Index: kernel/arch/sparc32/include/arch/mm/page.h
===================================================================
--- kernel/arch/sparc32/include/arch/mm/page.h	(revision 8c34acf7ac4a88980ef19ea35292034545fddcde)
+++ kernel/arch/sparc32/include/arch/mm/page.h	(revision f64fe6e66d56e463f7d0a175dfd25a55757a880f)
@@ -226,8 +226,15 @@
 	
 	if (flags & PAGE_USER) {
-		if (flags & PAGE_READ)
-			p->acc = PTE_ACC_USER_RO_KERNEL_RW;
-		if (flags & PAGE_WRITE)
-			p->acc = PTE_ACC_USER_RW_KERNEL_RW;
+		if (flags & PAGE_EXEC) {
+			if (flags & PAGE_READ)
+				p->acc = PTE_ACC_USER_RX_KERNEL_RX;
+			if (flags & PAGE_WRITE)
+				p->acc = PTE_ACC_USER_RWX_KERNEL_RWX;
+		} else {
+			if (flags & PAGE_READ)
+				p->acc = PTE_ACC_USER_RO_KERNEL_RW;
+			if (flags & PAGE_WRITE)
+				p->acc = PTE_ACC_USER_RW_KERNEL_RW;
+		}
 	}
 
