netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [net-next PATCH 0/8] qlge: Cleanup and additions for qlge.
@ 2009-10-10 19:35 Ron Mercer
  2009-10-10 19:35 ` [net-next PATCH 1/8] qlge: Remove explicit setting of PCI Dev CTL reg Ron Mercer
                   ` (8 more replies)
  0 siblings, 9 replies; 11+ messages in thread
From: Ron Mercer @ 2009-10-10 19:35 UTC (permalink / raw)
  To: davem; +Cc: netdev, ron.mercer


Cleanup and a couple of small performance tweeks for qlge.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [net-next PATCH 1/8] qlge: Remove explicit setting of PCI Dev CTL reg.
  2009-10-10 19:35 [net-next PATCH 0/8] qlge: Cleanup and additions for qlge Ron Mercer
@ 2009-10-10 19:35 ` Ron Mercer
  2009-10-12  6:10   ` David Miller
  2009-10-10 19:35 ` [net-next PATCH 2/8] qlge: Set PCIE max read request size Ron Mercer
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 11+ messages in thread
From: Ron Mercer @ 2009-10-10 19:35 UTC (permalink / raw)
  To: davem; +Cc: netdev, ron.mercer, root

From: root <root@localhost.localdomain>

Remove explicit setting of error reporting bits.

Signed-off-by: root <root@localhost.localdomain>
Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge_main.c |   16 +---------------
 1 files changed, 1 insertions(+), 15 deletions(-)

diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 48b45df..7a9dca8 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -3868,8 +3868,7 @@ static int __devinit ql_init_device(struct pci_dev *pdev,
 				    struct net_device *ndev, int cards_found)
 {
 	struct ql_adapter *qdev = netdev_priv(ndev);
-	int pos, err = 0;
-	u16 val16;
+	int err = 0;
 
 	memset((void *)qdev, 0, sizeof(*qdev));
 	err = pci_enable_device(pdev);
@@ -3881,19 +3880,6 @@ static int __devinit ql_init_device(struct pci_dev *pdev,
 	qdev->ndev = ndev;
 	qdev->pdev = pdev;
 	pci_set_drvdata(pdev, ndev);
-	pos = pci_find_capability(pdev, PCI_CAP_ID_EXP);
-	if (pos <= 0) {
-		dev_err(&pdev->dev, PFX "Cannot find PCI Express capability, "
-			"aborting.\n");
-		return pos;
-	} else {
-		pci_read_config_word(pdev, pos + PCI_EXP_DEVCTL, &val16);
-		val16 &= ~PCI_EXP_DEVCTL_NOSNOOP_EN;
-		val16 |= (PCI_EXP_DEVCTL_CERE |
-			  PCI_EXP_DEVCTL_NFERE |
-			  PCI_EXP_DEVCTL_FERE | PCI_EXP_DEVCTL_URRE);
-		pci_write_config_word(pdev, pos + PCI_EXP_DEVCTL, val16);
-	}
 
 	err = pci_request_regions(pdev, DRV_NAME);
 	if (err) {
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [net-next PATCH 2/8] qlge: Set PCIE max read request size.
  2009-10-10 19:35 [net-next PATCH 0/8] qlge: Cleanup and additions for qlge Ron Mercer
  2009-10-10 19:35 ` [net-next PATCH 1/8] qlge: Remove explicit setting of PCI Dev CTL reg Ron Mercer
@ 2009-10-10 19:35 ` Ron Mercer
  2009-10-10 19:35 ` [net-next PATCH 3/8] qlge: Add handler for DCBX firmware event Ron Mercer
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Ron Mercer @ 2009-10-10 19:35 UTC (permalink / raw)
  To: davem; +Cc: netdev, ron.mercer, root

From: root <root@localhost.localdomain>

