* [PATCH net-next] net: ibm: emac: Clear MAL descriptors without memset
@ 2026-05-17 3:36 Rosen Penev
0 siblings, 0 replies; only message in thread
From: Rosen Penev @ 2026-05-17 3:36 UTC (permalink / raw)
To: netdev
Cc: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, open list
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@gmail.com>
---
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;
+ }
+}
+
static int
__emac_prepare_rx_skb(struct sk_buff *skb, struct emac_instance *dev, int slot)
{
@@ -3121,8 +3132,8 @@ static int emac_probe(struct platform_device *ofdev)
DBG(dev, "rx_desc %p" NL, dev->rx_desc);
/* Clean rings */
- memset(dev->tx_desc, 0, NUM_TX_BUFF * sizeof(struct mal_descriptor));
- memset(dev->rx_desc, 0, NUM_RX_BUFF * sizeof(struct mal_descriptor));
+ emac_clear_mal_desc(dev->tx_desc, NUM_TX_BUFF);
+ emac_clear_mal_desc(dev->rx_desc, NUM_RX_BUFF);
memset(dev->tx_skb, 0, NUM_TX_BUFF * sizeof(struct sk_buff *));
memset(dev->rx_skb, 0, NUM_RX_BUFF * sizeof(struct sk_buff *));
--
2.54.0
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-05-17 3:36 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-17 3:36 [PATCH net-next] net: ibm: emac: Clear MAL descriptors without memset Rosen Penev
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox