ARM: 9468/1: fix memset64() on big-endian

On big-endian systems the 32-bit low and high halves need to be swapped
for the underlying assembly implementation to work correctly.

Fixes: fd1d362600 ("ARM: implement memset32 & memset64")
Cc: stable@vger.kernel.org
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
This commit is contained in:
Thomas Weissschuh authored and Russell King (Oracle) committed 2026-01-31 12:58:27 +00:00
1 parent 8f0b4cce44
commit 23ea2a4c72
1 file changed
+4 -1
+4 -1
View File
@@ -42,7 +42,10 @@ static inline void *memset32(uint32_t *p, uint32_t v, __kernel_size_t n)
extern void *__memset64(uint64_t *, uint32_t low, __kernel_size_t, uint32_t hi);
static inline void *memset64(uint64_t *p, uint64_t v, __kernel_size_t n)
{
return __memset64(p, v, n * 8, v >> 32);
if (IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN))
return __memset64(p, v, n * 8, v >> 32);
else
return __memset64(p, v >> 32, n * 8, v);
}
/*