net: stmmac: Batch set RX OWN flag and other flags
authorTan En De <ende.tan@starfivetech.com>
Sat, 31 Aug 2024 01:11:14 +0000 (09:11 +0800)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 5 Sep 2024 09:19:07 +0000 (11:19 +0200)
Minimize access to the RX descriptor by collecting all the flags in a
local variable and then updating the descriptor at once.

Signed-off-by: Tan En De <ende.tan@starfivetech.com>
Link: https://patch.msgid.link/20240831011114.2065912-1-ende.tan@starfivetech.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c

index 1c5802e0d7f4e224b780359d3e6b671946fd05fe..e99401bcc1f84b10cee02ab1ff90757d8c968d24 100644 (file)
@@ -186,10 +186,12 @@ static void dwmac4_set_tx_owner(struct dma_desc *p)
 
 static void dwmac4_set_rx_owner(struct dma_desc *p, int disable_rx_ic)
 {
-       p->des3 |= cpu_to_le32(RDES3_OWN | RDES3_BUFFER1_VALID_ADDR);
+       u32 flags = (RDES3_OWN | RDES3_BUFFER1_VALID_ADDR);
 
        if (!disable_rx_ic)
-               p->des3 |= cpu_to_le32(RDES3_INT_ON_COMPLETION_EN);
+               flags |= RDES3_INT_ON_COMPLETION_EN;
+
+       p->des3 |= cpu_to_le32(flags);
 }
 
 static int dwmac4_get_tx_ls(struct dma_desc *p)
index fc82862a612c7445ca977b188a499fe4ee6ec03c..389aad7b5c1ee3ae8e9365d88f3df8ab1b77668d 100644 (file)
@@ -56,10 +56,12 @@ static void dwxgmac2_set_tx_owner(struct dma_desc *p)
 
 static void dwxgmac2_set_rx_owner(struct dma_desc *p, int disable_rx_ic)
 {
-       p->des3 |= cpu_to_le32(XGMAC_RDES3_OWN);
+       u32 flags = XGMAC_RDES3_OWN;
 
        if (!disable_rx_ic)
-               p->des3 |= cpu_to_le32(XGMAC_RDES3_IOC);
+               flags |= XGMAC_RDES3_IOC;
+
+       p->des3 |= cpu_to_le32(flags);
 }
 
 static int dwxgmac2_get_tx_ls(struct dma_desc *p)