Re: [PATCH] sh: Remove memset_io from sh specific code
John Paul Adrian Glaubitz <[email protected]>
| Newsgroups | gmane.linux.ports.sh.devel,gmane.linux.kernel |
|---|---|
| Message-ID | <3ec5a6621cabddad686f727d20b725ed9658dddd.camel@physik.fu-berlin.de> |
Hi Julian, On Wed, 2024-12-04 at 17:40 +0100, Julian Vetter wrote: > Remove memset_io from sh specific code and fall back to the new > implementation from lib/iomem_copy.c. It uses word accesses if the > buffer is aligned and only falls back to byte accesses for potentially > unaligned parts of a buffer (i.e., at the beginning and end). > > Signed-off-by: Julian Vetter <[email protected]> > --- > arch/sh/include/asm/io.h | 2 -- > arch/sh/kernel/io.c | 14 -------------- > 2 files changed, 16 deletions(-) > > diff --git a/arch/sh/include/asm/io.h b/arch/sh/include/asm/io.h > index cf5eab840d57..3771bfa984af 100644 > --- a/arch/sh/include/asm/io.h > +++ b/arch/sh/include/asm/io.h > @@ -269,12 +269,10 @@ __BUILD_IOPORT_STRING(q, u64) > #define IO_SPACE_LIMIT 0xffffffff > > /* We really want to try and get these to memcpy etc */ > -#define memset_io memset_io > #define memcpy_fromio memcpy_fromio > #define memcpy_toio memcpy_toio > void memcpy_fromio(void *, const volatile void __iomem *, unsigned long); > void memcpy_toio(volatile void __iomem *, const void *, unsigned long); > -void memset_io(volatile void __iomem *, int, unsigned long); > > /* Quad-word real-mode I/O, don't ask.. */ > unsigned long long peek_real_address_q(unsigned long long addr); > diff --git a/arch/sh/kernel/io.c b/arch/sh/kernel/io.c > index da22f3b32d30..16e963bab595 100644 > --- a/arch/sh/kernel/io.c > +++ b/arch/sh/kernel/io.c > @@ -95,17 +95,3 @@ void memcpy_toio(volatile void __iomem *to, const void *from, unsigned long coun > mb(); > } > EXPORT_SYMBOL(memcpy_toio); > - > -/* > - * "memset" on IO memory space. > - * This needs to be optimized. > - */ > -void memset_io(volatile void __iomem *dst, int c, unsigned long count) > -{ > - while (count) { > - count--; > - writeb(c, dst); > - dst++; > - } > -} > -EXPORT_SYMBOL(memset_io); Looks good to me. I looked up the generic implementation in lib/iomem_copy.c and it looks much better than the sh-specific implementation due to the smarter use of conditional word-long memset. Reviewed-by: John Paul Adrian Glaubitz <[email protected]> Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913