diff options
author | Eilon Greenstein <eilong@broadcom.com> | 2009-02-12 08:36:18 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-02-15 23:31:08 -0800 |
commit | 0f00846deb9c9eaaeb4668b81496b783a04a241f (patch) | |
tree | 955d77255c54eed324db2c74f9cd9f3d887d3f7b | |
parent | 8badd27aa0d7c02572fcd1a4a3c6b57d67f40b78 (diff) | |
download | linux-0f00846deb9c9eaaeb4668b81496b783a04a241f.tar.gz linux-0f00846deb9c9eaaeb4668b81496b783a04a241f.tar.bz2 linux-0f00846deb9c9eaaeb4668b81496b783a04a241f.zip |
bnx2x: System-page alignment
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/bnx2x.h | 7 | ||||
-rw-r--r-- | drivers/net/bnx2x_main.c | 11 |
2 files changed, 9 insertions, 9 deletions
diff --git a/drivers/net/bnx2x.h b/drivers/net/bnx2x.h index 153cc9564b4c..89a72c86ef8f 100644 --- a/drivers/net/bnx2x.h +++ b/drivers/net/bnx2x.h @@ -158,8 +158,6 @@ struct sw_rx_page { #define SGE_PAGE_SHIFT PAGE_SHIFT #define SGE_PAGE_ALIGN(addr) PAGE_ALIGN(addr) -#define BCM_RX_ETH_PAYLOAD_ALIGN 64 - /* SGE ring related macros */ #define NUM_RX_SGE_PAGES 2 #define RX_SGE_CNT (BCM_PAGE_SIZE / sizeof(struct eth_rx_sge)) @@ -758,6 +756,11 @@ struct bnx2x { #define ETH_MAX_PACKET_SIZE 1500 #define ETH_MAX_JUMBO_PACKET_SIZE 9600 + /* Max supported alignment is 256 (8 shift) */ +#define BNX2X_RX_ALIGN_SHIFT ((L1_CACHE_SHIFT < 8) ? \ + L1_CACHE_SHIFT : 8) +#define BNX2X_RX_ALIGN (1 << BNX2X_RX_ALIGN_SHIFT) + struct host_def_status_block *def_status_blk; #define DEF_SB_ID 16 u16 def_c_idx; diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c index db8506d08fa5..312f652872b4 100644 --- a/drivers/net/bnx2x_main.c +++ b/drivers/net/bnx2x_main.c @@ -4296,14 +4296,11 @@ static void bnx2x_init_rx_rings(struct bnx2x *bp) u16 ring_prod, cqe_ring_prod; int i, j; - bp->rx_buf_size = bp->dev->mtu; - bp->rx_buf_size += bp->rx_offset + ETH_OVREHEAD + - BCM_RX_ETH_PAYLOAD_ALIGN; + bp->rx_buf_size += bp->rx_offset + ETH_OVREHEAD + BNX2X_RX_ALIGN; + DP(NETIF_MSG_IFUP, + "mtu %d rx_buf_size %d\n", bp->dev->mtu, bp->rx_buf_size); if (bp->flags & TPA_ENABLE_FLAG) { - DP(NETIF_MSG_IFUP, - "rx_buf_size %d effective_mtu %d\n", - bp->rx_buf_size, bp->dev->mtu + ETH_OVREHEAD); for_each_rx_queue(bp, j) { struct bnx2x_fastpath *fp = &bp->fp[j]; @@ -4502,7 +4499,7 @@ static void bnx2x_init_context(struct bnx2x *bp) context->ustorm_st_context.common.flags = USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_MC_ALIGNMENT; context->ustorm_st_context.common.mc_alignment_log_size = - 6 /*BCM_RX_ETH_PAYLOAD_ALIGN*/; + BNX2X_RX_ALIGN_SHIFT; context->ustorm_st_context.common.bd_buff_size = bp->rx_buf_size; context->ustorm_st_context.common.bd_page_base_hi = |