RISC-V: __io_writes should respect the length argument
authorPalmer Dabbelt <palmer@sifive.com>
Tue, 28 Nov 2017 22:15:32 +0000 (14:15 -0800)
committerPalmer Dabbelt <palmer@sifive.com>
Fri, 1 Dec 2017 21:09:57 +0000 (13:09 -0800)
Whoops -- I must have just been being an idiot again.  Thanks to Segher
for finding the bug :).

CC: Segher Boessenkool <segher@kernel.crashing.org>
Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
arch/riscv/include/asm/io.h

index c1f32cfcc79bbb7f35786e3ab9b9ab5b8f683df8..507ee6a16e6794e8d7d8a28897469fcc12c827ea 100644 (file)
@@ -250,7 +250,7 @@ static inline u64 __raw_readq(const volatile void __iomem *addr)
                        const ctype *buf = buffer;                              \
                                                                                \
                        do {                                                    \
-                               __raw_writeq(*buf++, addr);                     \
+                               __raw_write ## len(*buf++, addr);               \
                        } while (--count);                                      \
                }                                                               \
                afence;                                                         \