Signed-off-by: root <root@localhost.localdomain>
Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge_main.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 7a9dca8..aeb0104 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -3881,6 +3881,13 @@ static int __devinit ql_init_device(struct pci_dev *pdev,
 	qdev->pdev = pdev;
 	pci_set_drvdata(pdev, ndev);
 
+	/* Set PCIe read request size */
+	err = pcie_set_readrq(pdev, 4096);
+	if (err) {
+		dev_err(&pdev->dev, "Set readrq failed.\n");
+		goto err_out;
+	}
+
 	err = pci_request_regions(pdev, DRV_NAME);
 	if (err) {
 		dev_err(&pdev->dev, "PCI region request failed.\n");
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [net-next PATCH 3/8] qlge: Add handler for DCBX firmware event.
  2009-10-10 19:35 [net-next PATCH 0/8] qlge: Cleanup and additions for qlge Ron Mercer
  2009-10-10 19:35 ` [net-next PATCH 1/8] qlge: Remove explicit setting of PCI Dev CTL reg Ron Mercer
  2009-10-10 19:35 ` [net-next PATCH 2/8] qlge: Set PCIE max read request size Ron Mercer
@ 2009-10-10 19:35 ` Ron Mercer
  2009-10-10 19:35 ` [net-next PATCH 4/8] qlge: Store firmware revision as early as possible Ron Mercer
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Ron Mercer @ 2009-10-10 19:35 UTC (permalink / raw)
  To: davem; +Cc: netdev, ron.mercer

The driver has nothing to do, but this marker prevents the event from
showing up 'not handled'.

Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge_mpi.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/net/qlge/qlge_mpi.c b/drivers/net/qlge/qlge_mpi.c
index 99e58e3..2e83c4b 100644
--- a/drivers/net/qlge/qlge_mpi.c
+++ b/drivers/net/qlge/qlge_mpi.c
@@ -446,6 +446,9 @@ static int ql_mpi_handler(struct ql_adapter *qdev, struct mbox_params *mbcp)
 		ql_aen_lost(qdev, mbcp);
 		break;
 
+	case AEN_DCBX_CHG:
+		/* Need to support AEN 8110 */
+		break;
 	default:
 		QPRINTK(qdev, DRV, ERR,
 			"Unsupported AE %.08x.\n", mbcp->mbox_out[0]);
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [net-next PATCH 4/8] qlge: Store firmware revision as early as possible.
  2009-10-10 19:35 [net-next PATCH 0/8] qlge: Cleanup and additions for qlge Ron Mercer
                   ` (2 preceding siblings ...)
  2009-10-10 19:35 ` [net-next PATCH 3/8] qlge: Add handler for DCBX firmware event Ron Mercer
@ 2009-10-10 19:35 ` Ron Mercer
  2009-10-10 19:35 ` [net-next PATCH 5/8] qlge: Remove inline math for small rx buf mapping Ron Mercer
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Ron Mercer @ 2009-10-10 19:35 UTC (permalink / raw)
  To: davem; +Cc: netdev, ron.mercer


Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge_mpi.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/net/qlge/qlge_mpi.c b/drivers/net/qlge/qlge_mpi.c
index 2e83c4b..9c0dfe0 100644
--- a/drivers/net/qlge/qlge_mpi.c
+++ b/drivers/net/qlge/qlge_mpi.c
@@ -317,6 +317,7 @@ static void ql_init_fw_done(struct ql_adapter *qdev, struct mbox_params *mbcp)
 	} else {
 		QPRINTK(qdev, DRV, ERR, "Firmware Revision  = 0x%.08x.\n",
 			mbcp->mbox_out[1]);
+		qdev->fw_rev_id = mbcp->mbox_out[1];
 		status = ql_cam_route_initialize(qdev);
 		if (status)
 			QPRINTK(qdev, IFUP, ERR,
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [net-next PATCH 5/8] qlge: Remove inline math for small rx buf mapping.
  2009-10-10 19:35 [net-next PATCH 0/8] qlge: Cleanup and additions for qlge Ron Mercer
                   ` (3 preceding siblings ...)
  2009-10-10 19:35 ` [net-next PATCH 4/8] qlge: Store firmware revision as early as possible Ron Mercer
@ 2009-10-10 19:35 ` Ron Mercer
  2009-10-10 19:35 ` [net-next PATCH 6/8] qlge: Get rid of firmware handler debug code Ron Mercer
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Ron Mercer @ 2009-10-10 19:35 UTC (permalink / raw)
  To: davem; +Cc: netdev, ron.mercer

rx_ring->sbq_buf_len now holds the length of the mapped portion of the
buffer rather than the overall length.

Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge.h      |    3 ++-
 drivers/net/qlge/qlge_main.c |   14 +++++++-------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/drivers/net/qlge/qlge.h b/drivers/net/qlge/qlge.h
index e7285f0..633fcd1 100644
--- a/drivers/net/qlge/qlge.h
+++ b/drivers/net/qlge/qlge.h
@@ -54,7 +54,8 @@
 #define RX_RING_SHADOW_SPACE	(sizeof(u64) + \
 		MAX_DB_PAGES_PER_BQ(NUM_SMALL_BUFFERS) * sizeof(u64) + \
 		MAX_DB_PAGES_PER_BQ(NUM_LARGE_BUFFERS) * sizeof(u64))
-#define SMALL_BUFFER_SIZE 256
+#define SMALL_BUFFER_SIZE 512
+#define SMALL_BUF_MAP_SIZE (SMALL_BUFFER_SIZE / 2)
 #define LARGE_BUFFER_SIZE	PAGE_SIZE
 #define MAX_SPLIT_SIZE 1023
 #define QLGE_SB_PAD 32
diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index aeb0104..09247ab 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -1147,7 +1147,7 @@ static void ql_update_sbq(struct ql_adapter *qdev, struct rx_ring *rx_ring)
 					sbq_desc->index);
 				sbq_desc->p.skb =
 				    netdev_alloc_skb(qdev->ndev,
-						     rx_ring->sbq_buf_size);
+						     SMALL_BUFFER_SIZE);
 				if (sbq_desc->p.skb == NULL) {
 					QPRINTK(qdev, PROBE, ERR,
 						"Couldn't get an skb.\n");
@@ -1157,8 +1157,8 @@ static void ql_update_sbq(struct ql_adapter *qdev, struct rx_ring *rx_ring)
 				skb_reserve(sbq_desc->p.skb, QLGE_SB_PAD);
 				map = pci_map_single(qdev->pdev,
 						     sbq_desc->p.skb->data,
-						     rx_ring->sbq_buf_size /
-						     2, PCI_DMA_FROMDEVICE);
+						     rx_ring->sbq_buf_size,
+						     PCI_DMA_FROMDEVICE);
 				if (pci_dma_mapping_error(qdev->pdev, map)) {
 					QPRINTK(qdev, IFUP, ERR, "PCI mapping failed.\n");
 					rx_ring->sbq_clean_idx = clean_idx;
@@ -1168,7 +1168,7 @@ static void ql_update_sbq(struct ql_adapter *qdev, struct rx_ring *rx_ring)
 				}
 				pci_unmap_addr_set(sbq_desc, mapaddr, map);
 				pci_unmap_len_set(sbq_desc, maplen,
-						  rx_ring->sbq_buf_size / 2);
+						  rx_ring->sbq_buf_size);
 				*sbq_desc->addr = cpu_to_le64(map);
 			}
 
