Re: [PATCH] sparc: Remove IO memcpy and memset from sparc code
From: Arnd Bergmann
Date: Fri Oct 30 2026 - 05:32:26 EST
On Fri, Oct 30, 2026, at 10:03, Julian Vetter wrote:
> On 10/29/26 16:13, Arnd Bergmann wrote:
>
> thank you for your reply! I'm not sure, but to me it seems unlikely that
> the PCI host bridge swaps. On sparc64 readl()/readq() use the flag
> ASI_PHYS_BYPASS_EC_E_L, so they work on little-endian data. The CPU does
> the byte swap here. The __raw_*() accessors use ASI_PHYS_BYPASS_EC_E,
> which does not swap (which are used in lib/io_memcpy.c as well), so they
> return the data in address order.
Ok, good. I missed the '_L' bit and assumed they were the same.
In this case your patch looks good.
> And other I/O functions, e.g., readsl()/writesl() and
> ioread32_rep()/iowrite32_rep() end up in insl()/outsl() in
> arch/sparc/lib/PeeCeeI.c, which copy buffers with
> __raw_readl()/__raw_writel(). And __ioread32_copy()/__iowrite32_copy()
> in lib/iomap_copy.c use the __raw_ accessors on sparc64 as well.
>
> But that's just from me looking at the code and compiling the
> sparc32_defconfig and sparc64_defconfig. I have no sparc platform, so
> can't test it. Maybe some sparc expert can comment.
I'm sure it's fine then. For your patch:
Reviewed-by: Arnd Bergman <arnd@xxxxxxxx>