<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/arch/m68k/lib/memmove.c, branch linux-rolling-stable</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-rolling-stable</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-rolling-stable'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2026-03-04T12:20:31Z</updated>
<entry>
<title>m68k: nommu: fix memmove() with differently aligned src and dest for 68000</title>
<updated>2026-03-04T12:20:31Z</updated>
<author>
<name>Daniel Palmer</name>
<email>daniel@thingy.jp</email>
</author>
<published>2025-12-13T12:04:01Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=80a27fb114f77153ac22cf4ef23def37bab2db3a'/>
<id>urn:sha1:80a27fb114f77153ac22cf4ef23def37bab2db3a</id>
<content type='text'>
[ Upstream commit 590fe2f46c8698bb758f9002cb247ca10ce95569 ]

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 &lt;printk_shared_pbufs+205&gt;, dest=0x2f3980 &lt;printk_shared_pbufs+220&gt;) at arch/m68k/lib/memmove.c:82

Signed-off-by: Daniel Palmer &lt;daniel@thingy.jp&gt;
Signed-off-by: Greg Ungerer &lt;gerg@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>m68k: remove duplicate memmove() implementation</title>
<updated>2011-05-24T00:03:49Z</updated>
<author>
<name>Greg Ungerer</name>
<email>gerg@uclinux.org</email>
</author>
<published>2011-03-28T06:44:28Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=80160de89d0a7c9a93dfe91eef2b448cbc380cd0'/>
<id>urn:sha1:80160de89d0a7c9a93dfe91eef2b448cbc380cd0</id>
<content type='text'>
Merging the mmu and non-mmu directories we ended up with duplicate
(and identical) implementations of memmove(). Remove one of them.

Signed-off-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
Acked-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
</content>
</entry>
<entry>
<title>m68k: merge m68k and m68knommu arch directories</title>
<updated>2011-03-25T04:05:13Z</updated>
<author>
<name>Greg Ungerer</name>
<email>gerg@uclinux.org</email>
</author>
<published>2011-03-22T03:39:27Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=66d857b08b8c3ed5c72c361f863cce77d2a978d7'/>
<id>urn:sha1:66d857b08b8c3ed5c72c361f863cce77d2a978d7</id>
<content type='text'>
There is a lot of common code that could be shared between the m68k
and m68knommu arch branches. It makes sense to merge the two branches
into a single directory structure so that we can more easily share
that common code.

This is a brute force merge, based on a script from Stephen King
&lt;sfking@fdwdc.com&gt;, which was originally written by Arnd Bergmann
&lt;arnd@arndb.de&gt;.

&gt; The script was inspired by the script Sam Ravnborg used to merge the
&gt; includes from m68knommu. For those files common to both arches but
&gt; differing in content, the m68k version of the file is renamed to
&gt; &lt;file&gt;_mm.&lt;ext&gt; and the m68knommu version of the file is moved into the
&gt; corresponding m68k directory and renamed &lt;file&gt;_no.&lt;ext&gt; and a small
&gt; wrapper file &lt;file&gt;.&lt;ext&gt; is used to select between the two version. Files
&gt; that are common to both but don't differ are removed from the m68knommu
&gt; tree and files and directories that are unique to the m68knommu tree are
&gt; moved to the m68k tree. Finally, the arch/m68knommu tree is removed.
&gt;
&gt; To select between the the versions of the files, the wrapper uses
&gt;
&gt; #ifdef CONFIG_MMU
&gt; #include &lt;file&gt;_mm.&lt;ext&gt;
&gt; #else
&gt; #include &lt;file&gt;_no.&lt;ext&gt;
&gt; #endif

On top of this file merge I have done a simplistic merge of m68k and
m68knommu Kconfig, which primarily attempts to keep existing options and
menus in place. Other than a handful of options being moved it produces
identical .config outputs on m68k and m68knommu targets I tested it on.

With this in place there is now quite a bit of scope for merge cleanups
in future patches.

Signed-off-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
</content>
</entry>
</feed>
