* Copyright (C) 1999 Don Dugger <don.dugger@intel.com>
  */
 
+#include <asm/unaligned.h>
+
 /* We don't use IO slowdowns on the ia64, but.. */
 #define __SLOW_DOWN_IO do { } while (0)
 #define SLOW_DOWN_IO   do { } while (0)
        unsigned short *dp = dst;
 
        while (count--)
-               *dp++ = platform_inw(port);
+               put_unaligned(platform_inw(port), dp++);
 }
 
 static inline void
        unsigned int *dp = dst;
 
        while (count--)
-               *dp++ = platform_inl(port);
+               put_unaligned(platform_inl(port), dp++);
 }
 
 static inline void
        const unsigned short *sp = src;
 
        while (count--)
-               platform_outw(*sp++, port);
+               platform_outw(get_unaligned(sp++), port);
 }
 
 static inline void
        const unsigned int *sp = src;
 
        while (count--)
-               platform_outl(*sp++, port);
+               platform_outl(get_unaligned(sp++), port);
 }
 
 /*