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. diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c index 87b3753aa4b1..b433be134c67 100644 --- a/fs/debugfs/file.c +++ b/fs/debugfs/file.c @@ -15,6 +15,7 @@ #include <linux/pagemap.h> #include <linux/debugfs.h> #include <linux/io.h> +#include <linux/io-64-nonatomic-hi-lo.h> #include <linux/slab.h> #include <linux/atomic.h> #include <linux/device.h> -- 2.41.0