[BNX2]: Separate tx producer and consumer fields

Put the tx producer and consumer fields in separate cache lines in
the device structure, similar to the VJ net channel queue structure.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Michael Chan 2006-03-23 01:13:43 -08:00 committed by David S. Miller
parent f2a4f05216
commit 29b12174ac
2 changed files with 12 additions and 8 deletions

View File

@ -48,6 +48,7 @@
#include <linux/workqueue.h>
#include <linux/crc32.h>
#include <linux/prefetch.h>
#include <linux/cache.h>
#include "bnx2.h"
#include "bnx2_fw.h"

View File

@ -3877,15 +3877,17 @@ struct bnx2 {
#define USING_MSI_FLAG 0x20
#define ASF_ENABLE_FLAG 0x40
struct tx_bd *tx_desc_ring;
struct sw_bd *tx_buf_ring;
u32 tx_prod_bseq;
u16 tx_prod;
u16 tx_cons;
int tx_ring_size;
/* Put tx producer and consumer fields in separate cache lines. */
u16 hw_tx_cons;
u16 hw_rx_cons;
u32 tx_prod_bseq __attribute__((aligned(L1_CACHE_BYTES)));
u16 tx_prod;
struct tx_bd *tx_desc_ring;
struct sw_bd *tx_buf_ring;
int tx_ring_size;
u16 tx_cons __attribute__((aligned(L1_CACHE_BYTES)));
u16 hw_tx_cons;
#ifdef BCM_VLAN
struct vlan_group *vlgrp;
@ -3899,6 +3901,7 @@ struct bnx2 {
u32 rx_prod_bseq;
u16 rx_prod;
u16 rx_cons;
u16 hw_rx_cons;
u32 rx_csum;