linux/arch/m68k/lib
Daniel Palmer 590fe2f46c m68k: nommu: fix memmove() with differently aligned src and dest for 68000
68000 has different alignment needs to 68020+.
memcpy() checks if the destination is aligned and does a smaller copy
to fix the alignment and then critically for 68000 it checks if the
source is still unaligned and if it is reverts to smaller copies.

memmove() does not currently do the second part and malfunctions if
one of the pointers is aligned and the other isn't.

This is apparently getting triggered by printk. If I put breakpoints
into the new checks added by this commit the first hit looks like this:

memmove (n=205, src=0x2f3971 <printk_shared_pbufs+205>, dest=0x2f3980 <printk_shared_pbufs+220>) at arch/m68k/lib/memmove.c:82

Signed-off-by: Daniel Palmer <daniel@thingy.jp>
Signed-off-by: Greg Ungerer <gerg@kernel.org>
2026-01-27 12:38:52 +10:00
..
checksum.c net: unexport csum_and_copy_{from,to}_user 2022-04-29 14:37:59 -07:00
divsi3.S m68k: Replace #include <asm/export.h> with #include <linux/export.h> 2023-08-21 13:27:43 +02:00
Makefile m68k: Use kernel's generic muldi3 libgcc function 2024-12-09 13:29:17 +01:00
memcpy.c m68k: fix unused variable warning in mempcy.c 2012-12-05 10:51:23 +10:00
memmove.c m68k: nommu: fix memmove() with differently aligned src and dest for 68000 2026-01-27 12:38:52 +10:00
memset.c m68k: use kernel processor defines for conditional optimizations 2011-06-14 11:42:29 +10:00
modsi3.S m68k: Replace #include <asm/export.h> with #include <linux/export.h> 2023-08-21 13:27:43 +02:00
mulsi3.S m68k: Replace #include <asm/export.h> with #include <linux/export.h> 2023-08-21 13:27:43 +02:00
uaccess.c m68k: get rid of zeroing 2017-03-28 18:23:40 -04:00
udivsi3.S m68k: Replace #include <asm/export.h> with #include <linux/export.h> 2023-08-21 13:27:43 +02:00
umodsi3.S m68k: Replace #include <asm/export.h> with #include <linux/export.h> 2023-08-21 13:27:43 +02:00