Re: [PATCH net-next] net: ibm: emac: Clear MAL descriptors without memset
From: Paolo Abeni
Date: Thu May 21 2026 - 05:46:33 EST
On 5/17/26 5:36 AM, Rosen Penev wrote:
> Clear MAL descriptor rings with explicit field stores instead of
> memset(). The descriptor rings are carved from MAL coherent DMA memory,
> which may be mapped uncached on 32-bit powerpc. The optimized memset()
> path can use dcbz there and trigger an alignment warning.
>
> The skb tracking arrays remain ordinary CPU memory and still use memset().
>
> Assisted-by: Codex:GPT-5.5
> Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
> ---
> drivers/net/ethernet/ibm/emac/core.c | 15 +++++++++++++--
> 1 file changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/ibm/emac/core.c b/drivers/net/ethernet/ibm/emac/core.c
> index 1fd7cb50c568..7ab5c944f5de 100644
> --- a/drivers/net/ethernet/ibm/emac/core.c
> +++ b/drivers/net/ethernet/ibm/emac/core.c
> @@ -1161,6 +1161,17 @@ static void emac_clean_rx_ring(struct emac_instance *dev)
> }
> }
>
> +static void emac_clear_mal_desc(struct mal_descriptor *desc, int count)
> +{
> + int i;
> +
> + for (i = 0; i < count; i++) {
> + desc[i].ctrl = 0;
> + desc[i].data_len = 0;
> + desc[i].data_ptr = 0;
Sashiko noted that the compiler could still optimize the above to a
memset(). Perhaps a barrier() is needed here?
/P