On Mon, Oct 02, 2023 at 08:14:47PM +0200, Arnd Bergmann wrote: > On Mon, Oct 2, 2023, at 16:57, 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' > > > > Reported-by: kernel test robot <lkp@xxxxxxxxx> > > Closes: > > https://lore.kernel.org/oe-kbuild-all/202309291322.3pZiyosI-lkp@xxxxxxxxx/ > > Signed-off-by: Frank Li <Frank.Li@xxxxxxx> > > --- > > I still think this is wrong, for the reasons I explained in > https://lore.kernel.org/all/b795ed61-0174-487f-a263-8431e7c76af5@xxxxxxxxxxxxxxxx/ > > The part that I had missed earlier is how this is > related to GENERIC_IOMAP, since on those architectures, > the ioread helpers are not just fixed-endian MMIO accessors > like readl and readq but also multiplex to the PIO functions > (inb/inw/inl) that do not have a 64-bit version because x86 > and PCI both only define those up to 32 bit width. > > The best workaround is probably to use readq() instead of > ioread64(), or swab64(readl()) instead of ioread64_be(). > > This should work on all 64-bit architectures, plus any 32-bit > one that defines readq(), so you can just use an 'ifdef readq' > around the call. My previous patchs were dropped by vinod. I think it'd better remove 64bit register at previous patch serise. Let me create a seperate patch to enable 64bit register support for debug fs. Frank > > Arnd