Re: [PATCH v8 01/14] Consolidate IO memcpy/memset into iomap_copy.c
"Arnd Bergmann" <[email protected]>
| Newsgroups | gmane.linux.ports.sh.devel,gmane.linux.ports.arm.kernel,gmane.linux.kernel,gmane.linux.ports.alpha,gmane.linux.ports.parisc,gmane.linux.uml.devel,gmane.linux.kernel.cross-arch,gmane.linux.ports.ppc64.devel,gmane.linux.ports.arm.msm,gmane.linux.drivers.mtd,gmane.linux.sound |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Oct 8, 2024, at 07:50, Julian Vetter wrote:
> diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> index 80de699bf6af..f14655ed4d9d 100644
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -102,6 +102,12 @@ static inline void log_post_read_mmio(u64 val, u8
> width, const volatile void __i
>
> #endif /* CONFIG_TRACE_MMIO_ACCESS */
>
> +extern void memcpy_fromio(void *to, const volatile void __iomem *from,
> + size_t count);
> +extern void memcpy_toio(volatile void __iomem *to, const void *from,
> + size_t count);
> +extern void memset_io(volatile void __iomem *dst, int c, size_t count);
> +
I think having this globally visible is the reason you are running
into the mismatched prototypes. The patches to change the architecture
specific implementations are all good, but I would instead add
#ifdef checks around the prototypes the same way you do for the
implementation, to make the series bisectible and shorter.
include/asm-generic/io.h | 58 ++----------------
lib/iomap_copy.c | 127 +++++++++++++++++++++++++++++++++++++++
Along the same lines, I would change lib/Makefile to build
this file unconditionally even on architectures that don't
set CONFIG_HAS_IOMEM. Again, strengthening the driver dependencies
is good, but it feels like a distraction here when we just need the
common implementation to be available.
Arnd