]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - arch/arm64/kernel/io.c
arm64: Avoid aligning normal memory pointers in __memcpy_{to,from}io
[mirror_ubuntu-bionic-kernel.git] / arch / arm64 / kernel / io.c
index 354be2a872ae81bd58db3506cd0c7f77a62cd402..79b17384efface023d0331594df8554de67efaf8 100644 (file)
@@ -25,8 +25,7 @@
  */
 void __memcpy_fromio(void *to, const volatile void __iomem *from, size_t count)
 {
-       while (count && (!IS_ALIGNED((unsigned long)from, 8) ||
-                        !IS_ALIGNED((unsigned long)to, 8))) {
+       while (count && !IS_ALIGNED((unsigned long)from, 8)) {
                *(u8 *)to = __raw_readb(from);
                from++;
                to++;
@@ -54,23 +53,22 @@ EXPORT_SYMBOL(__memcpy_fromio);
  */
 void __memcpy_toio(volatile void __iomem *to, const void *from, size_t count)
 {
-       while (count && (!IS_ALIGNED((unsigned long)to, 8) ||
-                        !IS_ALIGNED((unsigned long)from, 8))) {
-               __raw_writeb(*(volatile u8 *)from, to);
+       while (count && !IS_ALIGNED((unsigned long)to, 8)) {
+               __raw_writeb(*(u8 *)from, to);
                from++;
                to++;
                count--;
        }
 
        while (count >= 8) {
-               __raw_writeq(*(volatile u64 *)from, to);
+               __raw_writeq(*(u64 *)from, to);
                from += 8;
                to += 8;
                count -= 8;
        }
 
        while (count) {
-               __raw_writeb(*(volatile u8 *)from, to);
+               __raw_writeb(*(u8 *)from, to);
                from++;
                to++;
                count--;