Index: linux-2.6.12/arch/arm/mm/mm-armv.c
===================================================================
--- linux-2.6.12.orig/arch/arm/mm/mm-armv.c	2005-06-17 20:48:29.000000000 +0100
+++ linux-2.6.12/arch/arm/mm/mm-armv.c	2005-06-27 21:17:04.000000000 +0100
@@ -428,6 +428,12 @@
 		mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
 	}
 
+	/*
+	 * Mark device areas as "device"
+	 */
+	mem_types[MT_DEVICE].prot_sect |= PMD_SECT_BUFFERED;
+	mem_types[MT_DEVICE].prot_pte |= L_PTE_BUFFERABLE;
+
 	cp = &cache_policies[cachepolicy];
 
 	if (cpu_arch >= CPU_ARCH_ARMv5) {

