]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
net: lan966x: Add len field to lan966x_tx_dcb_buf
authorHoratiu Vultur <horatiu.vultur@microchip.com>
Wed, 23 Nov 2022 20:31:35 +0000 (21:31 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 25 Nov 2022 10:38:10 +0000 (10:38 +0000)
Currently when a frame was transmitted, it is required to unamp the
frame that was transmitted. The length of the frame was taken from the
transmitted skb. In the future we might not have an skb, therefore store
the length skb directly in the lan966x_tx_dcb_buf and use this one to
unamp the frame.
While at this, also arrange the members in lan966x_tx_dcb_buf not to
have any holes.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
drivers/net/ethernet/microchip/lan966x/lan966x_main.h

index 94c720e59caee37e65e07d41ce27d5341354a049..384ed34197d58a690bb19e14d3625a26cd02f6a0 100644 (file)
@@ -391,12 +391,12 @@ static void lan966x_fdma_tx_clear_buf(struct lan966x *lan966x, int weight)
                        continue;
 
                dcb_buf->dev->stats.tx_packets++;
-               dcb_buf->dev->stats.tx_bytes += dcb_buf->skb->len;
+               dcb_buf->dev->stats.tx_bytes += dcb_buf->len;
 
                dcb_buf->used = false;
                dma_unmap_single(lan966x->dev,
                                 dcb_buf->dma_addr,
-                                dcb_buf->skb->len,
+                                dcb_buf->len,
                                 DMA_TO_DEVICE);
                if (!dcb_buf->ptp)
                        dev_kfree_skb_any(dcb_buf->skb);
@@ -709,6 +709,7 @@ int lan966x_fdma_xmit(struct sk_buff *skb, __be32 *ifh, struct net_device *dev)
        /* Fill up the buffer */
        next_dcb_buf = &tx->dcbs_buf[next_to_use];
        next_dcb_buf->skb = skb;
+       next_dcb_buf->len = skb->len;
        next_dcb_buf->dma_addr = dma_addr;
        next_dcb_buf->used = true;
        next_dcb_buf->ptp = false;
index bc93051aa0798983c7176f0576aac1d567bc6368..c762e3732f88f8133dbfcd32a764aee25fd7c3cb 100644 (file)
@@ -173,11 +173,12 @@ struct lan966x_rx {
 };
 
 struct lan966x_tx_dcb_buf {
+       dma_addr_t dma_addr;
        struct net_device *dev;
        struct sk_buff *skb;
-       dma_addr_t dma_addr;
-       bool used;
-       bool ptp;
+       u32 len;
+       u32 used : 1;
+       u32 ptp : 1;
 };
 
 struct lan966x_tx {