When doing allmod builds it turns out some modules are using ioread64() and iowrite64() that the alpha does not implement, as it is using <asm-generic/iomap.h> without selecting GENERIC_IOMAP. Fix this by implementing the ioread64()/iowrite64() stubs as well, using readq() and writeq() respectively. Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx> Fixes: 7e772dad9913 ("alpha: Use generic <asm-generic/io.h>") Link: https://lore.kernel.org/linux-arch/20221002224521.GA968453@xxxxxxxxxxxx/ Cc: Arnd Bergmann <arnd@xxxxxxxx> Cc: Richard Henderson <richard.henderson@xxxxxxxxxx> Cc: Ivan Kokshaysky <ink@xxxxxxxxxxxxxxxxxxxx> Cc: Matt Turner <mattst88@xxxxxxxxx> Cc: linux-arch@xxxxxxxxxxxxxxx Cc: linux-alpha@xxxxxxxxxxxxxxx Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> --- Arnd if this looks OK then please apply it on linux-arch for fixes. --- arch/alpha/kernel/io.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/alpha/kernel/io.c b/arch/alpha/kernel/io.c index 838586abb1e0..5f3e75a945c1 100644 --- a/arch/alpha/kernel/io.c +++ b/arch/alpha/kernel/io.c @@ -41,6 +41,11 @@ unsigned int ioread32(const void __iomem *addr) return ret; } +u64 ioread64(const void __iomem *addr) +{ + return readq(addr); +} + void iowrite8(u8 b, void __iomem *addr) { mb(); @@ -59,12 +64,19 @@ void iowrite32(u32 b, void __iomem *addr) IO_CONCAT(__IO_PREFIX,iowrite32)(b, addr); } +void iowrite64(u64 b, void __iomem *addr) +{ + writeq(b, addr); +} + EXPORT_SYMBOL(ioread8); EXPORT_SYMBOL(ioread16); EXPORT_SYMBOL(ioread32); +EXPORT_SYMBOL(ioread64); EXPORT_SYMBOL(iowrite8); EXPORT_SYMBOL(iowrite16); EXPORT_SYMBOL(iowrite32); +EXPORT_SYMBOL(iowrite64); u8 inb(unsigned long port) { -- 2.34.1