Re: [PATCH] parisc: Remove memcpy_fromio

From: Julian Vetter
Date: Mon Feb 03 2025 - 05:24:04 EST


On 1/31/25 08:28, Arnd Bergmann wrote:
On Thu, Jan 30, 2025, at 14:48, Julian Vetter wrote:
Fully migrate parisc to the IO functions from lib/iomem_copy.c. In a
recent patch the functions memset_io and memcpy_toio were removed, but
the memcpy_fromio was kept, because for very short sequences it does
half word accesses, whereas the functions in lib/iomem_copy.c do byte
accesses until the memory is naturally aligned and then do machine word
accesses. But I don't think the single half-word access merits keeping
the arch specific implementation, so, remove it as well.

Signed-off-by: Julian Vetter <julian@xxxxxxxxxxxxxxxx>

Acked-by: Arnd Bergmann <arnd@xxxxxxxx>

This one looks fairly obvious. It might be nice to also
clean up the {in,out}s{b,w,l} helper functions in the same
file, but I don't understand why those are special
in the first place.

Not sure, either. But some comments contain: "just using the inlined version of the inw() breaks things". This is clear, and what you point out below already, these parisc specific functions deal with unaligned buffers, so using, e.g., the generic "inw()" will surely break things.

Those functions have been unchanged since before the git
history and there are some comments that I don't find helpful.
One thing they do is to deal with unaligned memory buffers,
which the generic ones don't, but that could be easily added
using get_unaligned/put_unaligned, expecting the compiler
to optimize the memory side of the transfer.

I'm not sure what you suggest. Do you mean adding get_unaligned/put_unaligned in the generic include/asm-generic/io.h functions, or just adding get_unaligned/put_unaligned to the body of the parisc specific functions? Instead of all the "switch... case 0x2..." code?

Julian


Arnd