Message ID | 20240930132321.2785718-7-jvetter@kalrayinc.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | Consolidate IO memcpy functions | expand |
On 9/30/24 06:23, Julian Vetter wrote: > Align the prototypes of the memcpy_{from,to}io and memset_io functions > with the new ones from iomap_copy.c and remove function declarations, > because they are now declared in asm-generic/io.h. > > Reviewed-by: Yann Sionneau <ysionneau@kalrayinc.com> > Signed-off-by: Julian Vetter <jvetter@kalrayinc.com> > --- > Changes for v7: > - New patch > --- > arch/alpha/include/asm/io.h | 6 ++---- > arch/alpha/kernel/io.c | 4 ++-- > 2 files changed, 4 insertions(+), 6 deletions(-) > > diff --git a/arch/alpha/include/asm/io.h b/arch/alpha/include/asm/io.h > index b191d87f89c4..db3a9f41447e 100644 > --- a/arch/alpha/include/asm/io.h > +++ b/arch/alpha/include/asm/io.h > @@ -591,13 +591,11 @@ extern inline u64 readq_relaxed(const volatile void __iomem *addr) > /* > * String version of IO memory access ops: > */ > -extern void memcpy_fromio(void *, const volatile void __iomem *, long); > -extern void memcpy_toio(volatile void __iomem *, const void *, long); > extern void _memset_c_io(volatile void __iomem *, unsigned long, long); > > -static inline void memset_io(volatile void __iomem *addr, u8 c, long len) > +static inline void memset_io(volatile void __iomem *dst, int c, size_t count) > { > - _memset_c_io(addr, 0x0101010101010101UL * c, len); > + _memset_c_io(dst, 0x0101010101010101UL * c, count); By changing c from 'u8' to 'int', you need to mask before the multiplication. r~
diff --git a/arch/alpha/include/asm/io.h b/arch/alpha/include/asm/io.h index b191d87f89c4..db3a9f41447e 100644 --- a/arch/alpha/include/asm/io.h +++ b/arch/alpha/include/asm/io.h @@ -591,13 +591,11 @@ extern inline u64 readq_relaxed(const volatile void __iomem *addr) /* * String version of IO memory access ops: */ -extern void memcpy_fromio(void *, const volatile void __iomem *, long); -extern void memcpy_toio(volatile void __iomem *, const void *, long); extern void _memset_c_io(volatile void __iomem *, unsigned long, long); -static inline void memset_io(volatile void __iomem *addr, u8 c, long len) +static inline void memset_io(volatile void __iomem *dst, int c, size_t count) { - _memset_c_io(addr, 0x0101010101010101UL * c, len); + _memset_c_io(dst, 0x0101010101010101UL * c, count); } #define __HAVE_ARCH_MEMSETW_IO diff --git a/arch/alpha/kernel/io.c b/arch/alpha/kernel/io.c index c28035d6d1e6..69c06f1b158d 100644 --- a/arch/alpha/kernel/io.c +++ b/arch/alpha/kernel/io.c @@ -481,7 +481,7 @@ EXPORT_SYMBOL(outsl); * Copy data from IO memory space to "real" memory space. * This needs to be optimized. */ -void memcpy_fromio(void *to, const volatile void __iomem *from, long count) +void memcpy_fromio(void *to, const volatile void __iomem *from, size_t count) { /* Optimize co-aligned transfers. Everything else gets handled a byte at a time. */ @@ -535,7 +535,7 @@ EXPORT_SYMBOL(memcpy_fromio); * Copy data from "real" memory space to IO memory space. * This needs to be optimized. */ -void memcpy_toio(volatile void __iomem *to, const void *from, long count) +void memcpy_toio(volatile void __iomem *to, const void *from, size_t count) { /* Optimize co-aligned transfers. Everything else gets handled a byte at a time. */