Index: kernel/arch/sparc64/include/asm.h
===================================================================
--- kernel/arch/sparc64/include/asm.h	(revision ee06f2a049baaea0e4c9fc693e7c3c34f3105202)
+++ kernel/arch/sparc64/include/asm.h	(revision 3f93cdbe3a5df29d2432f1019f5de8b577780b68)
@@ -45,27 +45,27 @@
 #include <arch/barrier.h>
 
-static inline void pio_write_8(ioport_t port, uint8_t v)
-{
-	*((volatile uint8_t *)(port)) = v;
-	memory_barrier();
-}
-
-static inline void pio_write_16(ioport_t port, uint16_t v)
-{
-	*((volatile uint16_t *)(port)) = v;
-	memory_barrier();
-}
-
-static inline void pio_write_32(ioport_t port, uint32_t v)
-{
-	*((volatile uint32_t *)(port)) = v;
-	memory_barrier();
-}
-
-static inline uint8_t pio_read_8(ioport_t port)
+static inline void pio_write_8(ioport8_t *port, uint8_t v)
+{
+	*port = v;
+	memory_barrier();
+}
+
+static inline void pio_write_16(ioport16_t *port, uint16_t v)
+{
+	*port = v;
+	memory_barrier();
+}
+
+static inline void pio_write_32(ioport32_t *port, uint32_t v)
+{
+	*port = v;
+	memory_barrier();
+}
+
+static inline uint8_t pio_read_8(ioport8_t *port)
 {
 	uint8_t rv;
 
-	rv = *((volatile uint8_t *)(port));
+	rv = *port;
 	memory_barrier();
 
@@ -73,9 +73,9 @@
 }
 
-static inline uint16_t pio_read_16(ioport_t port)
+static inline uint16_t pio_read_16(ioport16_t *port)
 {
 	uint16_t rv;
 
-	rv = *((volatile uint16_t *)(port));
+	rv = *port;
 	memory_barrier();
 
@@ -83,9 +83,9 @@
 }
 
-static inline uint32_t pio_read_32(ioport_t port)
+static inline uint32_t pio_read_32(ioport32_t *port)
 {
 	uint32_t rv;
 
-	rv = *((volatile uint32_t *)(port));
+	rv = *port;
 	memory_barrier();
 
