mlx4: rx_headroom is a per port attribute
authorEric Dumazet <edumazet@google.com>
Wed, 8 Mar 2017 16:17:09 +0000 (08:17 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 9 Mar 2017 17:54:46 +0000 (09:54 -0800)
No need to duplicate it per RX queue / frags.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/en_rx.c
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h

index 118ea83cff089f614a11f99f6623358f200638a8..bb33032a280f00ee62cc39d4261e72543ed0434e 100644 (file)
@@ -115,7 +115,7 @@ static int mlx4_en_alloc_frags(struct mlx4_en_priv *priv,
 
        for (i = 0; i < priv->num_frags; i++) {
                frags[i] = ring_alloc[i];
-               frags[i].page_offset += priv->frag_info[i].rx_headroom;
+               frags[i].page_offset += priv->rx_headroom;
                rx_desc->data[i].addr = cpu_to_be64(frags[i].dma +
                                                    frags[i].page_offset);
                ring_alloc[i] = page_alloc[i];
@@ -1202,7 +1202,7 @@ void mlx4_en_calc_rx_buf(struct net_device *dev)
                 */
                priv->frag_info[0].frag_stride = PAGE_SIZE;
                priv->dma_dir = PCI_DMA_BIDIRECTIONAL;
-               priv->frag_info[0].rx_headroom = XDP_PACKET_HEADROOM;
+               priv->rx_headroom = XDP_PACKET_HEADROOM;
                i = 1;
        } else {
                int buf_size = 0;
@@ -1214,12 +1214,12 @@ void mlx4_en_calc_rx_buf(struct net_device *dev)
                        priv->frag_info[i].frag_stride =
                                ALIGN(priv->frag_info[i].frag_size,
                                      SMP_CACHE_BYTES);
-                       priv->frag_info[i].rx_headroom = 0;
                        buf_size += priv->frag_info[i].frag_size;
                        i++;
                }
                priv->rx_page_order = MLX4_EN_ALLOC_PREFER_ORDER;
                priv->dma_dir = PCI_DMA_FROMDEVICE;
+               priv->rx_headroom = 0;
        }
 
        priv->num_frags = i;
index 849aa8af4dd771cdd44fae25516980bd36ed45a8..fc7b4da5d8c376455c642d9512a8565d88db42a3 100644 (file)
@@ -472,7 +472,6 @@ struct mlx4_en_mc_list {
 
 struct mlx4_en_frag_info {
        u16 frag_size;
-       u16 rx_headroom;
        u32 frag_stride;
 };
 
@@ -585,6 +584,7 @@ struct mlx4_en_priv {
        u8 log_rx_info;
        u8 dma_dir;
        u8 rx_page_order;
+       u16 rx_headroom;
 
        struct mlx4_en_tx_ring **tx_ring[MLX4_EN_NUM_TX_TYPES];
        struct mlx4_en_rx_ring *rx_ring[MAX_RX_RINGS];