diff options
author | Benjamin Li <benli@broadcom.com> | 2008-05-17 01:18:57 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-05-17 01:18:57 -0400 |
commit | d89cb6af41559a601e9cfe081d34de07945b0d8b (patch) | |
tree | cf6aa02b5b014eb8d6bda336ec001472792fdca8 /drivers/net | |
parent | 6ff2da49c8a68320c2564006c94a492db58de5cd (diff) |
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: Benjamin Li <benli@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/bnx2.c | 19 | ||||
-rw-r--r-- | drivers/net/bnx2.h | 2 |
2 files changed, 10 insertions, 11 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index 2589b99a8597..2180922550eb 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c | |||
@@ -2624,7 +2624,7 @@ bnx2_reuse_rx_skb(struct bnx2 *bp, struct bnx2_napi *bnapi, struct sk_buff *skb, | |||
2624 | 2624 | ||
2625 | pci_dma_sync_single_for_device(bp->pdev, | 2625 | pci_dma_sync_single_for_device(bp->pdev, |
2626 | pci_unmap_addr(cons_rx_buf, mapping), | 2626 | pci_unmap_addr(cons_rx_buf, mapping), |
2627 | bp->rx_offset + RX_COPY_THRESH, PCI_DMA_FROMDEVICE); | 2627 | BNX2_RX_OFFSET + RX_COPY_THRESH, PCI_DMA_FROMDEVICE); |
2628 | 2628 | ||
2629 | bnapi->rx_prod_bseq += bp->rx_buf_use_size; | 2629 | bnapi->rx_prod_bseq += bp->rx_buf_use_size; |
2630 | 2630 | ||
@@ -2662,7 +2662,7 @@ bnx2_rx_skb(struct bnx2 *bp, struct bnx2_napi *bnapi, struct sk_buff *skb, | |||
2662 | return err; | 2662 | return err; |
2663 | } | 2663 | } |
2664 | 2664 | ||
2665 | skb_reserve(skb, bp->rx_offset); | 2665 | skb_reserve(skb, BNX2_RX_OFFSET); |
2666 | pci_unmap_single(bp->pdev, dma_addr, bp->rx_buf_use_size, | 2666 | pci_unmap_single(bp->pdev, dma_addr, bp->rx_buf_use_size, |
2667 | PCI_DMA_FROMDEVICE); | 2667 | PCI_DMA_FROMDEVICE); |
2668 | 2668 | ||
@@ -2777,7 +2777,7 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget) | |||
2777 | dma_addr = pci_unmap_addr(rx_buf, mapping); | 2777 | dma_addr = pci_unmap_addr(rx_buf, mapping); |
2778 | 2778 | ||
2779 | pci_dma_sync_single_for_cpu(bp->pdev, dma_addr, | 2779 | pci_dma_sync_single_for_cpu(bp->pdev, dma_addr, |
2780 | bp->rx_offset + RX_COPY_THRESH, PCI_DMA_FROMDEVICE); | 2780 | BNX2_RX_OFFSET + RX_COPY_THRESH, PCI_DMA_FROMDEVICE); |
2781 | 2781 | ||
2782 | rx_hdr = (struct l2_fhdr *) skb->data; | 2782 | rx_hdr = (struct l2_fhdr *) skb->data; |
2783 | len = rx_hdr->l2_fhdr_pkt_len; | 2783 | len = rx_hdr->l2_fhdr_pkt_len; |
@@ -2815,7 +2815,8 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget) | |||
2815 | } | 2815 | } |
2816 | 2816 | ||
2817 | /* aligned copy */ | 2817 | /* aligned copy */ |
2818 | skb_copy_from_linear_data_offset(skb, bp->rx_offset - 2, | 2818 | skb_copy_from_linear_data_offset(skb, |
2819 | BNX2_RX_OFFSET - 2, | ||
2819 | new_skb->data, len + 2); | 2820 | new_skb->data, len + 2); |
2820 | skb_reserve(new_skb, 2); | 2821 | skb_reserve(new_skb, 2); |
2821 | skb_put(new_skb, len); | 2822 | skb_put(new_skb, len); |
@@ -4754,7 +4755,7 @@ bnx2_set_rx_ring_size(struct bnx2 *bp, u32 size) | |||
4754 | u32 rx_size, rx_space, jumbo_size; | 4755 | u32 rx_size, rx_space, jumbo_size; |
4755 | 4756 | ||
4756 | /* 8 for CRC and VLAN */ | 4757 | /* 8 for CRC and VLAN */ |
4757 | rx_size = bp->dev->mtu + ETH_HLEN + bp->rx_offset + 8; | 4758 | rx_size = bp->dev->mtu + ETH_HLEN + BNX2_RX_OFFSET + 8; |
4758 | 4759 | ||
4759 | rx_space = SKB_DATA_ALIGN(rx_size + BNX2_RX_ALIGN) + NET_SKB_PAD + | 4760 | rx_space = SKB_DATA_ALIGN(rx_size + BNX2_RX_ALIGN) + NET_SKB_PAD + |
4760 | sizeof(struct skb_shared_info); | 4761 | sizeof(struct skb_shared_info); |
@@ -4774,14 +4775,14 @@ bnx2_set_rx_ring_size(struct bnx2 *bp, u32 size) | |||
4774 | bp->rx_max_pg_ring = bnx2_find_max_ring(jumbo_size, | 4775 | bp->rx_max_pg_ring = bnx2_find_max_ring(jumbo_size, |
4775 | MAX_RX_PG_RINGS); | 4776 | MAX_RX_PG_RINGS); |
4776 | bp->rx_max_pg_ring_idx = (bp->rx_max_pg_ring * RX_DESC_CNT) - 1; | 4777 | bp->rx_max_pg_ring_idx = (bp->rx_max_pg_ring * RX_DESC_CNT) - 1; |
4777 | rx_size = RX_COPY_THRESH + bp->rx_offset; | 4778 | rx_size = RX_COPY_THRESH + BNX2_RX_OFFSET; |
4778 | bp->rx_copy_thresh = 0; | 4779 | bp->rx_copy_thresh = 0; |
4779 | } | 4780 | } |
4780 | 4781 | ||
4781 | bp->rx_buf_use_size = rx_size; | 4782 | bp->rx_buf_use_size = rx_size; |
4782 | /* hw alignment */ | 4783 | /* hw alignment */ |
4783 | bp->rx_buf_size = bp->rx_buf_use_size + BNX2_RX_ALIGN; | 4784 | bp->rx_buf_size = bp->rx_buf_use_size + BNX2_RX_ALIGN; |
4784 | bp->rx_jumbo_thresh = rx_size - bp->rx_offset; | 4785 | bp->rx_jumbo_thresh = rx_size - BNX2_RX_OFFSET; |
4785 | bp->rx_ring_size = size; | 4786 | bp->rx_ring_size = size; |
4786 | bp->rx_max_ring = bnx2_find_max_ring(size, MAX_RX_RINGS); | 4787 | bp->rx_max_ring = bnx2_find_max_ring(size, MAX_RX_RINGS); |
4787 | bp->rx_max_ring_idx = (bp->rx_max_ring * RX_DESC_CNT) - 1; | 4788 | 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 | rx_skb = rx_buf->skb; | 5226 | rx_skb = rx_buf->skb; |
5226 | 5227 | ||
5227 | rx_hdr = (struct l2_fhdr *) rx_skb->data; | 5228 | rx_hdr = (struct l2_fhdr *) rx_skb->data; |
5228 | skb_reserve(rx_skb, bp->rx_offset); | 5229 | skb_reserve(rx_skb, BNX2_RX_OFFSET); |
5229 | 5230 | ||
5230 | pci_dma_sync_single_for_cpu(bp->pdev, | 5231 | pci_dma_sync_single_for_cpu(bp->pdev, |
5231 | pci_unmap_addr(rx_buf, mapping), | 5232 | pci_unmap_addr(rx_buf, mapping), |
@@ -7306,8 +7307,6 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev) | |||
7306 | bp->mac_addr[4] = (u8) (reg >> 8); | 7307 | bp->mac_addr[4] = (u8) (reg >> 8); |
7307 | bp->mac_addr[5] = (u8) reg; | 7308 | bp->mac_addr[5] = (u8) reg; |
7308 | 7309 | ||
7309 | bp->rx_offset = sizeof(struct l2_fhdr) + 2; | ||
7310 | |||
7311 | bp->tx_ring_size = MAX_TX_DESC_CNT; | 7310 | bp->tx_ring_size = MAX_TX_DESC_CNT; |
7312 | bnx2_set_rx_ring_size(bp, 255); | 7311 | bnx2_set_rx_ring_size(bp, 255); |
7313 | 7312 | ||
diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h index 1eaf5bb3d9c2..601bafffe8ba 100644 --- a/drivers/net/bnx2.h +++ b/drivers/net/bnx2.h | |||
@@ -309,6 +309,7 @@ struct l2_fhdr { | |||
309 | #endif | 309 | #endif |
310 | }; | 310 | }; |
311 | 311 | ||
312 | #define BNX2_RX_OFFSET (sizeof(struct l2_fhdr) + 2) | ||
312 | 313 | ||
313 | /* | 314 | /* |
314 | * l2_context definition | 315 | * l2_context definition |
@@ -6627,7 +6628,6 @@ struct bnx2 { | |||
6627 | struct vlan_group *vlgrp; | 6628 | struct vlan_group *vlgrp; |
6628 | #endif | 6629 | #endif |
6629 | 6630 | ||
6630 | u32 rx_offset; | ||
6631 | u32 rx_buf_use_size; /* useable size */ | 6631 | u32 rx_buf_use_size; /* useable size */ |
6632 | u32 rx_buf_size; /* with alignment */ | 6632 | u32 rx_buf_size; /* with alignment */ |
6633 | u32 rx_copy_thresh; | 6633 | u32 rx_copy_thresh; |