On 29.01.2026 15:16, Oleksii Moisieiev wrote:
> --- /dev/null
> +++ b/xen/arch/arm/lib/memcpy-fromio.c
> @@ -0,0 +1,56 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#include <xen/io.h>
> +
> +#include <asm/io.h>

Why both, when xen/io.h includes asm/io.h anyway?

> +/*
> + * Arm implementation notes / limitations:
> + * - Uses ordered 8-bit for leading/trailing unaligned bytes and ordered
> + *   32-bit accesses for the aligned bulk; no wider accesses are issued.
> + * - Only suitable for devices that tolerate 8-bit and 32-bit accesses;
> + *   do not use with devices requiring strictly 16-bit or 64-bit accesses.
> + * - MMIO must be mapped with appropriate device attributes to preserve
> + *   ordering; no extra barriers beyond the ordered accessors are added.
> + * - If source or destination is misaligned, leading bytes are copied
> + *   byte-by-byte until both sides are 32-bit aligned,

Which may be never, which in turn may not be obvious to the reader.

> then bulk copy uses
> + *   32-bit accesses.
> + */

It'll be Arm maintainers to judge whether these restrictions are really
going to be acceptable. I think I pointed out more than once that I
think these functions end up being too-narrow-purpose.

Jan

Reply via email to