@@ -2692,7 +2692,7 @@ static int ql_start_rx_ring(struct ql_adapter *qdev, struct rx_ring *rx_ring)
 		cqicb->sbq_addr =
 		    cpu_to_le64(rx_ring->sbq_base_indirect_dma);
 		cqicb->sbq_buf_size =
-		    cpu_to_le16((u16)(rx_ring->sbq_buf_size/2));
+		    cpu_to_le16((u16)(rx_ring->sbq_buf_size));
 		bq_len = (rx_ring->sbq_len == 65536) ? 0 :
 			(u16) rx_ring->sbq_len;
 		cqicb->sbq_len = cpu_to_le16(bq_len);
@@ -3268,7 +3268,7 @@ static int ql_adapter_initialize(struct ql_adapter *qdev)
 	ql_write32(qdev, FSC, mask | value);
 
 	ql_write32(qdev, SPLT_HDR, SPLT_HDR_EP |
-		min(SMALL_BUFFER_SIZE, MAX_SPLIT_SIZE));
+		min(SMALL_BUF_MAP_SIZE, MAX_SPLIT_SIZE));
 
 	/* Set RX packet routing to use port/pci function on which the
 	 * packet arrived on in addition to usual frame routing.
@@ -3548,7 +3548,7 @@ static int ql_configure_rings(struct ql_adapter *qdev)
 			rx_ring->sbq_len = NUM_SMALL_BUFFERS;
 			rx_ring->sbq_size =
 			    rx_ring->sbq_len * sizeof(__le64);
-			rx_ring->sbq_buf_size = SMALL_BUFFER_SIZE * 2;
+			rx_ring->sbq_buf_size = SMALL_BUF_MAP_SIZE;
 			rx_ring->type = RX_Q;
 		} else {
 			/*
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [net-next PATCH 6/8] qlge: Get rid of firmware handler debug code.
  2009-10-10 19:35 [net-next PATCH 0/8] qlge: Cleanup and additions for qlge Ron Mercer
                   ` (4 preceding siblings ...)
  2009-10-10 19:35 ` [net-next PATCH 5/8] qlge: Remove inline math for small rx buf mapping Ron Mercer
@ 2009-10-10 19:35 ` Ron Mercer
  2009-10-10 19:35 ` [net-next PATCH 7/8] qlge: Don't fail open when port is not initialized Ron Mercer
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Ron Mercer @ 2009-10-10 19:35 UTC (permalink / raw)
  To: davem; +Cc: netdev, ron.mercer


Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge_mpi.c |   21 ---------------------
 1 files changed, 0 insertions(+), 21 deletions(-)

diff --git a/drivers/net/qlge/qlge_mpi.c b/drivers/net/qlge/qlge_mpi.c
index 9c0dfe0..e497eac 100644
--- a/drivers/net/qlge/qlge_mpi.c
+++ b/drivers/net/qlge/qlge_mpi.c
@@ -1,25 +1,5 @@
 #include "qlge.h"
 
-static void ql_display_mb_sts(struct ql_adapter *qdev,
-						struct mbox_params *mbcp)
-{
-	int i;
-	static char *err_sts[] = {
-		"Command Complete",
-		"Command Not Supported",
-		"Host Interface Error",
-		"Checksum Error",
-		"Unused Completion Status",
-		"Test Failed",
-		"Command Parameter Error"};
-
-	QPRINTK(qdev, DRV, DEBUG, "%s.\n",
-		err_sts[mbcp->mbox_out[0] & 0x0000000f]);
-	for (i = 0; i < mbcp->out_count; i++)
-		QPRINTK(qdev, DRV, DEBUG, "mbox_out[%d] = 0x%.08x.\n",
-				i, mbcp->mbox_out[i]);
-}
-
 int ql_read_mpi_reg(struct ql_adapter *qdev, u32 reg, u32 *data)
 {
 	int status;
@@ -540,7 +520,6 @@ static int ql_mailbox_command(struct ql_adapter *qdev, struct mbox_params *mbcp)
 					MB_CMD_STS_GOOD) &&
 		((mbcp->mbox_out[0] & 0x0000f000) !=
 					MB_CMD_STS_INTRMDT)) {
-		ql_display_mb_sts(qdev, mbcp);
 		status = -EIO;
 	}
 end:
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [net-next PATCH 7/8] qlge: Don't fail open when port is not initialized.
  2009-10-10 19:35 [net-next PATCH 0/8] qlge: Cleanup and additions for qlge Ron Mercer
                   ` (5 preceding siblings ...)
  2009-10-10 19:35 ` [net-next PATCH 6/8] qlge: Get rid of firmware handler debug code Ron Mercer
@ 2009-10-10 19:35 ` Ron Mercer
  2009-10-10 19:35 ` [net-next PATCH 8/8] qlge: Add CBFC pause frame counters to ethtool stats Ron Mercer
  2009-10-12  6:26 ` [net-next PATCH 0/8] qlge: Cleanup and additions for qlge David Miller
  8 siblings, 0 replies; 11+ messages in thread
From: Ron Mercer @ 2009-10-10 19:35 UTC (permalink / raw)
  To: davem; +Cc: netdev, ron.mercer


Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge_main.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 09247ab..9eefb11 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -3310,10 +3310,8 @@ static int ql_adapter_initialize(struct ql_adapter *qdev)
 
 	/* Initialize the port and set the max framesize. */
 	status = qdev->nic_ops->port_initialize(qdev);
