--- aaa/arch/m68k/kernel/sys_m68k.c	2009-12-09 12:41:46.000000000 +0100
+++ bbb/arch/m68k/kernel/sys_m68k.c	2009-12-09 16:36:58.000000000 +0100
@@ -736,7 +736,7 @@
 		if (!pmd_present(*pmd))
 			goto bad_access;
 		pte = pte_offset_map_lock(mm, pmd, (unsigned long)mem, &ptl);
-		if (!pte_present(*pte) || !pte_dirty(*pte)) {
+		if (!pte_write(*pte) || !pte_present(*pte) || !pte_dirty(*pte)) {
 			pte_unmap_unlock(pte, ptl);
 			goto bad_access;
 		}
