On Sun, Oct 1, 2023, at 07:22, Baoquan He wrote: > On 09/29/23 at 12:49pm, Frank Li wrote: >> ld: fs/debugfs/file.o: in function `debugfs_print_regs': >> file.c:(.text+0x95a): undefined reference to `ioread64be' >> >> ld: file.c:(.text+0x9dd): undefined reference to `ioread64' > > From your reproducer, on x86_64, GENERIC_IOMAP is selected. So the > default version of ioread64 and ioread64be in asm-generic/io.h are > bypassed. Except of those arch where ioread64 and ioread64be are > implemented specifically like alpha, arm64, parisc, power, we may need > include include/linux/io-64-nonatomic-hi-lo.h or > include/linux/io-64-nonatomic-lo-hi.h to fix above linking issue? > > From my side, below change can fix the issue. However, I am not quite > sure which one is chosen between io-64-nonatomic-hi-lo.h and > io-64-nonatomic-hi-lo.h. It looks like the latest version of the patch only calls it for 64-bit targets, so this question should not come up. On 32-bit targets, it is driver specific which one you need, so having it generic code would require passing a flag from a driver, but I think that adds more complexity than it help. Arnd