-       if (status) {
-              QPRINTK(qdev, IFUP, ERR, "Failed to start port.\n");
-              return status;
-       }
+	if (status)
+		QPRINTK(qdev, IFUP, ERR, "Failed to start port.\n");
 
 	/* Set up the MAC address and frame routing filter. */
 	status = ql_cam_route_initialize(qdev);
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [net-next PATCH 8/8] qlge: Add CBFC pause frame counters to ethtool stats.
  2009-10-10 19:35 [net-next PATCH 0/8] qlge: Cleanup and additions for qlge Ron Mercer
                   ` (6 preceding siblings ...)
  2009-10-10 19:35 ` [net-next PATCH 7/8] qlge: Don't fail open when port is not initialized Ron Mercer
@ 2009-10-10 19:35 ` Ron Mercer
  2009-10-12  6:26 ` [net-next PATCH 0/8] qlge: Cleanup and additions for qlge David Miller
  8 siblings, 0 replies; 11+ messages in thread
From: Ron Mercer @ 2009-10-10 19:35 UTC (permalink / raw)
  To: davem; +Cc: netdev, ron.mercer


Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge.h         |   21 ++++++++++++
 drivers/net/qlge/qlge_ethtool.c |   69 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 90 insertions(+), 0 deletions(-)

diff --git a/drivers/net/qlge/qlge.h b/drivers/net/qlge/qlge.h
index 633fcd1..fd47691 100644
--- a/drivers/net/qlge/qlge.h
+++ b/drivers/net/qlge/qlge.h
@@ -1363,6 +1363,27 @@ struct nic_stats {
 	u64 rx_1024_to_1518_pkts;
 	u64 rx_1519_to_max_pkts;
 	u64 rx_len_err_pkts;
+	/*
+	 * These stats come from offset 500h to 5C8h
+	 * in the XGMAC register.
+	 */
+	u64 tx_cbfc_pause_frames0;
+	u64 tx_cbfc_pause_frames1;
+	u64 tx_cbfc_pause_frames2;
+	u64 tx_cbfc_pause_frames3;
+	u64 tx_cbfc_pause_frames4;
+	u64 tx_cbfc_pause_frames5;
+	u64 tx_cbfc_pause_frames6;
+	u64 tx_cbfc_pause_frames7;
+	u64 rx_cbfc_pause_frames0;
+	u64 rx_cbfc_pause_frames1;
+	u64 rx_cbfc_pause_frames2;
+	u64 rx_cbfc_pause_frames3;
+	u64 rx_cbfc_pause_frames4;
+	u64 rx_cbfc_pause_frames5;
+	u64 rx_cbfc_pause_frames6;
+	u64 rx_cbfc_pause_frames7;
+	u64 rx_nic_fifo_drop;
 };
 
 /*
diff --git a/drivers/net/qlge/qlge_ethtool.c b/drivers/net/qlge/qlge_ethtool.c
index 5207394..aac6c6f 100644
--- a/drivers/net/qlge/qlge_ethtool.c
+++ b/drivers/net/qlge/qlge_ethtool.c
@@ -132,6 +132,41 @@ static void ql_update_stats(struct ql_adapter *qdev)
 		iter++;
 	}
 
+	/*
+	 * Get Per-priority TX pause frame counter statistics.
+	 */
+	for (i = 0x500; i < 0x540; i += 8) {
+		if (ql_read_xgmac_reg64(qdev, i, &data)) {
+			QPRINTK(qdev, DRV, ERR,
+				"Error reading status register 0x%.04x.\n", i);
+			goto end;
+		} else
+			*iter = data;
+		iter++;
+	}
+
+	/*
+	 * Get Per-priority RX pause frame counter statistics.
+	 */
+	for (i = 0x568; i < 0x5a8; i += 8) {
+		if (ql_read_xgmac_reg64(qdev, i, &data)) {
+			QPRINTK(qdev, DRV, ERR,
+				"Error reading status register 0x%.04x.\n", i);
+			goto end;
+		} else
+			*iter = data;
+		iter++;
+	}
+
+	/*
+	 * Get RX NIC FIFO DROP statistics.
+	 */
+	if (ql_read_xgmac_reg64(qdev, 0x5b8, &data)) {
+		QPRINTK(qdev, DRV, ERR,
+			"Error reading status register 0x%.04x.\n", i);
+		goto end;
+	} else
+		*iter = data;
 end:
 	ql_sem_unlock(qdev, qdev->xg_sem_mask);
 quit:
@@ -185,6 +220,23 @@ static char ql_stats_str_arr[][ETH_GSTRING_LEN] = {
 	{"rx_1024_to_1518_pkts"},
 	{"rx_1519_to_max_pkts"},
 	{"rx_len_err_pkts"},
+	{"tx_cbfc_pause_frames0"},
+	{"tx_cbfc_pause_frames1"},
+	{"tx_cbfc_pause_frames2"},
+	{"tx_cbfc_pause_frames3"},
+	{"tx_cbfc_pause_frames4"},
+	{"tx_cbfc_pause_frames5"},
+	{"tx_cbfc_pause_frames6"},
+	{"tx_cbfc_pause_frames7"},
+	{"rx_cbfc_pause_frames0"},
+	{"rx_cbfc_pause_frames1"},
+	{"rx_cbfc_pause_frames2"},
+	{"rx_cbfc_pause_frames3"},
+	{"rx_cbfc_pause_frames4"},
+	{"rx_cbfc_pause_frames5"},
+	{"rx_cbfc_pause_frames6"},
+	{"rx_cbfc_pause_frames7"},
+	{"rx_nic_fifo_drop"},
 };
 
 static void ql_get_strings(struct net_device *dev, u32 stringset, u8 *buf)
@@ -257,6 +309,23 @@ ql_get_ethtool_stats(struct net_device *ndev,
 	*data++ = s->rx_1024_to_1518_pkts;
 	*data++ = s->rx_1519_to_max_pkts;
 	*data++ = s->rx_len_err_pkts;
+	*data++ = s->tx_cbfc_pause_frames0;
+	*data++ = s->tx_cbfc_pause_frames1;
+	*data++ = s->tx_cbfc_pause_frames2;
+	*data++ = s->tx_cbfc_pause_frames3;
+	*data++ = s->tx_cbfc_pause_frames4;
+	*data++ = s->tx_cbfc_pause_frames5;
+	*data++ = s->tx_cbfc_pause_frames6;
+	*data++ = s->tx_cbfc_pause_frames7;
+	*data++ = s->rx_cbfc_pause_frames0;
+	*data++ = s->rx_cbfc_pause_frames1;
+	*data++ = s->rx_cbfc_pause_frames2;
+	*data++ = s->rx_cbfc_pause_frames3;
+	*data++ = s->rx_cbfc_pause_frames4;
+	*data++ = s->rx_cbfc_pause_frames5;
+	*data++ = s->rx_cbfc_pause_frames6;
+	*data++ = s->rx_cbfc_pause_frames7;
+	*data++ = s->rx_nic_fifo_drop;
 }
 
 static int ql_get_settings(struct net_device *ndev,
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [net-next PATCH 1/8] qlge: Remove explicit setting of PCI Dev CTL reg.
  2009-10-10 19:35 ` [net-next PATCH 1/8] qlge: Remove explicit setting of PCI Dev CTL reg Ron Mercer
@ 2009-10-12  6:10   ` David Miller
  0 siblings, 0 replies; 11+ messages in thread
From: David Miller @ 2009-10-12  6:10 UTC (permalink / raw)
  To: ron.mercer; +Cc: netdev, root

From: Ron Mercer <ron.mercer@qlogic.com>
Date: Sat, 10 Oct 2009 12:35:03 -0700

> From: root <root@localhost.localdomain>

Ron I'm fixing this up by hand as I go through these qlge patches, but
please fix your config to emit a correct From: line in your patches.

Thanks.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [net-next PATCH 0/8] qlge: Cleanup and additions for qlge.
  2009-10-10 19:35 [net-next PATCH 0/8] qlge: Cleanup and additions for qlge Ron Mercer
                   ` (7 preceding siblings ...)
  2009-10-10 19:35 ` [net-next PATCH 8/8] qlge: Add CBFC pause frame counters to ethtool stats Ron Mercer
@ 2009-10-12  6:26 ` David Miller
  8 siblings, 0 replies; 11+ messages in thread
From: David Miller @ 2009-10-12  6:26 UTC (permalink / raw)
  To: ron.mercer; +Cc: netdev

From: Ron Mercer <ron.mercer@qlogic.com>
Date: Sat, 10 Oct 2009 12:35:02 -0700

> 
> Cleanup and a couple of small performance tweeks for qlge.

All applied to net-next-2.6, thanks.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2009-10-12  6:26 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-10 19:35 [net-next PATCH 0/8] qlge: Cleanup and additions for qlge Ron Mercer
2009-10-10 19:35 ` [net-next PATCH 1/8] qlge: Remove explicit setting of PCI Dev CTL reg Ron Mercer
2009-10-12  6:10   ` David Miller
2009-10-10 19:35 ` [net-next PATCH 2/8] qlge: Set PCIE max read request size Ron Mercer
2009-10-10 19:35 ` [net-next PATCH 3/8] qlge: Add handler for DCBX firmware event Ron Mercer
2009-10-10 19:35 ` [net-next PATCH 4/8] qlge: Store firmware revision as early as possible Ron Mercer
2009-10-10 19:35 ` [net-next PATCH 5/8] qlge: Remove inline math for small rx buf mapping Ron Mercer
2009-10-10 19:35 ` [net-next PATCH 6/8] qlge: Get rid of firmware handler debug code Ron Mercer
2009-10-10 19:35 ` [net-next PATCH 7/8] qlge: Don't fail open when port is not initialized Ron Mercer
2009-10-10 19:35 ` [net-next PATCH 8/8] qlge: Add CBFC pause frame counters to ethtool stats Ron Mercer
2009-10-12  6:26 ` [net-next PATCH 0/8] qlge: Cleanup and additions for qlge David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).