Commit 29b12174 authored by Michael Chan's avatar Michael Chan Committed by David S. Miller

[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: default avatarMichael Chan <mchan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f2a4f052
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
#include <linux/workqueue.h> #include <linux/workqueue.h>
#include <linux/crc32.h> #include <linux/crc32.h>
#include <linux/prefetch.h> #include <linux/prefetch.h>
#include <linux/cache.h>
#include "bnx2.h" #include "bnx2.h"
#include "bnx2_fw.h" #include "bnx2_fw.h"
......
...@@ -3877,15 +3877,17 @@ struct bnx2 { ...@@ -3877,15 +3877,17 @@ struct bnx2 {
#define USING_MSI_FLAG 0x20 #define USING_MSI_FLAG 0x20
#define ASF_ENABLE_FLAG 0x40 #define ASF_ENABLE_FLAG 0x40
struct tx_bd *tx_desc_ring; /* Put tx producer and consumer fields in separate cache lines. */
struct sw_bd *tx_buf_ring;
u32 tx_prod_bseq; u32 tx_prod_bseq __attribute__((aligned(L1_CACHE_BYTES)));
u16 tx_prod; u16 tx_prod;
u16 tx_cons;
int tx_ring_size; struct tx_bd *tx_desc_ring;
struct sw_bd *tx_buf_ring;
u16 hw_tx_cons; int tx_ring_size;
u16 hw_rx_cons;
u16 tx_cons __attribute__((aligned(L1_CACHE_BYTES)));
u16 hw_tx_cons;
#ifdef BCM_VLAN #ifdef BCM_VLAN
struct vlan_group *vlgrp; struct vlan_group *vlgrp;
...@@ -3899,6 +3901,7 @@ struct bnx2 { ...@@ -3899,6 +3901,7 @@ struct bnx2 {
u32 rx_prod_bseq; u32 rx_prod_bseq;
u16 rx_prod; u16 rx_prod;
u16 rx_cons; u16 rx_cons;
u16 hw_rx_cons;
u32 rx_csum; u32 rx_csum;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment