diff -ru a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
--- a/drivers/scsi/aacraid/aachba.c	2008-01-08 15:01:21.503932722 -0500
+++ b/drivers/scsi/aacraid/aachba.c	2008-01-08 15:02:35.849634368 -0500
@@ -31,9 +31,9 @@
 #include <linux/slab.h>
 #include <linux/completion.h>
 #include <linux/blkdev.h>
-#include <linux/dma-mapping.h>
 #include <asm/semaphore.h>
 #include <asm/uaccess.h>
+#include <linux/highmem.h> /* For flush_kernel_dcache_page */
 
 #include <scsi/scsi.h>
 #include <scsi/scsi_cmnd.h>
@@ -366,6 +366,9 @@
 	if (buf && transfer_len > 0)
 		memcpy(buf + offset, data, transfer_len);
 
+#ifdef ARCH_HAS_FLUSH_ANON_PAGE
+	flush_kernel_dcache_page(kmap_atomic_to_page(buf - sg->offset));
+#endif
 	kunmap_atomic(buf - sg->offset, KM_IRQ0);
 
 }
