diff -urN linux-2.6/include/asm-s390/pgtable.h linux-2.6-pte/include/asm-s390/pgtable.h
--- linux-2.6/include/asm-s390/pgtable.h	2005-02-25 10:18:05.000000000 +0100
+++ linux-2.6-pte/include/asm-s390/pgtable.h	2005-02-25 10:21:57.000000000 +0100
@@ -550,7 +550,7 @@
 static inline pte_t ptep_get_and_clear(pte_t *ptep)
 {
 	pte_t pte = *ptep;
-	pte_clear(mm, addr, ptep);
+	pte_val(*ptep) = _PAGE_INVALID_EMPTY;
 	return pte;
 }
 
@@ -573,7 +573,7 @@
 				      : "=m" (*ptep) : "m" (*ptep),
 				        "a" (ptep), "a" (address) );
 #endif /* __s390x__ */
-	pte_clear(vma->vm_mm, address, ptep);
+	pte_val(*ptep) = _PAGE_INVALID_EMPTY;
 	return pte;
 }
 
