Index: kernel/arch/sparc64/include/asm.h
===================================================================
--- kernel/arch/sparc64/include/asm.h	(revision a2a552922110e12b1296ecc23f36d826e7fc4040)
+++ kernel/arch/sparc64/include/asm.h	(revision 37e518bcb08eaccfcdca2bc0e9eca06f4ebc26d2)
@@ -43,43 +43,53 @@
 #include <config.h>
 #include <arch/stack.h>
-
-typedef uint64_t ioport_t;
-
-
-static inline void  outb(ioport_t port,uint8_t v)
-{
-	*((uint8_t *)(port)) = v;
-}
-
-static inline void  outw(ioport_t port,uint16_t v)
-{
-	*((uint16_t *)(port)) = v;
-}
-
-static inline void  outl(ioport_t port,uint32_t v)
-{
-	*((uint32_t *)(port)) = v;
-}
-
-
+#include <arch/barrier.h>
+
+static inline void outb(ioport_t port, uint8_t v)
+{
+	*((volatile uint8_t *)(port)) = v;
+	memory_barrier();
+}
+
+static inline void outw(ioport_t port, uint16_t v)
+{
+	*((volatile uint16_t *)(port)) = v;
+	memory_barrier();
+}
+
+static inline void outl(ioport_t port, uint32_t v)
+{
+	*((volatile uint32_t *)(port)) = v;
+	memory_barrier();
+}
 
 static inline uint8_t inb(ioport_t port)
 {
-	return *((uint8_t *)(port));
+	uint8_t rv;
+
+	rv = *((volatile uint8_t *)(port));
+	memory_barrier();
+
+	return rv;
 }
 
 static inline uint16_t inw(ioport_t port)
 {
-	return *((uint16_t *)(port));
+	uint16_t rv;
+
+	rv = *((volatile uint16_t *)(port));
+	memory_barrier();
+
+	return rv;
 }
 
 static inline uint32_t inl(ioport_t port)
 {
-	return *((uint32_t *)(port));
-}
-
-
-
-
+	uint32_t rv;
+
+	rv = *((volatile uint32_t *)(port));
+	memory_barrier();
+
+	return rv;
+}
 
 /** Read Processor State register.
Index: kernel/arch/sparc64/include/types.h
===================================================================
--- kernel/arch/sparc64/include/types.h	(revision a2a552922110e12b1296ecc23f36d826e7fc4040)
+++ kernel/arch/sparc64/include/types.h	(revision 37e518bcb08eaccfcdca2bc0e9eca06f4ebc26d2)
@@ -55,4 +55,6 @@
 typedef uint64_t ipl_t;
 
+typedef uint64_t ioport_t;
+
 typedef uint64_t unative_t;
 typedef int64_t native_t;
