patch-2.4.14 linux/include/asm-i386/io.h
Next file: linux/include/asm-i386/spinlock.h
Previous file: linux/include/asm-i386/floppy.h
Back to the patch index
Back to the overall index
- Lines: 36
- Date:
Mon Nov 5 12:42:21 2001
- Orig file:
v2.4.13/linux/include/asm-i386/io.h
- Orig date:
Thu Oct 18 13:48:01 2001
diff -u --recursive --new-file v2.4.13/linux/include/asm-i386/io.h linux/include/asm-i386/io.h
@@ -189,11 +189,35 @@
return retval;
}
+/*
+ * Cache management
+ *
+ * This needed for two cases
+ * 1. Out of order aware processors
+ * 2. Accidentally out of order processors (PPro errata #51)
+ */
+
+#if defined(CONFIG_X86_OOSTORE) || defined(CONFIG_X86_PPRO_FENCE)
+
+static inline void flush_write_buffers(void)
+{
+ __asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory");
+}
+
+#define dma_cache_inv(_start,_size) flush_write_buffers()
+#define dma_cache_wback(_start,_size) flush_write_buffers()
+#define dma_cache_wback_inv(_start,_size) flush_write_buffers()
+
+#else
+
/* Nothing to do */
#define dma_cache_inv(_start,_size) do { } while (0)
#define dma_cache_wback(_start,_size) do { } while (0)
#define dma_cache_wback_inv(_start,_size) do { } while (0)
+#define flush_write_buffers()
+
+#endif
#endif /* __KERNEL__ */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)