Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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"
+12 −9
Original line number Diff line number Diff line
@@ -3877,15 +3877,17 @@ struct bnx2 {
#define USING_MSI_FLAG			0x20
#define ASF_ENABLE_FLAG			0x40

	/* Put tx producer and consumer fields in separate cache lines. */

	u32		tx_prod_bseq __attribute__((aligned(L1_CACHE_BYTES)));
	u16		tx_prod;

	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;

	u16		tx_cons __attribute__((aligned(L1_CACHE_BYTES)));
	u16		hw_tx_cons;
	u16			hw_rx_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;