提交 d89cb6af 编写于 作者: B Benjamin Li 提交者: David S. Miller

bnx2: Remove the rx_offset field from the bnx2 structure.

The rx_offset field is set to a constant value and initialized
only once.  By replacing all references to the rx_offset field,
we can eliminate rx_offset from the bnx2 structure.  This will
save 4 bytes for every bnx2 instance.

[Added parentheses to the definition of BNX2_RX_OFFSET, as noted
by Ben Hutchings.]
Signed-off-by: NBenjamin Li <benli@broadcom.com>
Signed-off-by: NMichael Chan <mchan@broadcom.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 6ff2da49
...@@ -2624,7 +2624,7 @@ bnx2_reuse_rx_skb(struct bnx2 *bp, struct bnx2_napi *bnapi, struct sk_buff *skb, ...@@ -2624,7 +2624,7 @@ bnx2_reuse_rx_skb(struct bnx2 *bp, struct bnx2_napi *bnapi, struct sk_buff *skb,
pci_dma_sync_single_for_device(bp->pdev, pci_dma_sync_single_for_device(bp->pdev,
pci_unmap_addr(cons_rx_buf, mapping), pci_unmap_addr(cons_rx_buf, mapping),
bp->rx_offset + RX_COPY_THRESH, PCI_DMA_FROMDEVICE); BNX2_RX_OFFSET + RX_COPY_THRESH, PCI_DMA_FROMDEVICE);
bnapi->rx_prod_bseq += bp->rx_buf_use_size; bnapi->rx_prod_bseq += bp->rx_buf_use_size;
...@@ -2662,7 +2662,7 @@ bnx2_rx_skb(struct bnx2 *bp, struct bnx2_napi *bnapi, struct sk_buff *skb, ...@@ -2662,7 +2662,7 @@ bnx2_rx_skb(struct bnx2 *bp, struct bnx2_napi *bnapi, struct sk_buff *skb,
return err; return err;
} }
skb_reserve(skb, bp->rx_offset); skb_reserve(skb, BNX2_RX_OFFSET);
pci_unmap_single(bp->pdev, dma_addr, bp->rx_buf_use_size, pci_unmap_single(bp->pdev, dma_addr, bp->rx_buf_use_size,
PCI_DMA_FROMDEVICE); PCI_DMA_FROMDEVICE);
...@@ -2777,7 +2777,7 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget) ...@@ -2777,7 +2777,7 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
dma_addr = pci_unmap_addr(rx_buf, mapping); dma_addr = pci_unmap_addr(rx_buf, mapping);
pci_dma_sync_single_for_cpu(bp->pdev, dma_addr, pci_dma_sync_single_for_cpu(bp->pdev, dma_addr,
bp->rx_offset + RX_COPY_THRESH, PCI_DMA_FROMDEVICE); BNX2_RX_OFFSET + RX_COPY_THRESH, PCI_DMA_FROMDEVICE);
rx_hdr = (struct l2_fhdr *) skb->data; rx_hdr = (struct l2_fhdr *) skb->data;
len = rx_hdr->l2_fhdr_pkt_len; len = rx_hdr->l2_fhdr_pkt_len;
...@@ -2815,7 +2815,8 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget) ...@@ -2815,7 +2815,8 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
} }
/* aligned copy */ /* aligned copy */
skb_copy_from_linear_data_offset(skb, bp->rx_offset - 2, skb_copy_from_linear_data_offset(skb,
BNX2_RX_OFFSET - 2,
new_skb->data, len + 2); new_skb->data, len + 2);
skb_reserve(new_skb, 2); skb_reserve(new_skb, 2);
skb_put(new_skb, len); skb_put(new_skb, len);
...@@ -4754,7 +4755,7 @@ bnx2_set_rx_ring_size(struct bnx2 *bp, u32 size) ...@@ -4754,7 +4755,7 @@ bnx2_set_rx_ring_size(struct bnx2 *bp, u32 size)
u32 rx_size, rx_space, jumbo_size; u32 rx_size, rx_space, jumbo_size;
/* 8 for CRC and VLAN */ /* 8 for CRC and VLAN */
rx_size = bp->dev->mtu + ETH_HLEN + bp->rx_offset + 8; rx_size = bp->dev->mtu + ETH_HLEN + BNX2_RX_OFFSET + 8;
rx_space = SKB_DATA_ALIGN(rx_size + BNX2_RX_ALIGN) + NET_SKB_PAD + rx_space = SKB_DATA_ALIGN(rx_size + BNX2_RX_ALIGN) + NET_SKB_PAD +
sizeof(struct skb_shared_info); sizeof(struct skb_shared_info);
...@@ -4774,14 +4775,14 @@ bnx2_set_rx_ring_size(struct bnx2 *bp, u32 size) ...@@ -4774,14 +4775,14 @@ bnx2_set_rx_ring_size(struct bnx2 *bp, u32 size)
bp->rx_max_pg_ring = bnx2_find_max_ring(jumbo_size, bp->rx_max_pg_ring = bnx2_find_max_ring(jumbo_size,
MAX_RX_PG_RINGS); MAX_RX_PG_RINGS);
bp->rx_max_pg_ring_idx = (bp->rx_max_pg_ring * RX_DESC_CNT) - 1; bp->rx_max_pg_ring_idx = (bp->rx_max_pg_ring * RX_DESC_CNT) - 1;
rx_size = RX_COPY_THRESH + bp->rx_offset; rx_size = RX_COPY_THRESH + BNX2_RX_OFFSET;
bp->rx_copy_thresh = 0; bp->rx_copy_thresh = 0;
} }
bp->rx_buf_use_size = rx_size; bp->rx_buf_use_size = rx_size;
/* hw alignment */ /* hw alignment */
bp->rx_buf_size = bp->rx_buf_use_size + BNX2_RX_ALIGN; bp->rx_buf_size = bp->rx_buf_use_size + BNX2_RX_ALIGN;
bp->rx_jumbo_thresh = rx_size - bp->rx_offset; bp->rx_jumbo_thresh = rx_size - BNX2_RX_OFFSET;
bp->rx_ring_size = size; bp->rx_ring_size = size;
bp->rx_max_ring = bnx2_find_max_ring(size, MAX_RX_RINGS); bp->rx_max_ring = bnx2_find_max_ring(size, MAX_RX_RINGS);
bp->rx_max_ring_idx = (bp->rx_max_ring * RX_DESC_CNT) - 1; bp->rx_max_ring_idx = (bp->rx_max_ring * RX_DESC_CNT) - 1;
...@@ -5225,7 +5226,7 @@ bnx2_run_loopback(struct bnx2 *bp, int loopback_mode) ...@@ -5225,7 +5226,7 @@ bnx2_run_loopback(struct bnx2 *bp, int loopback_mode)
rx_skb = rx_buf->skb; rx_skb = rx_buf->skb;
rx_hdr = (struct l2_fhdr *) rx_skb->data; rx_hdr = (struct l2_fhdr *) rx_skb->data;
skb_reserve(rx_skb, bp->rx_offset); skb_reserve(rx_skb, BNX2_RX_OFFSET);
pci_dma_sync_single_for_cpu(bp->pdev, pci_dma_sync_single_for_cpu(bp->pdev,
pci_unmap_addr(rx_buf, mapping), pci_unmap_addr(rx_buf, mapping),
...@@ -7306,8 +7307,6 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev) ...@@ -7306,8 +7307,6 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev)
bp->mac_addr[4] = (u8) (reg >> 8); bp->mac_addr[4] = (u8) (reg >> 8);
bp->mac_addr[5] = (u8) reg; bp->mac_addr[5] = (u8) reg;
bp->rx_offset = sizeof(struct l2_fhdr) + 2;
bp->tx_ring_size = MAX_TX_DESC_CNT; bp->tx_ring_size = MAX_TX_DESC_CNT;
bnx2_set_rx_ring_size(bp, 255); bnx2_set_rx_ring_size(bp, 255);
......
...@@ -309,6 +309,7 @@ struct l2_fhdr { ...@@ -309,6 +309,7 @@ struct l2_fhdr {
#endif #endif
}; };
#define BNX2_RX_OFFSET (sizeof(struct l2_fhdr) + 2)
/* /*
* l2_context definition * l2_context definition
...@@ -6627,7 +6628,6 @@ struct bnx2 { ...@@ -6627,7 +6628,6 @@ struct bnx2 {
struct vlan_group *vlgrp; struct vlan_group *vlgrp;
#endif #endif
u32 rx_offset;
u32 rx_buf_use_size; /* useable size */ u32 rx_buf_use_size; /* useable size */
u32 rx_buf_size; /* with alignment */ u32 rx_buf_size; /* with alignment */
u32 rx_copy_thresh; u32 rx_copy_thresh;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册