Re: [PATCH v2 1/1] fs: debugfs: fix build error at powerpc platform

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

     Arnd



[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux