All of lore.kernel.org
 help / color / mirror / Atom feed
* [net-next-2.6 PATCH 0/4] enic: updates to version 2.1.1.20
@ 2011-06-09 20:36 Vasanthy Kolluri
  2011-06-09 20:36 ` [net-next-2.6 PATCH 1/4] enic: Pass 802.1p bits for packets tagged with vlan zero Vasanthy Kolluri
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Vasanthy Kolluri @ 2011-06-09 20:36 UTC (permalink / raw)
  To: netdev, davem

The following series implements enic driver updates:

1/4 - Pass 802.1p bits for packets tagged with vlan zero
2/4 - Change log message during driver load
3/4 - Get/Set interrupt resource index for transmit and receive queues
4/4 - Bug Fix: Fix hardware transmit queue indexing in enic_poll_controller

Signed-off-by: Christian Benvenuti <benve@cisco.com>
Signed-off-by: Danny Guo <dannguo@cisco.com>
Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com>
Signed-off-by: Roopa Prabhu <roprabhu@cisco.com>
Signed-off-by: David Wang <dwang2@cisco.com>

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

* [net-next-2.6 PATCH 1/4] enic: Pass 802.1p bits for packets tagged with vlan zero
  2011-06-09 20:36 [net-next-2.6 PATCH 0/4] enic: updates to version 2.1.1.20 Vasanthy Kolluri
@ 2011-06-09 20:36 ` Vasanthy Kolluri
  2011-06-09 20:36 ` [net-next-2.6 PATCH 2/4] enic: Log device configuration in detail during driver load Vasanthy Kolluri
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Vasanthy Kolluri @ 2011-06-09 20:36 UTC (permalink / raw)
  To: netdev, davem

From: Vasanthy Kolluri <vkolluri@cisco.com>

enic driver currently passes 802.1p bits to the upper layers for packets
tagged with non-zero vlan ids only. This patch extends such behaviour to
zero vlan tagged packets also.

The patch is dependant on the following kernel patches:

1) vlan_dev: VLAN 0 should be treated as "no vlan tag" (802.1p packet)
   - net-next-2.6 git commit: ad1afb00393915a51c21b1ae8704562bf036855f
   - Available 2.6.36 and later
2) vlan: Centralize handling of hardware acceleration.
  - net-next-2.6 git commit: 3701e51382a026cba10c60b03efabe534fba4ca4
  - Available 2.6.37 and later

Signed-off-by: Christian Benvenuti <benve@cisco.com>
Signed-off-by: Danny Guo <dannguo@cisco.com>
Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com>
Signed-off-by: Roopa Prabhu <roprabhu@cisco.com>
Signed-off-by: David Wang <dwang2@cisco.com>
---
 drivers/net/enic/enic_main.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)


diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index 9600f43..e990988 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -1266,8 +1266,7 @@ static void enic_rq_indicate_buf(struct vnic_rq *rq,
 
 		skb->dev = netdev;
 
-		if (enic->vlan_group && vlan_stripped &&
-			(vlan_tci & CQ_ENET_RQ_DESC_VLAN_TCI_VLAN_MASK)) {
+		if (vlan_stripped) {
 
 			if (netdev->features & NETIF_F_GRO)
 				vlan_gro_receive(&enic->napi[q_number],


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

* [net-next-2.6 PATCH 2/4] enic: Log device configuration in detail during driver load
  2011-06-09 20:36 [net-next-2.6 PATCH 0/4] enic: updates to version 2.1.1.20 Vasanthy Kolluri
  2011-06-09 20:36 ` [net-next-2.6 PATCH 1/4] enic: Pass 802.1p bits for packets tagged with vlan zero Vasanthy Kolluri
@ 2011-06-09 20:36 ` Vasanthy Kolluri
  2011-06-09 20:37 ` [net-next-2.6 PATCH 3/4] enic: Get/Set interrupt resource index for transmit and receive queues Vasanthy Kolluri
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Vasanthy Kolluri @ 2011-06-09 20:36 UTC (permalink / raw)
  To: netdev, davem

From: Vasanthy Kolluri <vkolluri@cisco.com>



Signed-off-by: Christian Benvenuti <benve@cisco.com>
Signed-off-by: Danny Guo <dannguo@cisco.com>
Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com>
Signed-off-by: Roopa Prabhu <roprabhu@cisco.com>
Signed-off-by: David Wang <dwang2@cisco.com>
---
 drivers/net/enic/enic.h      |    2 +-
 drivers/net/enic/enic_res.c  |   23 ++++++++++++++++++-----
 drivers/net/enic/vnic_enet.h |    7 +++++++
 3 files changed, 26 insertions(+), 6 deletions(-)


diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h
index e0d2ad1..23e2103 100644
--- a/drivers/net/enic/enic.h
+++ b/drivers/net/enic/enic.h
@@ -32,7 +32,7 @@
 
 #define DRV_NAME		"enic"
 #define DRV_DESCRIPTION		"Cisco VIC Ethernet NIC Driver"
-#define DRV_VERSION		"2.1.1.16"
+#define DRV_VERSION		"2.1.1.17"
 #define DRV_COPYRIGHT		"Copyright 2008-2011 Cisco Systems, Inc"
 
 #define ENIC_BARS_MAX		6
diff --git a/drivers/net/enic/enic_res.c b/drivers/net/enic/enic_res.c
index 6e5c635..34f4207 100644
--- a/drivers/net/enic/enic_res.c
+++ b/drivers/net/enic/enic_res.c
@@ -97,11 +97,24 @@ int enic_get_vnic_config(struct enic *enic)
 	dev_info(enic_get_dev(enic),
 		"vNIC MAC addr %pM wq/rq %d/%d mtu %d\n",
 		enic->mac_addr, c->wq_desc_count, c->rq_desc_count, c->mtu);
-	dev_info(enic_get_dev(enic), "vNIC csum tx/rx %d/%d "
-		"tso %d intr timer %d usec rss %d\n",
-		ENIC_SETTING(enic, TXCSUM), ENIC_SETTING(enic, RXCSUM),
-		ENIC_SETTING(enic, TSO),
-		c->intr_timer_usec, ENIC_SETTING(enic, RSS));
+
+	dev_info(enic_get_dev(enic), "vNIC csum tx/rx %s/%s "
+		"tso/lro %s/%s rss %s intr mode %s type %s timer %d usec "
+		"loopback tag 0x%04x\n",
+		ENIC_SETTING(enic, TXCSUM) ? "yes" : "no",
+		ENIC_SETTING(enic, RXCSUM) ? "yes" : "no",
+		ENIC_SETTING(enic, TSO) ? "yes" : "no",
+		ENIC_SETTING(enic, LRO) ? "yes" : "no",
+		ENIC_SETTING(enic, RSS) ? "yes" : "no",
+		c->intr_mode == VENET_INTR_MODE_INTX ? "INTx" :
+		c->intr_mode == VENET_INTR_MODE_MSI ? "MSI" :
+		c->intr_mode == VENET_INTR_MODE_ANY ? "any" :
+		"unknown",
+		c->intr_timer_type == VENET_INTR_TYPE_MIN ? "min" :
+		c->intr_timer_type == VENET_INTR_TYPE_IDLE ? "idle" :
+		"unknown",
+		c->intr_timer_usec,
+		c->loop_tag);
 
 	return 0;
 }
diff --git a/drivers/net/enic/vnic_enet.h b/drivers/net/enic/vnic_enet.h
index e8740e3..061ad87 100644
--- a/drivers/net/enic/vnic_enet.h
+++ b/drivers/net/enic/vnic_enet.h
@@ -51,4 +51,11 @@ struct vnic_enet_config {
 #define VENETF_RSSHASH_TCPIPV6_EX 0x400	/* Hash on TCP + IPv6 ext. fields */
 #define VENETF_LOOP		0x800	/* Loopback enabled */
 
+#define VENET_INTR_TYPE_MIN	0	/* Timer specs min interrupt spacing */
+#define VENET_INTR_TYPE_IDLE	1	/* Timer specs idle time before irq */
+
+#define VENET_INTR_MODE_ANY	0	/* Try MSI-X, then MSI, then INTx */
+#define VENET_INTR_MODE_MSI	1	/* Try MSI then INTx */
+#define VENET_INTR_MODE_INTX	2	/* Try INTx only */
+
 #endif /* _VNIC_ENIC_H_ */


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

* [net-next-2.6 PATCH 3/4] enic: Get/Set interrupt resource index for transmit and receive queues
  2011-06-09 20:36 [net-next-2.6 PATCH 0/4] enic: updates to version 2.1.1.20 Vasanthy Kolluri
  2011-06-09 20:36 ` [net-next-2.6 PATCH 1/4] enic: Pass 802.1p bits for packets tagged with vlan zero Vasanthy Kolluri
  2011-06-09 20:36 ` [net-next-2.6 PATCH 2/4] enic: Log device configuration in detail during driver load Vasanthy Kolluri
@ 2011-06-09 20:37 ` Vasanthy Kolluri
  2011-06-09 20:37 ` [net-next-2.6 PATCH 4/4] enic: Bug Fix: Fix hardware transmit queue indexing in enic_poll_controller Vasanthy Kolluri
  2011-06-09 21:58 ` [net-next-2.6 PATCH 0/4] enic: updates to version 2.1.1.20 David Miller
  4 siblings, 0 replies; 6+ messages in thread
From: Vasanthy Kolluri @ 2011-06-09 20:37 UTC (permalink / raw)
  To: netdev, davem

From: Vasanthy Kolluri <vkolluri@cisco.com>

Instead of deriving the index of a transmit/receive interrupt resource
from the transmit/receive queue index, always save and retrieve it
using an additional variable.

Signed-off-by: Christian Benvenuti <benve@cisco.com>
Signed-off-by: Danny Guo <dannguo@cisco.com>
Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com>
Signed-off-by: Roopa Prabhu <roprabhu@cisco.com>
Signed-off-by: David Wang <dwang2@cisco.com>
---
 drivers/net/enic/enic.h      |    2 +-
 drivers/net/enic/enic_main.c |    4 ++--
 drivers/net/enic/vnic_cq.c   |    2 ++
 drivers/net/enic/vnic_cq.h   |    1 +
 4 files changed, 6 insertions(+), 3 deletions(-)


diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h
index 23e2103..2dcf310 100644
--- a/drivers/net/enic/enic.h
+++ b/drivers/net/enic/enic.h
@@ -32,7 +32,7 @@
 
 #define DRV_NAME		"enic"
 #define DRV_DESCRIPTION		"Cisco VIC Ethernet NIC Driver"
-#define DRV_VERSION		"2.1.1.17"
+#define DRV_VERSION		"2.1.1.19"
 #define DRV_COPYRIGHT		"Copyright 2008-2011 Cisco Systems, Inc"
 
 #define ENIC_BARS_MAX		6
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index e990988..eee2526 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -153,12 +153,12 @@ static inline unsigned int enic_legacy_notify_intr(void)
 
 static inline unsigned int enic_msix_rq_intr(struct enic *enic, unsigned int rq)
 {
-	return rq;
+	return enic->cq[enic_cq_rq(enic, rq)].interrupt_offset;
 }
 
 static inline unsigned int enic_msix_wq_intr(struct enic *enic, unsigned int wq)
 {
-	return enic->rq_count + wq;
+	return enic->cq[enic_cq_wq(enic, wq)].interrupt_offset;
 }
 
 static inline unsigned int enic_msix_err_intr(struct enic *enic)
diff --git a/drivers/net/enic/vnic_cq.c b/drivers/net/enic/vnic_cq.c
index b86d6ef..0daa1c7 100644
--- a/drivers/net/enic/vnic_cq.c
+++ b/drivers/net/enic/vnic_cq.c
@@ -74,6 +74,8 @@ void vnic_cq_init(struct vnic_cq *cq, unsigned int flow_control_enable,
 	iowrite32(cq_message_enable, &cq->ctrl->cq_message_enable);
 	iowrite32(interrupt_offset, &cq->ctrl->interrupt_offset);
 	writeq(cq_message_addr, &cq->ctrl->cq_message_addr);
+
+	cq->interrupt_offset = interrupt_offset;
 }
 
 void vnic_cq_clean(struct vnic_cq *cq)
diff --git a/drivers/net/enic/vnic_cq.h b/drivers/net/enic/vnic_cq.h
index 552d3da..579315c 100644
--- a/drivers/net/enic/vnic_cq.h
+++ b/drivers/net/enic/vnic_cq.h
@@ -57,6 +57,7 @@ struct vnic_cq {
 	struct vnic_dev_ring ring;
 	unsigned int to_clean;
 	unsigned int last_color;
+	unsigned int interrupt_offset;
 };
 
 static inline unsigned int vnic_cq_service(struct vnic_cq *cq,


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

* [net-next-2.6 PATCH 4/4] enic: Bug Fix: Fix hardware transmit queue indexing in enic_poll_controller
  2011-06-09 20:36 [net-next-2.6 PATCH 0/4] enic: updates to version 2.1.1.20 Vasanthy Kolluri
                   ` (2 preceding siblings ...)
  2011-06-09 20:37 ` [net-next-2.6 PATCH 3/4] enic: Get/Set interrupt resource index for transmit and receive queues Vasanthy Kolluri
@ 2011-06-09 20:37 ` Vasanthy Kolluri
  2011-06-09 21:58 ` [net-next-2.6 PATCH 0/4] enic: updates to version 2.1.1.20 David Miller
  4 siblings, 0 replies; 6+ messages in thread
From: Vasanthy Kolluri @ 2011-06-09 20:37 UTC (permalink / raw)
  To: netdev, davem

From: Vasanthy Kolluri <vkolluri@cisco.com>



Signed-off-by: Christian Benvenuti <benve@cisco.com>
Signed-off-by: Danny Guo <dannguo@cisco.com>
Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com>
Signed-off-by: Roopa Prabhu <roprabhu@cisco.com>
Signed-off-by: David Wang <dwang2@cisco.com>
---
 drivers/net/enic/enic.h      |    2 +-
 drivers/net/enic/enic_main.c |    8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)


diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h
index 2dcf310..f747bce 100644
--- a/drivers/net/enic/enic.h
+++ b/drivers/net/enic/enic.h
@@ -32,7 +32,7 @@
 
 #define DRV_NAME		"enic"
 #define DRV_DESCRIPTION		"Cisco VIC Ethernet NIC Driver"
-#define DRV_VERSION		"2.1.1.19"
+#define DRV_VERSION		"2.1.1.20"
 #define DRV_COPYRIGHT		"Copyright 2008-2011 Cisco Systems, Inc"
 
 #define ENIC_BARS_MAX		6
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index eee2526..4c5546d 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -1777,8 +1777,12 @@ static void enic_poll_controller(struct net_device *netdev)
 			enic_isr_msix_rq(enic->msix_entry[intr].vector,
 				&enic->napi[i]);
 		}
-		intr = enic_msix_wq_intr(enic, i);
-		enic_isr_msix_wq(enic->msix_entry[intr].vector, enic);
+
+		for (i = 0; i < enic->wq_count; i++) {
+			intr = enic_msix_wq_intr(enic, i);
+			enic_isr_msix_wq(enic->msix_entry[intr].vector, enic);
+		}
+
 		break;
 	case VNIC_DEV_INTR_MODE_MSI:
 		enic_isr_msi(enic->pdev->irq, enic);


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

* Re: [net-next-2.6 PATCH 0/4] enic: updates to version 2.1.1.20
  2011-06-09 20:36 [net-next-2.6 PATCH 0/4] enic: updates to version 2.1.1.20 Vasanthy Kolluri
                   ` (3 preceding siblings ...)
  2011-06-09 20:37 ` [net-next-2.6 PATCH 4/4] enic: Bug Fix: Fix hardware transmit queue indexing in enic_poll_controller Vasanthy Kolluri
@ 2011-06-09 21:58 ` David Miller
  4 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2011-06-09 21:58 UTC (permalink / raw)
  To: vkolluri; +Cc: netdev

From: Vasanthy Kolluri <vkolluri@cisco.com>
Date: Thu, 09 Jun 2011 13:36:46 -0700

> The following series implements enic driver updates:
> 
> 1/4 - Pass 802.1p bits for packets tagged with vlan zero
> 2/4 - Change log message during driver load
> 3/4 - Get/Set interrupt resource index for transmit and receive queues
> 4/4 - Bug Fix: Fix hardware transmit queue indexing in enic_poll_controller
> 
> Signed-off-by: Christian Benvenuti <benve@cisco.com>
> Signed-off-by: Danny Guo <dannguo@cisco.com>
> Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com>
> Signed-off-by: Roopa Prabhu <roprabhu@cisco.com>
> Signed-off-by: David Wang <dwang2@cisco.com>

All applied, thank you.

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

end of thread, other threads:[~2011-06-09 21:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-09 20:36 [net-next-2.6 PATCH 0/4] enic: updates to version 2.1.1.20 Vasanthy Kolluri
2011-06-09 20:36 ` [net-next-2.6 PATCH 1/4] enic: Pass 802.1p bits for packets tagged with vlan zero Vasanthy Kolluri
2011-06-09 20:36 ` [net-next-2.6 PATCH 2/4] enic: Log device configuration in detail during driver load Vasanthy Kolluri
2011-06-09 20:37 ` [net-next-2.6 PATCH 3/4] enic: Get/Set interrupt resource index for transmit and receive queues Vasanthy Kolluri
2011-06-09 20:37 ` [net-next-2.6 PATCH 4/4] enic: Bug Fix: Fix hardware transmit queue indexing in enic_poll_controller Vasanthy Kolluri
2011-06-09 21:58 ` [net-next-2.6 PATCH 0/4] enic: updates to version 2.1.1.20 David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.