netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2012-10-23  4:26 Jeff Kirsher
  2012-10-23  4:26 ` [net-next 01/12] ixgbe: Add support for IPv6 and UDP to ixgbe_get_headlen Jeff Kirsher
                   ` (12 more replies)
  0 siblings, 13 replies; 39+ messages in thread
From: Jeff Kirsher @ 2012-10-23  4:26 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

This series contains updates to ixgbe only.  Only change to this series
is I dropped the "ixgbe: Add support for pipeline reset" due to
change requested by Martin Josefsson.

The following are changes since commit d94ce9b283736a876b2e6dec665c68e5e8b5d55e:
  ipv4: 16 slots in initial fib_info hash table
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Alexander Duyck (7):
  ixgbe: Add support for IPv6 and UDP to ixgbe_get_headlen
  ixgbe: Add support for tracking the default user priority to SR-IOV
  ixgbe: Add support for GET_QUEUES message to get DCB configuration
  ixgbe: Enable support for VF API version 1.1 in the PF.
  ixgbevf: Add VF DCB + SR-IOV support
  ixgbe: Drop unnecessary addition from ixgbe_set_rx_buffer_len
  ixgbe: Fix possible memory leak in ixgbe_set_ringparam

Don Skidmore (1):
  ixgbe: Add function ixgbe_reset_pipeline_82599

Emil Tantilov (1):
  ixgbe: add WOL support for new subdevice id

Jacob Keller (1):
  ixgbe: (PTP) refactor init, cyclecounter and reset

Tushar Dave (1):
  ixgbe: Correcting small packet padding

Wei Yongjun (1):
  ixgbe: using is_zero_ether_addr() to simplify the code

 drivers/net/ethernet/intel/ixgbe/ixgbe.h          |   6 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c    |  44 ++++++
 drivers/net/ethernet/intel/ixgbe/ixgbe_common.c   |   3 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_common.h   |   1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c  | 102 +++++++-------
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c     |  66 +++++++--
 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h      |  10 ++
 drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c      | 109 +++++++--------
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c    | 124 +++++++++++++----
 drivers/net/ethernet/intel/ixgbe/ixgbe_type.h     |   1 +
 drivers/net/ethernet/intel/ixgbevf/defines.h      |   7 +-
 drivers/net/ethernet/intel/ixgbevf/ixgbevf.h      |   4 +-
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 159 +++++++++++++++++++++-
 drivers/net/ethernet/intel/ixgbevf/mbx.h          |  10 ++
 drivers/net/ethernet/intel/ixgbevf/vf.c           |  58 ++++++++
 drivers/net/ethernet/intel/ixgbevf/vf.h           |   2 +
 16 files changed, 539 insertions(+), 167 deletions(-)

-- 
1.7.11.7

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

* [net-next 01/12] ixgbe: Add support for IPv6 and UDP to ixgbe_get_headlen
  2012-10-23  4:26 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
@ 2012-10-23  4:26 ` Jeff Kirsher
  2012-10-23  4:26 ` [net-next 02/12] ixgbe: Add support for tracking the default user priority to SR-IOV Jeff Kirsher
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 39+ messages in thread
From: Jeff Kirsher @ 2012-10-23  4:26 UTC (permalink / raw)
  To: davem; +Cc: Alexander Duyck, netdev, gospo, sassmann, Jeff Kirsher

From: Alexander Duyck <alexander.h.duyck@intel.com>

This change adds support for IPv6 and UDP to ixgbe_get_headlen. The
advantage to this is that we can now handle ipv4/UDP, ipv6/TCP, and
ipv6/UDP with a single memcpy instead of having to do them in multiple
pskb_may_pull calls.

A quick bit of testing shows that we increase throughput for a single
session of netperf from 8800Mpbs to about 9300Mpbs in the case of ipv6/TCP.
As such overall ipv6 performance should improve with this change.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Stephen Ko  <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index e2a6691..3ef74f8 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -1244,6 +1244,7 @@ static unsigned int ixgbe_get_headlen(unsigned char *data,
 		struct vlan_hdr *vlan;
 		/* l3 headers */
 		struct iphdr *ipv4;
+		struct ipv6hdr *ipv6;
 	} hdr;
 	__be16 protocol;
 	u8 nexthdr = 0;	/* default to not TCP */
@@ -1284,6 +1285,13 @@ static unsigned int ixgbe_get_headlen(unsigned char *data,
 		/* record next protocol */
 		nexthdr = hdr.ipv4->protocol;
 		hdr.network += hlen;
+	} else if (protocol == __constant_htons(ETH_P_IPV6)) {
+		if ((hdr.network - data) > (max_len - sizeof(struct ipv6hdr)))
+			return max_len;
+
+		/* record next protocol */
+		nexthdr = hdr.ipv6->nexthdr;
+		hdr.network += sizeof(struct ipv6hdr);
 #ifdef IXGBE_FCOE
 	} else if (protocol == __constant_htons(ETH_P_FCOE)) {
 		if ((hdr.network - data) > (max_len - FCOE_HEADER_LEN))
@@ -1294,7 +1302,7 @@ static unsigned int ixgbe_get_headlen(unsigned char *data,
 		return hdr.network - data;
 	}
 
-	/* finally sort out TCP */
+	/* finally sort out TCP/UDP */
 	if (nexthdr == IPPROTO_TCP) {
 		if ((hdr.network - data) > (max_len - sizeof(struct tcphdr)))
 			return max_len;
@@ -1307,6 +1315,11 @@ static unsigned int ixgbe_get_headlen(unsigned char *data,
 			return hdr.network - data;
 
 		hdr.network += hlen;
+	} else if (nexthdr == IPPROTO_UDP) {
+		if ((hdr.network - data) > (max_len - sizeof(struct udphdr)))
+			return max_len;
+
+		hdr.network += sizeof(struct udphdr);
 	}
 
 	/*
-- 
1.7.11.7

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

* [net-next 02/12] ixgbe: Add support for tracking the default user priority to SR-IOV
  2012-10-23  4:26 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
  2012-10-23  4:26 ` [net-next 01/12] ixgbe: Add support for IPv6 and UDP to ixgbe_get_headlen Jeff Kirsher
@ 2012-10-23  4:26 ` Jeff Kirsher
  2012-10-23  4:26 ` [net-next 03/12] ixgbe: Add support for GET_QUEUES message to get DCB configuration Jeff Kirsher
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 39+ messages in thread
From: Jeff Kirsher @ 2012-10-23  4:26 UTC (permalink / raw)
  To: davem; +Cc: Alexander Duyck, netdev, gospo, sassmann, Jeff Kirsher

From: Alexander Duyck <alexander.h.duyck@intel.com>

It is necessary to track the default user priority in the PF so that we can
force it upon the VFs.  The motivation behind this is to keep the VFs from
getting access to user priorities meant for things like storage.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe.h       |  2 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c  | 20 ++++++++++
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 53 ++++++++++++++++----------
 3 files changed, 55 insertions(+), 20 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
index ccb8505..101e525 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
@@ -601,6 +601,8 @@ struct ixgbe_adapter {
 #ifdef CONFIG_DEBUG_FS
 	struct dentry *ixgbe_dbg_adapter;
 #endif /*CONFIG_DEBUG_FS*/
+
+	u8 default_up;
 };
 
 struct ixgbe_fdir_filter {
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 3ef74f8..35be7d3 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -5460,6 +5460,23 @@ static void ixgbe_watchdog_update_link(struct ixgbe_adapter *adapter)
 	adapter->link_speed = link_speed;
 }
 
+static void ixgbe_update_default_up(struct ixgbe_adapter *adapter)
+{
+#ifdef CONFIG_IXGBE_DCB
+	struct net_device *netdev = adapter->netdev;
+	struct dcb_app app = {
+			      .selector = IEEE_8021QAZ_APP_SEL_ETHERTYPE,
+			      .protocol = 0,
+			     };
+	u8 up = 0;
+
+	if (adapter->dcbx_cap & DCB_CAP_DCBX_VER_IEEE)
+		up = dcb_ieee_getapp_mask(netdev, &app);
+
+	adapter->default_up = (up > 1) ? (ffs(up) - 1) : 0;
+#endif
+}
+
 /**
  * ixgbe_watchdog_link_is_up - update netif_carrier status and
  *                             print link up message
@@ -5519,6 +5536,9 @@ static void ixgbe_watchdog_link_is_up(struct ixgbe_adapter *adapter)
 	netif_carrier_on(netdev);
 	ixgbe_check_vf_rate_limit(adapter);
 
+	/* update the default user priority for VFs */
+	ixgbe_update_default_up(adapter);
+
 	/* ping all the active vfs to let them know link has changed */
 	ixgbe_ping_all_vfs(adapter);
 }
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index f563625..b330a1c 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -431,35 +431,47 @@ static void ixgbe_set_vmolr(struct ixgbe_hw *hw, u32 vf, bool aupe)
 	IXGBE_WRITE_REG(hw, IXGBE_VMOLR(vf), vmolr);
 }
 
-static void ixgbe_set_vmvir(struct ixgbe_adapter *adapter, u32 vid, u32 vf)
+static void ixgbe_set_vmvir(struct ixgbe_adapter *adapter,
+			    u16 vid, u16 qos, u32 vf)
 {
 	struct ixgbe_hw *hw = &adapter->hw;
+	u32 vmvir = vid | (qos << VLAN_PRIO_SHIFT) | IXGBE_VMVIR_VLANA_DEFAULT;
 
-	if (vid)
-		IXGBE_WRITE_REG(hw, IXGBE_VMVIR(vf),
-				(vid | IXGBE_VMVIR_VLANA_DEFAULT));
-	else
-		IXGBE_WRITE_REG(hw, IXGBE_VMVIR(vf), 0);
+	IXGBE_WRITE_REG(hw, IXGBE_VMVIR(vf), vmvir);
 }
 
+static void ixgbe_clear_vmvir(struct ixgbe_adapter *adapter, u32 vf)
+{
+	struct ixgbe_hw *hw = &adapter->hw;
+
+	IXGBE_WRITE_REG(hw, IXGBE_VMVIR(vf), 0);
+}
 static inline void ixgbe_vf_reset_event(struct ixgbe_adapter *adapter, u32 vf)
 {
 	struct ixgbe_hw *hw = &adapter->hw;
+	struct vf_data_storage *vfinfo = &adapter->vfinfo[vf];
 	int rar_entry = hw->mac.num_rar_entries - (vf + 1);
+	u8 num_tcs = netdev_get_num_tc(adapter->netdev);
+
+	/* add PF assigned VLAN or VLAN 0 */
+	ixgbe_set_vf_vlan(adapter, true, vfinfo->pf_vlan, vf);
 
 	/* reset offloads to defaults */
-	if (adapter->vfinfo[vf].pf_vlan) {
-		ixgbe_set_vf_vlan(adapter, true,
-				  adapter->vfinfo[vf].pf_vlan, vf);
-		ixgbe_set_vmvir(adapter,
-				(adapter->vfinfo[vf].pf_vlan |
-				 (adapter->vfinfo[vf].pf_qos <<
-				  VLAN_PRIO_SHIFT)), vf);
-		ixgbe_set_vmolr(hw, vf, false);
+	ixgbe_set_vmolr(hw, vf, !vfinfo->pf_vlan);
+
+	/* set outgoing tags for VFs */
+	if (!vfinfo->pf_vlan && !vfinfo->pf_qos && !num_tcs) {
+		ixgbe_clear_vmvir(adapter, vf);
 	} else {
-		ixgbe_set_vf_vlan(adapter, true, 0, vf);
-		ixgbe_set_vmvir(adapter, 0, vf);
-		ixgbe_set_vmolr(hw, vf, true);
+		if (vfinfo->pf_qos || !num_tcs)
+			ixgbe_set_vmvir(adapter, vfinfo->pf_vlan,
+					vfinfo->pf_qos, vf);
+		else
+			ixgbe_set_vmvir(adapter, vfinfo->pf_vlan,
+					adapter->default_up, vf);
+
+		if (vfinfo->spoofchk_enabled)
+			hw->mac.ops.set_vlan_anti_spoofing(hw, true, vf);
 	}
 
 	/* reset multicast table array for vf */
@@ -661,8 +673,9 @@ static int ixgbe_set_vf_vlan_msg(struct ixgbe_adapter *adapter,
 	int add = (msgbuf[0] & IXGBE_VT_MSGINFO_MASK) >> IXGBE_VT_MSGINFO_SHIFT;
 	int vid = (msgbuf[1] & IXGBE_VLVF_VLANID_MASK);
 	int err;
+	u8 tcs = netdev_get_num_tc(adapter->netdev);
 
-	if (adapter->vfinfo[vf].pf_vlan) {
+	if (adapter->vfinfo[vf].pf_vlan || tcs) {
 		e_warn(drv,
 		       "VF %d attempted to override administratively set VLAN configuration\n"
 		       "Reload the VF driver to resume operations\n",
@@ -896,7 +909,7 @@ int ixgbe_ndo_set_vf_vlan(struct net_device *netdev, int vf, u16 vlan, u8 qos)
 		err = ixgbe_set_vf_vlan(adapter, true, vlan, vf);
 		if (err)
 			goto out;
-		ixgbe_set_vmvir(adapter, vlan | (qos << VLAN_PRIO_SHIFT), vf);
+		ixgbe_set_vmvir(adapter, vlan, qos, vf);
 		ixgbe_set_vmolr(hw, vf, false);
 		if (adapter->vfinfo[vf].spoofchk_enabled)
 			hw->mac.ops.set_vlan_anti_spoofing(hw, true, vf);
@@ -916,7 +929,7 @@ int ixgbe_ndo_set_vf_vlan(struct net_device *netdev, int vf, u16 vlan, u8 qos)
 	} else {
 		err = ixgbe_set_vf_vlan(adapter, false,
 					adapter->vfinfo[vf].pf_vlan, vf);
-		ixgbe_set_vmvir(adapter, vlan, vf);
+		ixgbe_clear_vmvir(adapter, vf);
 		ixgbe_set_vmolr(hw, vf, true);
 		hw->mac.ops.set_vlan_anti_spoofing(hw, false, vf);
 		if (adapter->vfinfo[vf].vlan_count)
-- 
1.7.11.7

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

* [net-next 03/12] ixgbe: Add support for GET_QUEUES message to get DCB configuration
  2012-10-23  4:26 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
  2012-10-23  4:26 ` [net-next 01/12] ixgbe: Add support for IPv6 and UDP to ixgbe_get_headlen Jeff Kirsher
  2012-10-23  4:26 ` [net-next 02/12] ixgbe: Add support for tracking the default user priority to SR-IOV Jeff Kirsher
@ 2012-10-23  4:26 ` Jeff Kirsher
  2012-10-23  4:26 ` [net-next 04/12] ixgbe: Enable support for VF API version 1.1 in the PF Jeff Kirsher
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 39+ messages in thread
From: Jeff Kirsher @ 2012-10-23  4:26 UTC (permalink / raw)
  To: davem; +Cc: Alexander Duyck, netdev, gospo, sassmann, Jeff Kirsher

From: Alexander Duyck <alexander.h.duyck@intel.com>

This patch addresses several issues in regards to the combination of DCB
and SR-IOV. Specifically it allows us to send information to the VF on
which queues it should be using.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h   | 10 ++++++
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 42 ++++++++++++++++++++++++++
 2 files changed, 52 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
index d4c842e..42dd65e 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
@@ -71,6 +71,7 @@
 enum ixgbe_pfvf_api_rev {
 	ixgbe_mbox_api_10,	/* API version 1.0, linux/freebsd VF driver */
 	ixgbe_mbox_api_20,	/* API version 2.0, solaris Phase1 VF driver */
+	ixgbe_mbox_api_11,	/* API version 1.1, linux/freebsd VF driver */
 	/* This value should always be last */
 	ixgbe_mbox_api_unknown,	/* indicates that API version is not known */
 };
@@ -86,6 +87,15 @@ enum ixgbe_pfvf_api_rev {
 #define IXGBE_VF_SET_MACVLAN	0x06 /* VF requests PF for unicast filter */
 #define IXGBE_VF_API_NEGOTIATE	0x08 /* negotiate API version */
 
+/* mailbox API, version 1.1 VF requests */
+#define IXGBE_VF_GET_QUEUES	0x09 /* get queue configuration */
+
+/* GET_QUEUES return data indices within the mailbox */
+#define IXGBE_VF_TX_QUEUES	1	/* number of Tx queues supported */
+#define IXGBE_VF_RX_QUEUES	2	/* number of Rx queues supported */
+#define IXGBE_VF_TRANS_VLAN	3	/* Indication of port vlan */
+#define IXGBE_VF_DEF_QUEUE	4	/* Default queue offset */
+
 /* length of permanent address message returned from PF */
 #define IXGBE_VF_PERMADDR_MSG_LEN 4
 /* word in permanent address message with the current multicast type */
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index b330a1c..8bf467b 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -751,6 +751,45 @@ static int ixgbe_negotiate_vf_api(struct ixgbe_adapter *adapter,
 	return -1;
 }
 
+static int ixgbe_get_vf_queues(struct ixgbe_adapter *adapter,
+			       u32 *msgbuf, u32 vf)
+{
+	struct net_device *dev = adapter->netdev;
+	struct ixgbe_ring_feature *vmdq = &adapter->ring_feature[RING_F_VMDQ];
+	unsigned int default_tc = 0;
+	u8 num_tcs = netdev_get_num_tc(dev);
+
+	/* verify the PF is supporting the correct APIs */
+	switch (adapter->vfinfo[vf].vf_api) {
+	case ixgbe_mbox_api_20:
+	case ixgbe_mbox_api_11:
+		break;
+	default:
+		return -1;
+	}
+
+	/* only allow 1 Tx queue for bandwidth limiting */
+	msgbuf[IXGBE_VF_TX_QUEUES] = __ALIGN_MASK(1, ~vmdq->mask);
+	msgbuf[IXGBE_VF_RX_QUEUES] = __ALIGN_MASK(1, ~vmdq->mask);
+
+	/* if TCs > 1 determine which TC belongs to default user priority */
+	if (num_tcs > 1)
+		default_tc = netdev_get_prio_tc_map(dev, adapter->default_up);
+
+	/* notify VF of need for VLAN tag stripping, and correct queue */
+	if (num_tcs)
+		msgbuf[IXGBE_VF_TRANS_VLAN] = num_tcs;
+	else if (adapter->vfinfo[vf].pf_vlan || adapter->vfinfo[vf].pf_qos)
+		msgbuf[IXGBE_VF_TRANS_VLAN] = 1;
+	else
+		msgbuf[IXGBE_VF_TRANS_VLAN] = 0;
+
+	/* notify VF of default queue */
+	msgbuf[IXGBE_VF_DEF_QUEUE] = default_tc;
+
+	return 0;
+}
+
 static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
 {
 	u32 mbx_size = IXGBE_VFMAILBOX_SIZE;
@@ -804,6 +843,9 @@ static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
 	case IXGBE_VF_API_NEGOTIATE:
 		retval = ixgbe_negotiate_vf_api(adapter, msgbuf, vf);
 		break;
+	case IXGBE_VF_GET_QUEUES:
+		retval = ixgbe_get_vf_queues(adapter, msgbuf, vf);
+		break;
 	default:
 		e_err(drv, "Unhandled Msg %8.8x\n", msgbuf[0]);
 		retval = IXGBE_ERR_MBX;
-- 
1.7.11.7

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

* [net-next 04/12] ixgbe: Enable support for VF API version 1.1 in the PF.
  2012-10-23  4:26 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (2 preceding siblings ...)
  2012-10-23  4:26 ` [net-next 03/12] ixgbe: Add support for GET_QUEUES message to get DCB configuration Jeff Kirsher
@ 2012-10-23  4:26 ` Jeff Kirsher
  2012-10-23  4:26 ` [net-next 05/12] ixgbevf: Add VF DCB + SR-IOV support Jeff Kirsher
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 39+ messages in thread
From: Jeff Kirsher @ 2012-10-23  4:26 UTC (permalink / raw)
  To: davem; +Cc: Alexander Duyck, netdev, gospo, sassmann, Jeff Kirsher

From: Alexander Duyck <alexander.h.duyck@intel.com>

This change switches on the last few bits for us enabling version 1.1 VF
support in the PF.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Tested-by: Robert Garrett <RobertX.Garrett@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 29 +++++++++++++++++++-------
 1 file changed, 21 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index 8bf467b..96876b7 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -371,14 +371,26 @@ static s32 ixgbe_set_vf_lpe(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf)
 					     IXGBE_FCOE_JUMBO_FRAME_SIZE);
 
 #endif /* CONFIG_FCOE */
-		/*
-		 * If the PF or VF are running w/ jumbo frames enabled we
-		 * need to shut down the VF Rx path as we cannot support
-		 * jumbo frames on legacy VFs
-		 */
-		if ((pf_max_frame > ETH_FRAME_LEN) ||
-		    (max_frame > (ETH_FRAME_LEN + ETH_FCS_LEN)))
-			err = -EINVAL;
+		switch (adapter->vfinfo[vf].vf_api) {
+		case ixgbe_mbox_api_11:
+			/*
+			 * Version 1.1 supports jumbo frames on VFs if PF has
+			 * jumbo frames enabled which means legacy VFs are
+			 * disabled
+			 */
+			if (pf_max_frame > ETH_FRAME_LEN)
+				break;
+		default:
+			/*
+			 * If the PF or VF are running w/ jumbo frames enabled
+			 * we need to shut down the VF Rx path as we cannot
+			 * support jumbo frames on legacy VFs
+			 */
+			if ((pf_max_frame > ETH_FRAME_LEN) ||
+			    (max_frame > (ETH_FRAME_LEN + ETH_FCS_LEN)))
+				err = -EINVAL;
+			break;
+		}
 
 		/* determine VF receive enable location */
 		vf_shift = vf % 32;
@@ -740,6 +752,7 @@ static int ixgbe_negotiate_vf_api(struct ixgbe_adapter *adapter,
 
 	switch (api) {
 	case ixgbe_mbox_api_10:
+	case ixgbe_mbox_api_11:
 		adapter->vfinfo[vf].vf_api = api;
 		return 0;
 	default:
-- 
1.7.11.7

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

* [net-next 05/12] ixgbevf: Add VF DCB + SR-IOV support
  2012-10-23  4:26 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (3 preceding siblings ...)
  2012-10-23  4:26 ` [net-next 04/12] ixgbe: Enable support for VF API version 1.1 in the PF Jeff Kirsher
@ 2012-10-23  4:26 ` Jeff Kirsher
  2012-10-23  4:26 ` [net-next 06/12] ixgbe: add WOL support for new subdevice id Jeff Kirsher
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 39+ messages in thread
From: Jeff Kirsher @ 2012-10-23  4:26 UTC (permalink / raw)
  To: davem; +Cc: Alexander Duyck, netdev, gospo, sassmann, Greg Rose, Jeff Kirsher

From: Alexander Duyck <alexander.h.duyck@intel.com>

This change adds support for DCB and SR-IOV from the VF.  With this change
in place the VF will correctly use a traffic class other than 0 in the case
that the PF is configured with the default user priority belonging to a
traffic class other than 0.

Cc: Greg Rose <gregory.v.rose@intel.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbevf/defines.h      |   7 +-
 drivers/net/ethernet/intel/ixgbevf/ixgbevf.h      |   4 +-
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 159 +++++++++++++++++++++-
 drivers/net/ethernet/intel/ixgbevf/mbx.h          |  10 ++
 drivers/net/ethernet/intel/ixgbevf/vf.c           |  58 ++++++++
 drivers/net/ethernet/intel/ixgbevf/vf.h           |   2 +
 6 files changed, 232 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbevf/defines.h b/drivers/net/ethernet/intel/ixgbevf/defines.h
index da17ccf..3147795 100644
--- a/drivers/net/ethernet/intel/ixgbevf/defines.h
+++ b/drivers/net/ethernet/intel/ixgbevf/defines.h
@@ -33,8 +33,11 @@
 #define IXGBE_DEV_ID_X540_VF            0x1515
 
 #define IXGBE_VF_IRQ_CLEAR_MASK         7
-#define IXGBE_VF_MAX_TX_QUEUES          1
-#define IXGBE_VF_MAX_RX_QUEUES          1
+#define IXGBE_VF_MAX_TX_QUEUES          8
+#define IXGBE_VF_MAX_RX_QUEUES          8
+
+/* DCB define */
+#define IXGBE_VF_MAX_TRAFFIC_CLASS	8
 
 /* Link speed */
 typedef u32 ixgbe_link_speed;
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
index 4a9c9c2..2323ccd 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
@@ -89,8 +89,8 @@ struct ixgbevf_ring {
 /* How many Rx Buffers do we bundle into one write to the hardware ? */
 #define IXGBEVF_RX_BUFFER_WRITE	16	/* Must be power of 2 */
 
-#define MAX_RX_QUEUES 1
-#define MAX_TX_QUEUES 1
+#define MAX_RX_QUEUES IXGBE_VF_MAX_RX_QUEUES
+#define MAX_TX_QUEUES IXGBE_VF_MAX_TX_QUEUES
 
 #define IXGBEVF_DEFAULT_TXD   1024
 #define IXGBEVF_DEFAULT_RXD   512
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index de1ad50..33444b5 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -99,6 +99,7 @@ MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");
 
 /* forward decls */
 static void ixgbevf_set_itr(struct ixgbevf_q_vector *q_vector);
+static void ixgbevf_free_all_rx_resources(struct ixgbevf_adapter *adapter);
 
 static inline void ixgbevf_release_rx_desc(struct ixgbe_hw *hw,
 					   struct ixgbevf_ring *rx_ring,
@@ -1335,7 +1336,8 @@ static void ixgbevf_init_last_counter_stats(struct ixgbevf_adapter *adapter)
 static void ixgbevf_negotiate_api(struct ixgbevf_adapter *adapter)
 {
 	struct ixgbe_hw *hw = &adapter->hw;
-	int api[] = { ixgbe_mbox_api_10,
+	int api[] = { ixgbe_mbox_api_11,
+		      ixgbe_mbox_api_10,
 		      ixgbe_mbox_api_unknown };
 	int err = 0, idx = 0;
 
@@ -1413,12 +1415,87 @@ static void ixgbevf_up_complete(struct ixgbevf_adapter *adapter)
 	mod_timer(&adapter->watchdog_timer, jiffies);
 }
 
+static int ixgbevf_reset_queues(struct ixgbevf_adapter *adapter)
+{
+	struct ixgbe_hw *hw = &adapter->hw;
+	struct ixgbevf_ring *rx_ring;
+	unsigned int def_q = 0;
+	unsigned int num_tcs = 0;
+	unsigned int num_rx_queues = 1;
+	int err, i;
+
+	spin_lock(&adapter->mbx_lock);
+
+	/* fetch queue configuration from the PF */
+	err = ixgbevf_get_queues(hw, &num_tcs, &def_q);
+
+	spin_unlock(&adapter->mbx_lock);
+
+	if (err)
+		return err;
+
+	if (num_tcs > 1) {
+		/* update default Tx ring register index */
+		adapter->tx_ring[0].reg_idx = def_q;
+
+		/* we need as many queues as traffic classes */
+		num_rx_queues = num_tcs;
+	}
+
+	/* nothing to do if we have the correct number of queues */
+	if (adapter->num_rx_queues == num_rx_queues)
+		return 0;
+
+	/* allocate new rings */
+	rx_ring = kcalloc(num_rx_queues,
+			  sizeof(struct ixgbevf_ring), GFP_KERNEL);
+	if (!rx_ring)
+		return -ENOMEM;
+
+	/* setup ring fields */
+	for (i = 0; i < num_rx_queues; i++) {
+		rx_ring[i].count = adapter->rx_ring_count;
+		rx_ring[i].queue_index = i;
+		rx_ring[i].reg_idx = i;
+		rx_ring[i].dev = &adapter->pdev->dev;
+		rx_ring[i].netdev = adapter->netdev;
+
+		/* allocate resources on the ring */
+		err = ixgbevf_setup_rx_resources(adapter, &rx_ring[i]);
+		if (err) {
+			while (i) {
+				i--;
+				ixgbevf_free_rx_resources(adapter, &rx_ring[i]);
+			}
+			kfree(rx_ring);
+			return err;
+		}
+	}
+
+	/* free the existing rings and queues */
+	ixgbevf_free_all_rx_resources(adapter);
+	adapter->num_rx_queues = 0;
+	kfree(adapter->rx_ring);
+
+	/* move new rings into position on the adapter struct */
+	adapter->rx_ring = rx_ring;
+	adapter->num_rx_queues = num_rx_queues;
+
+	/* reset ring to vector mapping */
+	ixgbevf_reset_q_vectors(adapter);
+	ixgbevf_map_rings_to_vectors(adapter);
+
+	return 0;
+}
+
 void ixgbevf_up(struct ixgbevf_adapter *adapter)
 {
 	struct ixgbe_hw *hw = &adapter->hw;
 
 	ixgbevf_negotiate_api(adapter);
 
+	ixgbevf_reset_queues(adapter);
+
 	ixgbevf_configure(adapter);
 
 	ixgbevf_up_complete(adapter);
@@ -1717,6 +1794,7 @@ static int ixgbevf_alloc_queues(struct ixgbevf_adapter *adapter)
 	for (i = 0; i < adapter->num_tx_queues; i++) {
 		adapter->tx_ring[i].count = adapter->tx_ring_count;
 		adapter->tx_ring[i].queue_index = i;
+		/* reg_idx may be remapped later by DCB config */
 		adapter->tx_ring[i].reg_idx = i;
 		adapter->tx_ring[i].dev = &adapter->pdev->dev;
 		adapter->tx_ring[i].netdev = adapter->netdev;
@@ -1950,8 +2028,11 @@ static int __devinit ixgbevf_sw_init(struct ixgbevf_adapter *adapter)
 	hw->subsystem_device_id = pdev->subsystem_device;
 
 	hw->mbx.ops.init_params(hw);
-	hw->mac.max_tx_queues = MAX_TX_QUEUES;
-	hw->mac.max_rx_queues = MAX_RX_QUEUES;
+
+	/* assume legacy case in which PF would only give VF 2 queues */
+	hw->mac.max_tx_queues = 2;
+	hw->mac.max_rx_queues = 2;
+
 	err = hw->mac.ops.reset_hw(hw);
 	if (err) {
 		dev_info(&pdev->dev,
@@ -2377,6 +2458,63 @@ static void ixgbevf_free_all_rx_resources(struct ixgbevf_adapter *adapter)
 						  &adapter->rx_ring[i]);
 }
 
+static int ixgbevf_setup_queues(struct ixgbevf_adapter *adapter)
+{
+	struct ixgbe_hw *hw = &adapter->hw;
+	struct ixgbevf_ring *rx_ring;
+	unsigned int def_q = 0;
+	unsigned int num_tcs = 0;
+	unsigned int num_rx_queues = 1;
+	int err, i;
+
+	spin_lock(&adapter->mbx_lock);
+
+	/* fetch queue configuration from the PF */
+	err = ixgbevf_get_queues(hw, &num_tcs, &def_q);
+
+	spin_unlock(&adapter->mbx_lock);
+
+	if (err)
+		return err;
+
+	if (num_tcs > 1) {
+		/* update default Tx ring register index */
+		adapter->tx_ring[0].reg_idx = def_q;
+
+		/* we need as many queues as traffic classes */
+		num_rx_queues = num_tcs;
+	}
+
+	/* nothing to do if we have the correct number of queues */
+	if (adapter->num_rx_queues == num_rx_queues)
+		return 0;
+
+	/* allocate new rings */
+	rx_ring = kcalloc(num_rx_queues,
+			  sizeof(struct ixgbevf_ring), GFP_KERNEL);
+	if (!rx_ring)
+		return -ENOMEM;
+
+	/* setup ring fields */
+	for (i = 0; i < num_rx_queues; i++) {
+		rx_ring[i].count = adapter->rx_ring_count;
+		rx_ring[i].queue_index = i;
+		rx_ring[i].reg_idx = i;
+		rx_ring[i].dev = &adapter->pdev->dev;
+		rx_ring[i].netdev = adapter->netdev;
+	}
+
+	/* free the existing ring and queues */
+	adapter->num_rx_queues = 0;
+	kfree(adapter->rx_ring);
+
+	/* move new rings into position on the adapter struct */
+	adapter->rx_ring = rx_ring;
+	adapter->num_rx_queues = num_rx_queues;
+
+	return 0;
+}
+
 /**
  * ixgbevf_open - Called when a network interface is made active
  * @netdev: network interface device structure
@@ -2413,6 +2551,11 @@ static int ixgbevf_open(struct net_device *netdev)
 
 	ixgbevf_negotiate_api(adapter);
 
+	/* setup queue reg_idx and Rx queue count */
+	err = ixgbevf_setup_queues(adapter);
+	if (err)
+		goto err_setup_queues;
+
 	/* allocate transmit descriptors */
 	err = ixgbevf_setup_all_tx_resources(adapter);
 	if (err)
@@ -2451,6 +2594,7 @@ err_setup_rx:
 	ixgbevf_free_all_rx_resources(adapter);
 err_setup_tx:
 	ixgbevf_free_all_tx_resources(adapter);
+err_setup_queues:
 	ixgbevf_reset(adapter);
 
 err_setup_reset:
@@ -2925,8 +3069,15 @@ static int ixgbevf_change_mtu(struct net_device *netdev, int new_mtu)
 	int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN;
 	int max_possible_frame = MAXIMUM_ETHERNET_VLAN_SIZE;
 
-	if (adapter->hw.mac.type == ixgbe_mac_X540_vf)
+	switch (adapter->hw.api_version) {
+	case ixgbe_mbox_api_11:
 		max_possible_frame = IXGBE_MAX_JUMBO_FRAME_SIZE;
+		break;
+	default:
+		if (adapter->hw.mac.type == ixgbe_mac_X540_vf)
+			max_possible_frame = IXGBE_MAX_JUMBO_FRAME_SIZE;
+		break;
+	}
 
 	/* MTU < 68 is an error and causes problems on some kernels */
 	if ((new_mtu < 68) || (max_frame > max_possible_frame))
diff --git a/drivers/net/ethernet/intel/ixgbevf/mbx.h b/drivers/net/ethernet/intel/ixgbevf/mbx.h
index 946ce86..0bc3005 100644
--- a/drivers/net/ethernet/intel/ixgbevf/mbx.h
+++ b/drivers/net/ethernet/intel/ixgbevf/mbx.h
@@ -85,6 +85,7 @@
 enum ixgbe_pfvf_api_rev {
 	ixgbe_mbox_api_10,	/* API version 1.0, linux/freebsd VF driver */
 	ixgbe_mbox_api_20,	/* API version 2.0, solaris Phase1 VF driver */
+	ixgbe_mbox_api_11,	/* API version 1.1, linux/freebsd VF driver */
 	/* This value should always be last */
 	ixgbe_mbox_api_unknown,	/* indicates that API version is not known */
 };
@@ -100,6 +101,15 @@ enum ixgbe_pfvf_api_rev {
 #define IXGBE_VF_SET_MACVLAN	0x06 /* VF requests PF for unicast filter */
 #define IXGBE_VF_API_NEGOTIATE	0x08 /* negotiate API version */
 
+/* mailbox API, version 1.1 VF requests */
+#define IXGBE_VF_GET_QUEUE	0x09 /* get queue configuration */
+
+/* GET_QUEUES return data indices within the mailbox */
+#define IXGBE_VF_TX_QUEUES	1	/* number of Tx queues supported */
+#define IXGBE_VF_RX_QUEUES	2	/* number of Rx queues supported */
+#define IXGBE_VF_TRANS_VLAN	3	/* Indication of port vlan */
+#define IXGBE_VF_DEF_QUEUE	4	/* Default queue offset */
+
 /* length of permanent address message returned from PF */
 #define IXGBE_VF_PERMADDR_MSG_LEN 4
 /* word in permanent address message with the current multicast type */
diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.c b/drivers/net/ethernet/intel/ixgbevf/vf.c
index 0c7447e..5fa397b 100644
--- a/drivers/net/ethernet/intel/ixgbevf/vf.c
+++ b/drivers/net/ethernet/intel/ixgbevf/vf.c
@@ -513,6 +513,64 @@ int ixgbevf_negotiate_api_version(struct ixgbe_hw *hw, int api)
 	return err;
 }
 
+int ixgbevf_get_queues(struct ixgbe_hw *hw, unsigned int *num_tcs,
+		       unsigned int *default_tc)
+{
+	int err;
+	u32 msg[5];
+
+	/* do nothing if API doesn't support ixgbevf_get_queues */
+	switch (hw->api_version) {
+	case ixgbe_mbox_api_11:
+		break;
+	default:
+		return 0;
+	}
+
+	/* Fetch queue configuration from the PF */
+	msg[0] = IXGBE_VF_GET_QUEUE;
+	msg[1] = msg[2] = msg[3] = msg[4] = 0;
+	err = hw->mbx.ops.write_posted(hw, msg, 5);
+
+	if (!err)
+		err = hw->mbx.ops.read_posted(hw, msg, 5);
+
+	if (!err) {
+		msg[0] &= ~IXGBE_VT_MSGTYPE_CTS;
+
+		/*
+		 * if we we didn't get an ACK there must have been
+		 * some sort of mailbox error so we should treat it
+		 * as such
+		 */
+		if (msg[0] != (IXGBE_VF_GET_QUEUE | IXGBE_VT_MSGTYPE_ACK))
+			return IXGBE_ERR_MBX;
+
+		/* record and validate values from message */
+		hw->mac.max_tx_queues = msg[IXGBE_VF_TX_QUEUES];
+		if (hw->mac.max_tx_queues == 0 ||
+		    hw->mac.max_tx_queues > IXGBE_VF_MAX_TX_QUEUES)
+			hw->mac.max_tx_queues = IXGBE_VF_MAX_TX_QUEUES;
+
+		hw->mac.max_rx_queues = msg[IXGBE_VF_RX_QUEUES];
+		if (hw->mac.max_rx_queues == 0 ||
+		    hw->mac.max_rx_queues > IXGBE_VF_MAX_RX_QUEUES)
+			hw->mac.max_rx_queues = IXGBE_VF_MAX_RX_QUEUES;
+
+		*num_tcs = msg[IXGBE_VF_TRANS_VLAN];
+		/* in case of unknown state assume we cannot tag frames */
+		if (*num_tcs > hw->mac.max_rx_queues)
+			*num_tcs = 1;
+
+		*default_tc = msg[IXGBE_VF_DEF_QUEUE];
+		/* default to queue 0 on out-of-bounds queue number */
+		if (*default_tc >= hw->mac.max_tx_queues)
+			*default_tc = 0;
+	}
+
+	return err;
+}
+
 static const struct ixgbe_mac_operations ixgbevf_mac_ops = {
 	.init_hw             = ixgbevf_init_hw_vf,
 	.reset_hw            = ixgbevf_reset_hw_vf,
diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.h b/drivers/net/ethernet/intel/ixgbevf/vf.h
index 47f11a5..7b1f502 100644
--- a/drivers/net/ethernet/intel/ixgbevf/vf.h
+++ b/drivers/net/ethernet/intel/ixgbevf/vf.h
@@ -174,5 +174,7 @@ struct ixgbevf_info {
 
 void ixgbevf_rlpml_set_vf(struct ixgbe_hw *hw, u16 max_size);
 int ixgbevf_negotiate_api_version(struct ixgbe_hw *hw, int api);
+int ixgbevf_get_queues(struct ixgbe_hw *hw, unsigned int *num_tcs,
+		       unsigned int *default_tc);
 #endif /* __IXGBE_VF_H__ */
 
-- 
1.7.11.7

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

* [net-next 06/12] ixgbe: add WOL support for new subdevice id
  2012-10-23  4:26 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (4 preceding siblings ...)
  2012-10-23  4:26 ` [net-next 05/12] ixgbevf: Add VF DCB + SR-IOV support Jeff Kirsher
@ 2012-10-23  4:26 ` Jeff Kirsher
  2012-10-23  4:26 ` [net-next 07/12] ixgbe: (PTP) refactor init, cyclecounter and reset Jeff Kirsher
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 39+ messages in thread
From: Jeff Kirsher @ 2012-10-23  4:26 UTC (permalink / raw)
  To: davem; +Cc: Emil Tantilov, netdev, gospo, sassmann, Jeff Kirsher

From: Emil Tantilov <emil.s.tantilov@intel.com>

This patch adds a subdevice id for new 82599 device. The define is needed
to allow enabling WOL support.

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 35be7d3..e417394 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -7080,6 +7080,7 @@ int ixgbe_wol_supported(struct ixgbe_adapter *adapter, u16 device_id,
 				break;
 		case IXGBE_SUBDEV_ID_82599_SFP:
 		case IXGBE_SUBDEV_ID_82599_RNDC:
+		case IXGBE_SUBDEV_ID_82599_ECNA_DP:
 			is_wol_supported = 1;
 			break;
 		}
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
index 0722f33..21915e2 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
@@ -56,6 +56,7 @@
 #define IXGBE_SUBDEV_ID_82599_SFP        0x11A9
 #define IXGBE_SUBDEV_ID_82599_RNDC       0x1F72
 #define IXGBE_SUBDEV_ID_82599_560FLR     0x17D0
+#define IXGBE_SUBDEV_ID_82599_ECNA_DP    0x0470
 #define IXGBE_DEV_ID_82599_SFP_EM        0x1507
 #define IXGBE_DEV_ID_82599_SFP_SF2       0x154D
 #define IXGBE_DEV_ID_82599EN_SFP         0x1557
-- 
1.7.11.7

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

* [net-next 07/12] ixgbe: (PTP) refactor init, cyclecounter and reset
  2012-10-23  4:26 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (5 preceding siblings ...)
  2012-10-23  4:26 ` [net-next 06/12] ixgbe: add WOL support for new subdevice id Jeff Kirsher
@ 2012-10-23  4:26 ` Jeff Kirsher
  2012-10-23  4:26 ` [net-next 08/12] ixgbe: using is_zero_ether_addr() to simplify the code Jeff Kirsher
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 39+ messages in thread
From: Jeff Kirsher @ 2012-10-23  4:26 UTC (permalink / raw)
  To: davem
  Cc: Jacob Keller, netdev, gospo, sassmann, Richard Cochran, Jeff Kirsher

From: Jacob Keller <jacob.e.keller@intel.com>

This patch modifies when and where PTP registers and data are set. Previously
a work-around was used inside cyclecounter_start in order to reset some of the
time registers. This patch creates a new ixgbe_ptp_reset specifically for this
purpose. The cyclecounter configuration has trimmed down to only modify what
is necessary. Due to hardware conditions after probe and before open, PTP init
has now moved into the ixgbe_open call. This allows the ptp device name in the
sysfs to be the ethernet device name instead of the MAC address.

The cyclecounter check flag is renamed to PTP_ENABLED and is used to prevent
PTP init from happening when PTP has not been enabled.

CC: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe.h      |   4 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |  26 +++---
 drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c  | 109 +++++++++++---------------
 3 files changed, 66 insertions(+), 73 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
index 101e525..c64a777 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
@@ -483,7 +483,7 @@ struct ixgbe_adapter {
 #define IXGBE_FLAG2_FDIR_REQUIRES_REINIT        (u32)(1 << 7)
 #define IXGBE_FLAG2_RSS_FIELD_IPV4_UDP		(u32)(1 << 8)
 #define IXGBE_FLAG2_RSS_FIELD_IPV6_UDP		(u32)(1 << 9)
-#define IXGBE_FLAG2_OVERFLOW_CHECK_ENABLED	(u32)(1 << 10)
+#define IXGBE_FLAG2_PTP_ENABLED			(u32)(1 << 10)
 #define IXGBE_FLAG2_PTP_PPS_ENABLED		(u32)(1 << 11)
 
 	/* Tx fast path data */
@@ -581,7 +581,6 @@ struct ixgbe_adapter {
 	struct timecounter tc;
 	int rx_hwtstamp_filter;
 	u32 base_incval;
-	u32 cycle_speed;
 #endif /* CONFIG_IXGBE_PTP */
 
 	/* SR-IOV */
@@ -754,6 +753,7 @@ extern void ixgbe_ptp_rx_hwtstamp(struct ixgbe_q_vector *q_vector,
 extern int ixgbe_ptp_hwtstamp_ioctl(struct ixgbe_adapter *adapter,
 				    struct ifreq *ifr, int cmd);
 extern void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter);
+extern void ixgbe_ptp_reset(struct ixgbe_adapter *adapter);
 extern void ixgbe_ptp_check_pps_event(struct ixgbe_adapter *adapter, u32 eicr);
 #endif /* CONFIG_IXGBE_PTP */
 
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index e417394..46bf0fd 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -4210,6 +4210,11 @@ void ixgbe_reset(struct ixgbe_adapter *adapter)
 	/* update SAN MAC vmdq pool selection */
 	if (hw->mac.san_mac_rar_index)
 		hw->mac.ops.set_vmdq_san_mac(hw, VMDQ_P(0));
+
+#ifdef CONFIG_IXGBE_PTP
+	if (adapter->flags2 & IXGBE_FLAG2_PTP_ENABLED)
+		ixgbe_ptp_reset(adapter);
+#endif
 }
 
 /**
@@ -4919,6 +4924,10 @@ static int ixgbe_open(struct net_device *netdev)
 	if (err)
 		goto err_set_queues;
 
+#ifdef CONFIG_IXGBE_PTP
+	ixgbe_ptp_init(adapter);
+#endif /* CONFIG_IXGBE_PTP*/
+
 	ixgbe_up_complete(adapter);
 
 	return 0;
@@ -4950,6 +4959,10 @@ static int ixgbe_close(struct net_device *netdev)
 {
 	struct ixgbe_adapter *adapter = netdev_priv(netdev);
 
+#ifdef CONFIG_IXGBE_PTP
+	ixgbe_ptp_stop(adapter);
+#endif
+
 	ixgbe_down(adapter);
 	ixgbe_free_irq(adapter);
 
@@ -5518,7 +5531,8 @@ static void ixgbe_watchdog_link_is_up(struct ixgbe_adapter *adapter)
 	}
 
 #ifdef CONFIG_IXGBE_PTP
-	ixgbe_ptp_start_cyclecounter(adapter);
+	if (adapter->flags2 & IXGBE_FLAG2_PTP_ENABLED)
+		ixgbe_ptp_start_cyclecounter(adapter);
 #endif
 
 	e_info(drv, "NIC Link is Up %s, Flow Control: %s\n",
@@ -5565,7 +5579,8 @@ static void ixgbe_watchdog_link_is_down(struct ixgbe_adapter *adapter)
 		adapter->flags2 |= IXGBE_FLAG2_SEARCH_FOR_SFP;
 
 #ifdef CONFIG_IXGBE_PTP
-	ixgbe_ptp_start_cyclecounter(adapter);
+	if (adapter->flags2 & IXGBE_FLAG2_PTP_ENABLED)
+		ixgbe_ptp_start_cyclecounter(adapter);
 #endif
 
 	e_info(drv, "NIC Link is Down\n");
@@ -7403,10 +7418,6 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
 
 	device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol);
 
-#ifdef CONFIG_IXGBE_PTP
-	ixgbe_ptp_init(adapter);
-#endif /* CONFIG_IXGBE_PTP*/
-
 	/* save off EEPROM version number */
 	hw->eeprom.ops.read(hw, 0x2e, &adapter->eeprom_verh);
 	hw->eeprom.ops.read(hw, 0x2d, &adapter->eeprom_verl);
@@ -7544,9 +7555,6 @@ static void __devexit ixgbe_remove(struct pci_dev *pdev)
 	set_bit(__IXGBE_DOWN, &adapter->state);
 	cancel_work_sync(&adapter->service_task);
 
-#ifdef CONFIG_IXGBE_PTP
-	ixgbe_ptp_stop(adapter);
-#endif
 
 #ifdef CONFIG_IXGBE_DCA
 	if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) {
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
index d929131..5e71ddb 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
@@ -411,7 +411,7 @@ void ixgbe_ptp_overflow_check(struct ixgbe_adapter *adapter)
 	unsigned long elapsed_jiffies = adapter->last_overflow_check - jiffies;
 	struct timespec ts;
 
-	if ((adapter->flags2 & IXGBE_FLAG2_OVERFLOW_CHECK_ENABLED) &&
+	if ((adapter->flags2 & IXGBE_FLAG2_PTP_ENABLED) &&
 	    (elapsed_jiffies >= IXGBE_OVERFLOW_PERIOD)) {
 		ixgbe_ptp_gettime(&adapter->ptp_caps, &ts);
 		adapter->last_overflow_check = jiffies;
@@ -759,58 +759,20 @@ int ixgbe_ptp_hwtstamp_ioctl(struct ixgbe_adapter *adapter,
  * ixgbe_ptp_start_cyclecounter - create the cycle counter from hw
  * @adapter: pointer to the adapter structure
  *
- * this function initializes the timecounter and cyclecounter
- * structures for use in generated a ns counter from the arbitrary
- * fixed point cycles registers in the hardware.
- *
- * A change in link speed impacts the frequency of the DMA clock on
- * the device, which is used to generate the cycle counter
- * registers. Therefor this function is called whenever the link speed
- * changes.
- *
- * This function also turns on the SDP pin for clock out feature (X540
- * only), because this is where the shift is first calculated.
+ * This function should be called to set the proper values for the TIMINCA
+ * register and tell the cyclecounter structure what the tick rate of SYSTIME
+ * is. It does not directly modify SYSTIME registers or the timecounter
+ * structure. It should be called whenever a new TIMINCA value is necessary,
+ * such as during initialization or when the link speed changes.
  */
 void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter)
 {
 	struct ixgbe_hw *hw = &adapter->hw;
 	u32 incval = 0;
-	u32 timinca = 0;
 	u32 shift = 0;
-	u32 cycle_speed;
 	unsigned long flags;
 
 	/**
-	 * Determine what speed we need to set the cyclecounter
-	 * for. It should be different for 100Mb, 1Gb, and 10Gb. Treat
-	 * unknown speeds as 10Gb. (Hence why we can't just copy the
-	 * link_speed.
-	 */
-	switch (adapter->link_speed) {
-	case IXGBE_LINK_SPEED_100_FULL:
-	case IXGBE_LINK_SPEED_1GB_FULL:
-	case IXGBE_LINK_SPEED_10GB_FULL:
-		cycle_speed = adapter->link_speed;
-		break;
-	default:
-		/* cycle speed should be 10Gb when there is no link */
-		cycle_speed = IXGBE_LINK_SPEED_10GB_FULL;
-		break;
-	}
-
-	/*
-	 * grab the current TIMINCA value from the register so that it can be
-	 * double checked. If the register value has been cleared, it must be
-	 * reset to the correct value for generating a cyclecounter. If
-	 * TIMINCA is zero, the SYSTIME registers do not increment at all.
-	 */
-	timinca = IXGBE_READ_REG(hw, IXGBE_TIMINCA);
-
-	/* Bail if the cycle speed didn't change and TIMINCA is non-zero */
-	if (adapter->cycle_speed == cycle_speed && timinca)
-		return;
-
-	/**
 	 * Scale the NIC cycle counter by a large factor so that
 	 * relatively small corrections to the frequency can be added
 	 * or subtracted. The drawbacks of a large factor include
@@ -819,8 +781,12 @@ void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter)
 	 * to nanoseconds using only a multiplier and a right-shift,
 	 * and (c) the value must fit within the timinca register space
 	 * => math based on internal DMA clock rate and available bits
+	 *
+	 * Note that when there is no link, internal DMA clock is same as when
+	 * link speed is 10Gb. Set the registers correctly even when link is
+	 * down to preserve the clock setting
 	 */
-	switch (cycle_speed) {
+	switch (adapter->link_speed) {
 	case IXGBE_LINK_SPEED_100_FULL:
 		incval = IXGBE_INCVAL_100;
 		shift = IXGBE_INCVAL_SHIFT_100;
@@ -830,6 +796,7 @@ void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter)
 		shift = IXGBE_INCVAL_SHIFT_1GB;
 		break;
 	case IXGBE_LINK_SPEED_10GB_FULL:
+	default:
 		incval = IXGBE_INCVAL_10GB;
 		shift = IXGBE_INCVAL_SHIFT_10GB;
 		break;
@@ -857,18 +824,11 @@ void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter)
 		return;
 	}
 
-	/* reset the system time registers */
-	IXGBE_WRITE_REG(hw, IXGBE_SYSTIML, 0x00000000);
-	IXGBE_WRITE_REG(hw, IXGBE_SYSTIMH, 0x00000000);
-	IXGBE_WRITE_FLUSH(hw);
-
-	/* store the new cycle speed */
-	adapter->cycle_speed = cycle_speed;
-
+	/* update the base incval used to calculate frequency adjustment */
 	ACCESS_ONCE(adapter->base_incval) = incval;
 	smp_mb();
 
-	/* grab the ptp lock */
+	/* need lock to prevent incorrect read while modifying cyclecounter */
 	spin_lock_irqsave(&adapter->tmreg_lock, flags);
 
 	memset(&adapter->cc, 0, sizeof(adapter->cc));
@@ -877,6 +837,31 @@ void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter)
 	adapter->cc.shift = shift;
 	adapter->cc.mult = 1;
 
+	spin_unlock_irqrestore(&adapter->tmreg_lock, flags);
+}
+
+/**
+ * ixgbe_ptp_reset
+ * @adapter: the ixgbe private board structure
+ *
+ * When the MAC resets, all timesync features are reset. This function should be
+ * called to re-enable the PTP clock structure. It will re-init the timecounter
+ * structure based on the kernel time as well as setup the cycle counter data.
+ */
+void ixgbe_ptp_reset(struct ixgbe_adapter *adapter)
+{
+	struct ixgbe_hw *hw = &adapter->hw;
+	unsigned long flags;
+
+	/* set SYSTIME registers to 0 just in case */
+	IXGBE_WRITE_REG(hw, IXGBE_SYSTIML, 0x00000000);
+	IXGBE_WRITE_REG(hw, IXGBE_SYSTIMH, 0x00000000);
+	IXGBE_WRITE_FLUSH(hw);
+
+	ixgbe_ptp_start_cyclecounter(adapter);
+
+	spin_lock_irqsave(&adapter->tmreg_lock, flags);
+
 	/* reset the ns time counter */
 	timecounter_init(&adapter->tc, &adapter->cc,
 			 ktime_to_ns(ktime_get_real()));
@@ -904,7 +889,7 @@ void ixgbe_ptp_init(struct ixgbe_adapter *adapter)
 
 	switch (adapter->hw.mac.type) {
 	case ixgbe_mac_X540:
-		snprintf(adapter->ptp_caps.name, 16, "%pm", netdev->dev_addr);
+		snprintf(adapter->ptp_caps.name, 16, "%s", netdev->name);
 		adapter->ptp_caps.owner = THIS_MODULE;
 		adapter->ptp_caps.max_adj = 250000000;
 		adapter->ptp_caps.n_alarm = 0;
@@ -918,7 +903,7 @@ void ixgbe_ptp_init(struct ixgbe_adapter *adapter)
 		adapter->ptp_caps.enable = ixgbe_ptp_enable;
 		break;
 	case ixgbe_mac_82599EB:
-		snprintf(adapter->ptp_caps.name, 16, "%pm", netdev->dev_addr);
+		snprintf(adapter->ptp_caps.name, 16, "%s", netdev->name);
 		adapter->ptp_caps.owner = THIS_MODULE;
 		adapter->ptp_caps.max_adj = 250000000;
 		adapter->ptp_caps.n_alarm = 0;
@@ -942,11 +927,6 @@ void ixgbe_ptp_init(struct ixgbe_adapter *adapter)
 
 	spin_lock_init(&adapter->tmreg_lock);
 
-	ixgbe_ptp_start_cyclecounter(adapter);
-
-	/* (Re)start the overflow check */
-	adapter->flags2 |= IXGBE_FLAG2_OVERFLOW_CHECK_ENABLED;
-
 	adapter->ptp_clock = ptp_clock_register(&adapter->ptp_caps,
 						&adapter->pdev->dev);
 	if (IS_ERR(adapter->ptp_clock)) {
@@ -955,6 +935,11 @@ void ixgbe_ptp_init(struct ixgbe_adapter *adapter)
 	} else
 		e_dev_info("registered PHC device on %s\n", netdev->name);
 
+	ixgbe_ptp_reset(adapter);
+
+	/* set the flag that PTP has been enabled */
+	adapter->flags2 |= IXGBE_FLAG2_PTP_ENABLED;
+
 	return;
 }
 
@@ -967,7 +952,7 @@ void ixgbe_ptp_init(struct ixgbe_adapter *adapter)
 void ixgbe_ptp_stop(struct ixgbe_adapter *adapter)
 {
 	/* stop the overflow check task */
-	adapter->flags2 &= ~(IXGBE_FLAG2_OVERFLOW_CHECK_ENABLED |
+	adapter->flags2 &= ~(IXGBE_FLAG2_PTP_ENABLED |
 			     IXGBE_FLAG2_PTP_PPS_ENABLED);
 
 	ixgbe_ptp_setup_sdp(adapter);
-- 
1.7.11.7

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

* [net-next 08/12] ixgbe: using is_zero_ether_addr() to simplify the code
  2012-10-23  4:26 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (6 preceding siblings ...)
  2012-10-23  4:26 ` [net-next 07/12] ixgbe: (PTP) refactor init, cyclecounter and reset Jeff Kirsher
@ 2012-10-23  4:26 ` Jeff Kirsher
  2012-10-23  4:45   ` Joe Perches
  2012-10-23  4:26 ` [net-next 09/12] ixgbe: Correcting small packet padding Jeff Kirsher
                   ` (4 subsequent siblings)
  12 siblings, 1 reply; 39+ messages in thread
From: Jeff Kirsher @ 2012-10-23  4:26 UTC (permalink / raw)
  To: davem; +Cc: Wei Yongjun, netdev, gospo, sassmann, Jeff Kirsher

From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>

Using is_zero_ether_addr() to simplify the code.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
index dbf37e4..a2a9bcc 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
@@ -1778,8 +1778,7 @@ s32 ixgbe_validate_mac_addr(u8 *mac_addr)
 	else if (IXGBE_IS_BROADCAST(mac_addr))
 		status = IXGBE_ERR_INVALID_MAC_ADDR;
 	/* Reject the zero address */
-	else if (mac_addr[0] == 0 && mac_addr[1] == 0 && mac_addr[2] == 0 &&
-	         mac_addr[3] == 0 && mac_addr[4] == 0 && mac_addr[5] == 0)
+	else if (is_zero_ether_addr(mac_addr))
 		status = IXGBE_ERR_INVALID_MAC_ADDR;
 
 	return status;
-- 
1.7.11.7

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

* [net-next 09/12] ixgbe: Correcting small packet padding
  2012-10-23  4:26 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (7 preceding siblings ...)
  2012-10-23  4:26 ` [net-next 08/12] ixgbe: using is_zero_ether_addr() to simplify the code Jeff Kirsher
@ 2012-10-23  4:26 ` Jeff Kirsher
  2012-10-23  4:26 ` [net-next 10/12] ixgbe: Drop unnecessary addition from ixgbe_set_rx_buffer_len Jeff Kirsher
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 39+ messages in thread
From: Jeff Kirsher @ 2012-10-23  4:26 UTC (permalink / raw)
  To: davem; +Cc: Tushar Dave, netdev, gospo, sassmann, Jeff Kirsher

From: Tushar Dave <tushar.n.dave@intel.com>

Driver pad skb up to 17 bytes because of the HW requirement. However, that code
implementation mess up the skb tail pointer after padding. This patch sets
skb->tail correctly.

Signed-off-by: Tushar Dave <tushar.n.dave@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 46bf0fd..c1ce6e9 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -6538,6 +6538,7 @@ static netdev_tx_t ixgbe_xmit_frame(struct sk_buff *skb,
 		if (skb_pad(skb, 17 - skb->len))
 			return NETDEV_TX_OK;
 		skb->len = 17;
+		skb_set_tail_pointer(skb, 17);
 	}
 
 	tx_ring = adapter->tx_ring[skb->queue_mapping];
-- 
1.7.11.7

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

* [net-next 10/12] ixgbe: Drop unnecessary addition from ixgbe_set_rx_buffer_len
  2012-10-23  4:26 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (8 preceding siblings ...)
  2012-10-23  4:26 ` [net-next 09/12] ixgbe: Correcting small packet padding Jeff Kirsher
@ 2012-10-23  4:26 ` Jeff Kirsher
  2012-10-23  4:26 ` [net-next 11/12] ixgbe: Add function ixgbe_reset_pipeline_82599 Jeff Kirsher
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 39+ messages in thread
From: Jeff Kirsher @ 2012-10-23  4:26 UTC (permalink / raw)
  To: davem; +Cc: Alexander Duyck, netdev, gospo, sassmann, Jeff Kirsher

From: Alexander Duyck <alexander.h.duyck@intel.com>

We still had some code floating around from the old single buffer receive
path.  As a result we were adding VLAN_HLEN to max_frame although the
resultant value was never used.  Since that is the case we can drop this from
the function.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index c1ce6e9..88d636a 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -3289,9 +3289,6 @@ static void ixgbe_set_rx_buffer_len(struct ixgbe_adapter *adapter)
 		IXGBE_WRITE_REG(hw, IXGBE_MHADD, mhadd);
 	}
 
-	/* MHADD will allow an extra 4 bytes past for vlan tagged frames */
-	max_frame += VLAN_HLEN;
-
 	hlreg0 = IXGBE_READ_REG(hw, IXGBE_HLREG0);
 	/* set jumbo enable since MHADD.MFS is keeping size locked at max_frame */
 	hlreg0 |= IXGBE_HLREG0_JUMBOEN;
-- 
1.7.11.7

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

* [net-next 11/12] ixgbe: Add function ixgbe_reset_pipeline_82599
  2012-10-23  4:26 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (9 preceding siblings ...)
  2012-10-23  4:26 ` [net-next 10/12] ixgbe: Drop unnecessary addition from ixgbe_set_rx_buffer_len Jeff Kirsher
@ 2012-10-23  4:26 ` Jeff Kirsher
  2012-10-23  4:26 ` [net-next 12/12] ixgbe: Fix possible memory leak in ixgbe_set_ringparam Jeff Kirsher
  2012-10-23  6:51 ` [net-next 00/12][pull request] Intel Wired LAN Driver Updates David Miller
  12 siblings, 0 replies; 39+ messages in thread
From: Jeff Kirsher @ 2012-10-23  4:26 UTC (permalink / raw)
  To: davem; +Cc: Don Skidmore, netdev, gospo, sassmann, Jeff Kirsher

From: Don Skidmore <donald.c.skidmore@intel.com>

This patch adds a function that forces a full pipeline reset.  This
function will be used in following patches to completely reset the PHY
during resets.

Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c  | 44 +++++++++++++++++++++++++
 drivers/net/ethernet/intel/ixgbe/ixgbe_common.h |  1 +
 2 files changed, 45 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c
index 1077cb2..b527813 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c
@@ -2080,6 +2080,50 @@ static s32 ixgbe_read_eeprom_82599(struct ixgbe_hw *hw,
 	return ret_val;
 }
 
+/**
+ * ixgbe_reset_pipeline_82599 - perform pipeline reset
+ *
+ * @hw: pointer to hardware structure
+ *
+ * Reset pipeline by asserting Restart_AN together with LMS change to ensure
+ * full pipeline reset.  Note - We must hold the SW/FW semaphore before writing
+ * to AUTOC, so this function assumes the semaphore is held.
+ **/
+s32 ixgbe_reset_pipeline_82599(struct ixgbe_hw *hw)
+{
+	s32 i, autoc_reg, ret_val;
+	s32 anlp1_reg = 0;
+
+	autoc_reg = IXGBE_READ_REG(hw, IXGBE_AUTOC);
+	autoc_reg |= IXGBE_AUTOC_AN_RESTART;
+
+	/* Write AUTOC register with toggled LMS[2] bit and Restart_AN */
+	IXGBE_WRITE_REG(hw, IXGBE_AUTOC, autoc_reg ^ IXGBE_AUTOC_LMS_1G_AN);
+
+	/* Wait for AN to leave state 0 */
+	for (i = 0; i < 10; i++) {
+		usleep_range(4000, 8000);
+		anlp1_reg = IXGBE_READ_REG(hw, IXGBE_ANLP1);
+		if (anlp1_reg & IXGBE_ANLP1_AN_STATE_MASK)
+			break;
+	}
+
+	if (!(anlp1_reg & IXGBE_ANLP1_AN_STATE_MASK)) {
+		hw_dbg(hw, "auto negotiation not completed\n");
+		ret_val = IXGBE_ERR_RESET_FAILED;
+		goto reset_pipeline_out;
+	}
+
+	ret_val = 0;
+
+reset_pipeline_out:
+	/* Write AUTOC register with original LMS field and Restart_AN */
+	IXGBE_WRITE_REG(hw, IXGBE_AUTOC, autoc_reg);
+	IXGBE_WRITE_FLUSH(hw);
+
+	return ret_val;
+}
+
 static struct ixgbe_mac_operations mac_ops_82599 = {
 	.init_hw                = &ixgbe_init_hw_generic,
 	.reset_hw               = &ixgbe_reset_hw_82599,
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.h
index d813d11..587db47 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.h
@@ -107,6 +107,7 @@ void ixgbe_clear_tx_pending(struct ixgbe_hw *hw);
 
 void ixgbe_set_rxpba_generic(struct ixgbe_hw *hw, int num_pb,
 			     u32 headroom, int strategy);
+s32 ixgbe_reset_pipeline_82599(struct ixgbe_hw *hw);
 
 #define IXGBE_I2C_THERMAL_SENSOR_ADDR	0xF8
 #define IXGBE_EMC_INTERNAL_DATA		0x00
-- 
1.7.11.7

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

* [net-next 12/12] ixgbe: Fix possible memory leak in ixgbe_set_ringparam
  2012-10-23  4:26 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (10 preceding siblings ...)
  2012-10-23  4:26 ` [net-next 11/12] ixgbe: Add function ixgbe_reset_pipeline_82599 Jeff Kirsher
@ 2012-10-23  4:26 ` Jeff Kirsher
  2012-10-23  6:51 ` [net-next 00/12][pull request] Intel Wired LAN Driver Updates David Miller
  12 siblings, 0 replies; 39+ messages in thread
From: Jeff Kirsher @ 2012-10-23  4:26 UTC (permalink / raw)
  To: davem; +Cc: Alexander Duyck, netdev, gospo, sassmann, Jeff Kirsher

From: Alexander Duyck <alexander.h.duyck@intel.com>

We were not correctly freeing the temporary rings on error in
ixgbe_set_ring_param.  In order to correct this I am unwinding a number of
changes that were made in order to get things back to the original working
form with modification for the current ring layouts.

This approach has multiple advantages including a smaller memory footprint,
and the fact that the interface is stopped while we are allocating the rings
meaning that there is less potential for some sort of memory corruption on the
ring.

The only disadvantage I see with this approach is that on a Rx allocation
failure we will report an error and only update the Tx rings.  However the
adapter should be fully functional in this state and the likelihood of such
an error is very low.  In addition it is not unreasonable to expect the
user to need to recheck the ring configuration should they experience an
error setting the ring sizes.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 102 +++++++++++------------
 1 file changed, 50 insertions(+), 52 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
index 56b20d1..872c337 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
@@ -887,24 +887,23 @@ static int ixgbe_set_ringparam(struct net_device *netdev,
                                struct ethtool_ringparam *ring)
 {
 	struct ixgbe_adapter *adapter = netdev_priv(netdev);
-	struct ixgbe_ring *temp_tx_ring, *temp_rx_ring;
+	struct ixgbe_ring *temp_ring;
 	int i, err = 0;
 	u32 new_rx_count, new_tx_count;
-	bool need_update = false;
 
 	if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending))
 		return -EINVAL;
 
-	new_rx_count = max_t(u32, ring->rx_pending, IXGBE_MIN_RXD);
-	new_rx_count = min_t(u32, new_rx_count, IXGBE_MAX_RXD);
-	new_rx_count = ALIGN(new_rx_count, IXGBE_REQ_RX_DESCRIPTOR_MULTIPLE);
-
-	new_tx_count = max_t(u32, ring->tx_pending, IXGBE_MIN_TXD);
-	new_tx_count = min_t(u32, new_tx_count, IXGBE_MAX_TXD);
+	new_tx_count = clamp_t(u32, ring->tx_pending,
+			       IXGBE_MIN_TXD, IXGBE_MAX_TXD);
 	new_tx_count = ALIGN(new_tx_count, IXGBE_REQ_TX_DESCRIPTOR_MULTIPLE);
 
-	if ((new_tx_count == adapter->tx_ring[0]->count) &&
-	    (new_rx_count == adapter->rx_ring[0]->count)) {
+	new_rx_count = clamp_t(u32, ring->rx_pending,
+			       IXGBE_MIN_RXD, IXGBE_MAX_RXD);
+	new_rx_count = ALIGN(new_rx_count, IXGBE_REQ_RX_DESCRIPTOR_MULTIPLE);
+
+	if ((new_tx_count == adapter->tx_ring_count) &&
+	    (new_rx_count == adapter->rx_ring_count)) {
 		/* nothing to do */
 		return 0;
 	}
@@ -922,81 +921,80 @@ static int ixgbe_set_ringparam(struct net_device *netdev,
 		goto clear_reset;
 	}
 
-	temp_tx_ring = vmalloc(adapter->num_tx_queues * sizeof(struct ixgbe_ring));
-	if (!temp_tx_ring) {
+	/* allocate temporary buffer to store rings in */
+	i = max_t(int, adapter->num_tx_queues, adapter->num_rx_queues);
+	temp_ring = vmalloc(i * sizeof(struct ixgbe_ring));
+
+	if (!temp_ring) {
 		err = -ENOMEM;
 		goto clear_reset;
 	}
 
+	ixgbe_down(adapter);
+
+	/*
+	 * Setup new Tx resources and free the old Tx resources in that order.
+	 * We can then assign the new resources to the rings via a memcpy.
+	 * The advantage to this approach is that we are guaranteed to still
+	 * have resources even in the case of an allocation failure.
+	 */
 	if (new_tx_count != adapter->tx_ring_count) {
 		for (i = 0; i < adapter->num_tx_queues; i++) {
-			memcpy(&temp_tx_ring[i], adapter->tx_ring[i],
+			memcpy(&temp_ring[i], adapter->tx_ring[i],
 			       sizeof(struct ixgbe_ring));
-			temp_tx_ring[i].count = new_tx_count;
-			err = ixgbe_setup_tx_resources(&temp_tx_ring[i]);
+
+			temp_ring[i].count = new_tx_count;
+			err = ixgbe_setup_tx_resources(&temp_ring[i]);
 			if (err) {
 				while (i) {
 					i--;
-					ixgbe_free_tx_resources(&temp_tx_ring[i]);
+					ixgbe_free_tx_resources(&temp_ring[i]);
 				}
-				goto clear_reset;
+				goto err_setup;
 			}
 		}
-		need_update = true;
-	}
 
-	temp_rx_ring = vmalloc(adapter->num_rx_queues * sizeof(struct ixgbe_ring));
-	if (!temp_rx_ring) {
-		err = -ENOMEM;
-		goto err_setup;
+		for (i = 0; i < adapter->num_tx_queues; i++) {
+			ixgbe_free_tx_resources(adapter->tx_ring[i]);
+
+			memcpy(adapter->tx_ring[i], &temp_ring[i],
+			       sizeof(struct ixgbe_ring));
+		}
+
+		adapter->tx_ring_count = new_tx_count;
 	}
 
+	/* Repeat the process for the Rx rings if needed */
 	if (new_rx_count != adapter->rx_ring_count) {
 		for (i = 0; i < adapter->num_rx_queues; i++) {
-			memcpy(&temp_rx_ring[i], adapter->rx_ring[i],
+			memcpy(&temp_ring[i], adapter->rx_ring[i],
 			       sizeof(struct ixgbe_ring));
-			temp_rx_ring[i].count = new_rx_count;
-			err = ixgbe_setup_rx_resources(&temp_rx_ring[i]);
+
+			temp_ring[i].count = new_rx_count;
+			err = ixgbe_setup_rx_resources(&temp_ring[i]);
 			if (err) {
 				while (i) {
 					i--;
-					ixgbe_free_rx_resources(&temp_rx_ring[i]);
+					ixgbe_free_rx_resources(&temp_ring[i]);
 				}
 				goto err_setup;
 			}
+
 		}
-		need_update = true;
-	}
 
-	/* if rings need to be updated, here's the place to do it in one shot */
-	if (need_update) {
-		ixgbe_down(adapter);
+		for (i = 0; i < adapter->num_rx_queues; i++) {
+			ixgbe_free_rx_resources(adapter->rx_ring[i]);
 
-		/* tx */
-		if (new_tx_count != adapter->tx_ring_count) {
-			for (i = 0; i < adapter->num_tx_queues; i++) {
-				ixgbe_free_tx_resources(adapter->tx_ring[i]);
-				memcpy(adapter->tx_ring[i], &temp_tx_ring[i],
-				       sizeof(struct ixgbe_ring));
-			}
-			adapter->tx_ring_count = new_tx_count;
+			memcpy(adapter->rx_ring[i], &temp_ring[i],
+			       sizeof(struct ixgbe_ring));
 		}
 
-		/* rx */
-		if (new_rx_count != adapter->rx_ring_count) {
-			for (i = 0; i < adapter->num_rx_queues; i++) {
-				ixgbe_free_rx_resources(adapter->rx_ring[i]);
-				memcpy(adapter->rx_ring[i], &temp_rx_ring[i],
-				       sizeof(struct ixgbe_ring));
-			}
-			adapter->rx_ring_count = new_rx_count;
-		}
-		ixgbe_up(adapter);
+		adapter->rx_ring_count = new_rx_count;
 	}
 
-	vfree(temp_rx_ring);
 err_setup:
-	vfree(temp_tx_ring);
+	ixgbe_up(adapter);
+	vfree(temp_ring);
 clear_reset:
 	clear_bit(__IXGBE_RESETTING, &adapter->state);
 	return err;
-- 
1.7.11.7

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

* Re: [net-next 08/12] ixgbe: using is_zero_ether_addr() to simplify the code
  2012-10-23  4:26 ` [net-next 08/12] ixgbe: using is_zero_ether_addr() to simplify the code Jeff Kirsher
@ 2012-10-23  4:45   ` Joe Perches
  2012-10-23  5:17     ` Jeff Kirsher
  0 siblings, 1 reply; 39+ messages in thread
From: Joe Perches @ 2012-10-23  4:45 UTC (permalink / raw)
  To: Jeff Kirsher; +Cc: davem, Wei Yongjun, netdev, gospo, sassmann

On Mon, 2012-10-22 at 21:26 -0700, Jeff Kirsher wrote:
> From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
> Using is_zero_ether_addr() to simplify the code.
[]
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
[]
> @@ -1778,8 +1778,7 @@ s32 ixgbe_validate_mac_addr(u8 *mac_addr)
[]
> -	else if (mac_addr[0] == 0 && mac_addr[1] == 0 && mac_addr[2] == 0 &&
> -	         mac_addr[3] == 0 && mac_addr[4] == 0 && mac_addr[5] == 0)
> +	else if (is_zero_ether_addr(mac_addr))

This means the more comprehensive simplifying patch
I submitted doesn't apply.  Easy to fix up though.

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

* Re: [net-next 08/12] ixgbe: using is_zero_ether_addr() to simplify the code
  2012-10-23  4:45   ` Joe Perches
@ 2012-10-23  5:17     ` Jeff Kirsher
  2012-10-23 19:35       ` Joe Perches
  0 siblings, 1 reply; 39+ messages in thread
From: Jeff Kirsher @ 2012-10-23  5:17 UTC (permalink / raw)
  To: Joe Perches; +Cc: davem, Wei Yongjun, netdev, gospo, sassmann

[-- Attachment #1: Type: text/plain, Size: 877 bytes --]

On Mon, 2012-10-22 at 21:45 -0700, Joe Perches wrote:
> On Mon, 2012-10-22 at 21:26 -0700, Jeff Kirsher wrote:
> > From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
> > Using is_zero_ether_addr() to simplify the code.
> []
> > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
> []
> > @@ -1778,8 +1778,7 @@ s32 ixgbe_validate_mac_addr(u8 *mac_addr)
> []
> > -	else if (mac_addr[0] == 0 && mac_addr[1] == 0 && mac_addr[2] == 0 &&
> > -	         mac_addr[3] == 0 && mac_addr[4] == 0 && mac_addr[5] == 0)
> > +	else if (is_zero_ether_addr(mac_addr))
> 
> This means the more comprehensive simplifying patch
> I submitted doesn't apply.  Easy to fix up though.
> 

Yeah, I have taken care of fix up to your patch in my queue.  Want me to
send you the fixed up patch so that you can confirm my fixes?

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2012-10-23  4:26 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (11 preceding siblings ...)
  2012-10-23  4:26 ` [net-next 12/12] ixgbe: Fix possible memory leak in ixgbe_set_ringparam Jeff Kirsher
@ 2012-10-23  6:51 ` David Miller
  12 siblings, 0 replies; 39+ messages in thread
From: David Miller @ 2012-10-23  6:51 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Mon, 22 Oct 2012 21:26:13 -0700

> This series contains updates to ixgbe only.  Only change to this series
> is I dropped the "ixgbe: Add support for pipeline reset" due to
> change requested by Martin Josefsson.
> 
> The following are changes since commit d94ce9b283736a876b2e6dec665c68e5e8b5d55e:
>   ipv4: 16 slots in initial fib_info hash table
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Pulled, thanks Jeff.

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

* Re: [net-next 08/12] ixgbe: using is_zero_ether_addr() to simplify the code
  2012-10-23  5:17     ` Jeff Kirsher
@ 2012-10-23 19:35       ` Joe Perches
  0 siblings, 0 replies; 39+ messages in thread
From: Joe Perches @ 2012-10-23 19:35 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: davem, Wei Yongjun, netdev, gospo, sassmann

On Mon, 2012-10-22 at 22:17 -0700, Jeff Kirsher wrote:
> On Mon, 2012-10-22 at 21:45 -0700, Joe Perches wrote:
> > On Mon, 2012-10-22 at 21:26 -0700, Jeff Kirsher wrote:
> > > From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
> > > Using is_zero_ether_addr() to simplify the code.
> > []
> > > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
> > []
> > > @@ -1778,8 +1778,7 @@ s32 ixgbe_validate_mac_addr(u8 *mac_addr)
> > []
> > > -	else if (mac_addr[0] == 0 && mac_addr[1] == 0 && mac_addr[2] == 0 &&
> > > -	         mac_addr[3] == 0 && mac_addr[4] == 0 && mac_addr[5] == 0)
> > > +	else if (is_zero_ether_addr(mac_addr))
> > 
> > This means the more comprehensive simplifying patch
> > I submitted doesn't apply.  Easy to fix up though.
> >
[]
>  Want me to
> send you the fixed up patch so that you can confirm my fixes?

Nope, no worries, I'm sure you'll do the right thing.
I just wanted to alert you about it.

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-12-10 10:22 Jeff Kirsher
@ 2013-12-11  2:30 ` David Miller
  0 siblings, 0 replies; 39+ messages in thread
From: David Miller @ 2013-12-11  2:30 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 10 Dec 2013 02:22:29 -0800

> This series contains updates to i40e, igb, ixgbe and ixgbevf.

Looks fine, pulled, thanks Jeff.

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

* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2013-12-10 10:22 Jeff Kirsher
  2013-12-11  2:30 ` David Miller
  0 siblings, 1 reply; 39+ messages in thread
From: Jeff Kirsher @ 2013-12-10 10:22 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

This series contains updates to i40e, igb, ixgbe and ixgbevf.

Shannon provides a couple of i40e patches, first restricts the ethtool
diag test messages by using netif_info() macro to when the hardware
bit is enabled in the message level netdev message mask.  Second
provides a fix for when there is an out-of-range descriptor request.

Kamil provides a fix for i40e by updating the loopback enum types and
add information about the current loopback mode to data returned from
get_link_info().

Jesse provides a fix for i40e define name that was being mis-used.
I40E_ITR_NONE was being used as an ITRN register index by accident
because it was easily associated with the i40e Rx ITR and friends
defines, when it should be associated with the DYN_CTL register sets.

Jacob provides an update for ixgbevf Kconfig description since the VF
driver supports more than just the 82599 device.

Don and Alex provide a cleanup patch for ixgbe to make it where head,
tail, next to clean and next to use are all reset in a single function
for both Tx and Rx path.  Before, the code for this was spread out over
several areas which made it difficult to track what the values were for
each of the values.

Carolyn provides two igb patches to add a media switching feature for
i354 PHY's and new Media Auto Sense for 82580 devices only.

Aaron Sierra provides a fix for igb to resolve an issue with the 64-bit
PCI addresses being truncated because the return values of
pci_resource_start() and pci_resouce_end() were being cast to unsigned
long.

Guenter Roeck provides two igb patches, first simplifies the code by
attaching the hwmon sysfs attributes to hwmon device instead of the
PCI device.  Second fixes the temperature sensor attribute index by
setting it to 1 instead of 0 (per hwmon ABI).

The following are changes since commit 5824d2d16d39a9c57aa3bacf955fbd0c2134061f:
  bgmac: connect to PHY and make use of PHY device
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Aaron Sierra (1):
  igb: Support ports mapped in 64-bit PCI space

Carolyn Wyborny (2):
  igb: Add media switching feature for i354 PHY's
  igb: Add new feature Media Auto Sense for 82580 devices only

Catherine Sullivan (1):
  i40e: Bump version number

Don Skidmore (1):
  ixgbe: Focus config of head, tail ntc, and ntu all into a single
    function

Guenter Roeck (2):
  igb: Convert to use devm_hwmon_device_register_with_groups
  igb: Start temperature sensor attribute index with 1

Jacob Keller (1):
  ixgbevf: update Kconfig description

Jesse Brandeburg (1):
  i40e: remove and fix confusing define name

Kamil Krawczyk (1):
  i40e: loopback info and set loopback fix

Shannon Nelson (2):
  i40e: restrict diag test messages
  i40e: complain about out-of-range descriptor request

 drivers/net/ethernet/intel/Kconfig                |   8 +-
 drivers/net/ethernet/intel/i40e/i40e_common.c     |   1 +
 drivers/net/ethernet/intel/i40e/i40e_diag.h       |   8 +-
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c    |  41 +++--
 drivers/net/ethernet/intel/i40e/i40e_main.c       |   2 +-
 drivers/net/ethernet/intel/i40e/i40e_txrx.h       |  21 ++-
 drivers/net/ethernet/intel/i40e/i40e_type.h       |   1 +
 drivers/net/ethernet/intel/igb/e1000_82575.c      |  89 +++++++++
 drivers/net/ethernet/intel/igb/e1000_defines.h    |  16 ++
 drivers/net/ethernet/intel/igb/e1000_hw.h         |   3 +
 drivers/net/ethernet/intel/igb/igb.h              |  19 +-
 drivers/net/ethernet/intel/igb/igb_ethtool.c      |   4 +
 drivers/net/ethernet/intel/igb/igb_hwmon.c        | 108 ++++++-----
 drivers/net/ethernet/intel/igb/igb_main.c         | 209 +++++++++++++++++++++-
 drivers/net/ethernet/intel/ixgbevf/ixgbevf.h      |   4 +-
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |  55 ++----
 16 files changed, 453 insertions(+), 136 deletions(-)

-- 
1.8.3.1

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-29  8:46             ` David Miller
@ 2013-07-29  9:17               ` Jeff Kirsher
  0 siblings, 0 replies; 39+ messages in thread
From: Jeff Kirsher @ 2013-07-29  9:17 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, gospo, sassmann

[-- Attachment #1: Type: text/plain, Size: 1541 bytes --]

On Mon, 2013-07-29 at 01:46 -0700, David Miller wrote:
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Mon, 29 Jul 2013 01:34:45 -0700
> 
> > On Mon, 2013-07-29 at 00:34 -0700, David Miller wrote:
> >> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> >> Date: Sun, 28 Jul 2013 19:08:55 -0700
> >> 
> >> > When will your kernel.org net-next be updated?  I ask because I have a
> >> > series for ixgbe I am putting together and wanted to make sure it is
> >> > against the latest net-next.
> >> 
> >> Are you asking when I will next merge 'net' into 'net-next'?  If so,
> >> I'll likely do it some time tomorrow.
> > 
> > I am not worried about that.  I just cloned your net-next tree and did
> > not see your pull of my net-next tree which had the e100 and e1000e
> > patches.  I am working on creating another series against net-next and
> > the tip on kernel.org is:
> > 
> > commit 9d4a0314642918cbda9ed4012df51e8df608fce6
> > Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
> > Date:   Fri Jul 26 17:05:16 2013 +0200
> > 
> >     ipv4, ipv6: send igmpv3/mld packets with TC_PRIO_CONTROL
> > 
> > which is several days old.  So I was not sure if I just make my series
> > against my net-next tip.
> 
> Weird, it should have all of your changes.
> 
> Tip is currently:
> 
> http://git.kernel.org/cgit/linux/kernel/git/davem/net-next.git/commit/?id=fe6f700d6cbb7e8a61711e325f53d9c9e0a42a4c
> 
> net/mlx4_core: Respond to operation request by firmware

All looks fine now, thanks!

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-29  8:34           ` Jeff Kirsher
@ 2013-07-29  8:46             ` David Miller
  2013-07-29  9:17               ` Jeff Kirsher
  0 siblings, 1 reply; 39+ messages in thread
From: David Miller @ 2013-07-29  8:46 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Mon, 29 Jul 2013 01:34:45 -0700

> On Mon, 2013-07-29 at 00:34 -0700, David Miller wrote:
>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
>> Date: Sun, 28 Jul 2013 19:08:55 -0700
>> 
>> > When will your kernel.org net-next be updated?  I ask because I have a
>> > series for ixgbe I am putting together and wanted to make sure it is
>> > against the latest net-next.
>> 
>> Are you asking when I will next merge 'net' into 'net-next'?  If so,
>> I'll likely do it some time tomorrow.
> 
> I am not worried about that.  I just cloned your net-next tree and did
> not see your pull of my net-next tree which had the e100 and e1000e
> patches.  I am working on creating another series against net-next and
> the tip on kernel.org is:
> 
> commit 9d4a0314642918cbda9ed4012df51e8df608fce6
> Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
> Date:   Fri Jul 26 17:05:16 2013 +0200
> 
>     ipv4, ipv6: send igmpv3/mld packets with TC_PRIO_CONTROL
> 
> which is several days old.  So I was not sure if I just make my series
> against my net-next tip.

Weird, it should have all of your changes.

Tip is currently:

http://git.kernel.org/cgit/linux/kernel/git/davem/net-next.git/commit/?id=fe6f700d6cbb7e8a61711e325f53d9c9e0a42a4c

net/mlx4_core: Respond to operation request by firmware

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-29  7:34         ` David Miller
@ 2013-07-29  8:34           ` Jeff Kirsher
  2013-07-29  8:46             ` David Miller
  0 siblings, 1 reply; 39+ messages in thread
From: Jeff Kirsher @ 2013-07-29  8:34 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, gospo, sassmann

[-- Attachment #1: Type: text/plain, Size: 1010 bytes --]

On Mon, 2013-07-29 at 00:34 -0700, David Miller wrote:
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Sun, 28 Jul 2013 19:08:55 -0700
> 
> > When will your kernel.org net-next be updated?  I ask because I have a
> > series for ixgbe I am putting together and wanted to make sure it is
> > against the latest net-next.
> 
> Are you asking when I will next merge 'net' into 'net-next'?  If so,
> I'll likely do it some time tomorrow.

I am not worried about that.  I just cloned your net-next tree and did
not see your pull of my net-next tree which had the e100 and e1000e
patches.  I am working on creating another series against net-next and
the tip on kernel.org is:

commit 9d4a0314642918cbda9ed4012df51e8df608fce6
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Fri Jul 26 17:05:16 2013 +0200

    ipv4, ipv6: send igmpv3/mld packets with TC_PRIO_CONTROL

which is several days old.  So I was not sure if I just make my series
against my net-next tip.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-29  2:08       ` Jeff Kirsher
@ 2013-07-29  7:34         ` David Miller
  2013-07-29  8:34           ` Jeff Kirsher
  0 siblings, 1 reply; 39+ messages in thread
From: David Miller @ 2013-07-29  7:34 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Sun, 28 Jul 2013 19:08:55 -0700

> When will your kernel.org net-next be updated?  I ask because I have a
> series for ixgbe I am putting together and wanted to make sure it is
> against the latest net-next.

Are you asking when I will next merge 'net' into 'net-next'?  If so,
I'll likely do it some time tomorrow.

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-29  0:20     ` David Miller
@ 2013-07-29  2:08       ` Jeff Kirsher
  2013-07-29  7:34         ` David Miller
  0 siblings, 1 reply; 39+ messages in thread
From: Jeff Kirsher @ 2013-07-29  2:08 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, gospo, sassmann

[-- Attachment #1: Type: text/plain, Size: 2425 bytes --]

On Sun, 2013-07-28 at 17:20 -0700, David Miller wrote:
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Sun, 28 Jul 2013 16:11:38 -0700
> 
> > On Sun, 2013-07-28 at 13:21 -0700, David Miller wrote:
> >> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> >> Date: Sun, 28 Jul 2013 04:41:04 -0700
> >> 
> >> > This series contains updates to e100 and e1000e.
> >> > 
> >> > The e100 patch from Andy simply updates the netif_printk() to use
> >> > %*ph to dump small buffers.
> >> > 
> >> > The changes to e1000e include a fix from Dean Nelson to resolve a
> >> > issue where a pci_clear_master() was accidentally dropped during a
> >> > conflict resolution. Wei Young provides 2 patches, one removes an
> >> > assignment of the default ring size because it was a duplicate. The
> >> > second changes the packet split receive structure to use
> >> > PS_PAGE_BUFFERS macro for the length so that problems won't occur
> >> > when the length is changed.
> >> > 
> >> > The remaining patches for e1000e are from Bruce Allan, where he
> >> > provides a number of fixes and updates for I218.  In addition, a
> >> > fix for 82583 which can disappear off the PCIe bus, to resolve this,
> >> > disable ASPM L1.  Bruce also provides a fix to a previous commit
> >> > (commit e60b22c5b7 e1000e: fix accessing to suspended device) so that
> >> > devices are only taken out of runtime power management for those
> >> > ethtool operations that must access device registers.
> >> > 
> >> > The following are changes since commit dcfe8048de66c3468060c8a2ec2c04ae3725d002:
> >> >   bonding: remove bond_resend_igmp_join_requests read_unlock leftover
> >> > and are available in the git repository at:
> >> >   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
> >> 
> >> Pulled, thanks a lot Jeff.
> > 
> > It looks like you pulled my net tree instead of my net-next tree.
> > Fortunately, I did not have anything applied to my net tree that had not
> > already been sent out.
> 
> No, really, I did this:
> 
> git pull git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Disregard, it was me misreading my git log in my net tree after updating
it against your latest tree.

When will your kernel.org net-next be updated?  I ask because I have a
series for ixgbe I am putting together and wanted to make sure it is
against the latest net-next.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-28 23:11   ` Jeff Kirsher
@ 2013-07-29  0:20     ` David Miller
  2013-07-29  2:08       ` Jeff Kirsher
  0 siblings, 1 reply; 39+ messages in thread
From: David Miller @ 2013-07-29  0:20 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Sun, 28 Jul 2013 16:11:38 -0700

> On Sun, 2013-07-28 at 13:21 -0700, David Miller wrote:
>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
>> Date: Sun, 28 Jul 2013 04:41:04 -0700
>> 
>> > This series contains updates to e100 and e1000e.
>> > 
>> > The e100 patch from Andy simply updates the netif_printk() to use
>> > %*ph to dump small buffers.
>> > 
>> > The changes to e1000e include a fix from Dean Nelson to resolve a
>> > issue where a pci_clear_master() was accidentally dropped during a
>> > conflict resolution. Wei Young provides 2 patches, one removes an
>> > assignment of the default ring size because it was a duplicate. The
>> > second changes the packet split receive structure to use
>> > PS_PAGE_BUFFERS macro for the length so that problems won't occur
>> > when the length is changed.
>> > 
>> > The remaining patches for e1000e are from Bruce Allan, where he
>> > provides a number of fixes and updates for I218.  In addition, a
>> > fix for 82583 which can disappear off the PCIe bus, to resolve this,
>> > disable ASPM L1.  Bruce also provides a fix to a previous commit
>> > (commit e60b22c5b7 e1000e: fix accessing to suspended device) so that
>> > devices are only taken out of runtime power management for those
>> > ethtool operations that must access device registers.
>> > 
>> > The following are changes since commit dcfe8048de66c3468060c8a2ec2c04ae3725d002:
>> >   bonding: remove bond_resend_igmp_join_requests read_unlock leftover
>> > and are available in the git repository at:
>> >   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
>> 
>> Pulled, thanks a lot Jeff.
> 
> It looks like you pulled my net tree instead of my net-next tree.
> Fortunately, I did not have anything applied to my net tree that had not
> already been sent out.

No, really, I did this:

git pull git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-28 20:21 ` David Miller
@ 2013-07-28 23:11   ` Jeff Kirsher
  2013-07-29  0:20     ` David Miller
  0 siblings, 1 reply; 39+ messages in thread
From: Jeff Kirsher @ 2013-07-28 23:11 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, gospo, sassmann

[-- Attachment #1: Type: text/plain, Size: 1764 bytes --]

On Sun, 2013-07-28 at 13:21 -0700, David Miller wrote:
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Sun, 28 Jul 2013 04:41:04 -0700
> 
> > This series contains updates to e100 and e1000e.
> > 
> > The e100 patch from Andy simply updates the netif_printk() to use
> > %*ph to dump small buffers.
> > 
> > The changes to e1000e include a fix from Dean Nelson to resolve a
> > issue where a pci_clear_master() was accidentally dropped during a
> > conflict resolution. Wei Young provides 2 patches, one removes an
> > assignment of the default ring size because it was a duplicate. The
> > second changes the packet split receive structure to use
> > PS_PAGE_BUFFERS macro for the length so that problems won't occur
> > when the length is changed.
> > 
> > The remaining patches for e1000e are from Bruce Allan, where he
> > provides a number of fixes and updates for I218.  In addition, a
> > fix for 82583 which can disappear off the PCIe bus, to resolve this,
> > disable ASPM L1.  Bruce also provides a fix to a previous commit
> > (commit e60b22c5b7 e1000e: fix accessing to suspended device) so that
> > devices are only taken out of runtime power management for those
> > ethtool operations that must access device registers.
> > 
> > The following are changes since commit dcfe8048de66c3468060c8a2ec2c04ae3725d002:
> >   bonding: remove bond_resend_igmp_join_requests read_unlock leftover
> > and are available in the git repository at:
> >   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
> 
> Pulled, thanks a lot Jeff.

It looks like you pulled my net tree instead of my net-next tree.
Fortunately, I did not have anything applied to my net tree that had not
already been sent out.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-28 11:41 Jeff Kirsher
@ 2013-07-28 20:21 ` David Miller
  2013-07-28 23:11   ` Jeff Kirsher
  0 siblings, 1 reply; 39+ messages in thread
From: David Miller @ 2013-07-28 20:21 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Sun, 28 Jul 2013 04:41:04 -0700

> This series contains updates to e100 and e1000e.
> 
> The e100 patch from Andy simply updates the netif_printk() to use
> %*ph to dump small buffers.
> 
> The changes to e1000e include a fix from Dean Nelson to resolve a
> issue where a pci_clear_master() was accidentally dropped during a
> conflict resolution. Wei Young provides 2 patches, one removes an
> assignment of the default ring size because it was a duplicate. The
> second changes the packet split receive structure to use
> PS_PAGE_BUFFERS macro for the length so that problems won't occur
> when the length is changed.
> 
> The remaining patches for e1000e are from Bruce Allan, where he
> provides a number of fixes and updates for I218.  In addition, a
> fix for 82583 which can disappear off the PCIe bus, to resolve this,
> disable ASPM L1.  Bruce also provides a fix to a previous commit
> (commit e60b22c5b7 e1000e: fix accessing to suspended device) so that
> devices are only taken out of runtime power management for those
> ethtool operations that must access device registers.
> 
> The following are changes since commit dcfe8048de66c3468060c8a2ec2c04ae3725d002:
>   bonding: remove bond_resend_igmp_join_requests read_unlock leftover
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Pulled, thanks a lot Jeff.

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

* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2013-07-28 11:41 Jeff Kirsher
  2013-07-28 20:21 ` David Miller
  0 siblings, 1 reply; 39+ messages in thread
From: Jeff Kirsher @ 2013-07-28 11:41 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

This series contains updates to e100 and e1000e.

The e100 patch from Andy simply updates the netif_printk() to use
%*ph to dump small buffers.

The changes to e1000e include a fix from Dean Nelson to resolve a
issue where a pci_clear_master() was accidentally dropped during a
conflict resolution. Wei Young provides 2 patches, one removes an
assignment of the default ring size because it was a duplicate. The
second changes the packet split receive structure to use
PS_PAGE_BUFFERS macro for the length so that problems won't occur
when the length is changed.

The remaining patches for e1000e are from Bruce Allan, where he
provides a number of fixes and updates for I218.  In addition, a
fix for 82583 which can disappear off the PCIe bus, to resolve this,
disable ASPM L1.  Bruce also provides a fix to a previous commit
(commit e60b22c5b7 e1000e: fix accessing to suspended device) so that
devices are only taken out of runtime power management for those
ethtool operations that must access device registers.

The following are changes since commit dcfe8048de66c3468060c8a2ec2c04ae3725d002:
  bonding: remove bond_resend_igmp_join_requests read_unlock leftover
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Andy Shevchenko (1):
  e100: dump small buffers via %*ph

Bruce Allan (8):
  e1000e: disable ASPM L1 on 82583
  e1000e: iAMT connections drop on driver unload when jumbo frames
    enabled
  e1000e: low throughput using 4K jumbos on I218
  e1000e: Tx hang on I218 when linked at 100Half and slow response at
    10Mbps
  e1000e: ethtool unnecessarily takes device out of RPM suspend
  e1000e: enable support for new device IDs
  e1000e: do not resume device from RPM suspend to read PHY status
    registers
  e1000e: fix I217/I218 PHY initialization flow

Dean Nelson (1):
  e1000e: restore call to pci_clear_master()

Wei Yang (2):
  e1000e: Remove duplicate assignment of default rx/tx ring size
  e1000e: Use marco instead of digit for defining
    e1000_rx_desc_packet_split

 drivers/net/ethernet/intel/e100.c           |  15 ++-
 drivers/net/ethernet/intel/e1000e/82571.c   |   1 +
 drivers/net/ethernet/intel/e1000e/e1000.h   |   3 -
 drivers/net/ethernet/intel/e1000e/ethtool.c | 105 +++++++++++++++------
 drivers/net/ethernet/intel/e1000e/hw.h      |  10 +-
 drivers/net/ethernet/intel/e1000e/ich8lan.c | 140 +++++++++++++++++++---------
 drivers/net/ethernet/intel/e1000e/ich8lan.h |   6 ++
 drivers/net/ethernet/intel/e1000e/netdev.c  |  38 ++++----
 8 files changed, 217 insertions(+), 101 deletions(-)

-- 
1.7.11.7

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-05-21 22:03 Jeff Kirsher
@ 2013-05-22 20:57 ` David Miller
  0 siblings, 0 replies; 39+ messages in thread
From: David Miller @ 2013-05-22 20:57 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 21 May 2013 15:03:08 -0700

> This series contains updates to e1000e, igb and ixgbe.
> 
> Bruce Allan provide 2 minor cleanups for e1000e to resolve whitespace
> issues and build warnings about unused parameters.
> 
> Carolyn provides a couple of fixes for igb, one being a fix for a
> possible panic when the interface is down and receive traffic
> arrives.  The second fix resolves an issue on newer parts which have
> multiple checksum fields and set_ethtool was only checking to update
> the first checksum of the NVM image.
> 
> Akeem provides majority of the changes in this patch set.  Akeem
> provides a fix for e1000e on an issue reported from the community to
> resolve the issue of unlocking swflag_mutex for 82574 and 82583
> devices even if the hardware semaphore was successfully acquired.
> The other patches from Akeem are against igb, where he adds support
> SFP module discovery, LED blink mechanism for devices using cathodes,
> LED support for i210/i211 parts and cleanup of a i2c function which
> was not being used.
> 
> Matthew provides an update for igb to support a more accurate check
> for a PTP RX hang.
> 
> Amir provides a patch for ixgbe to set the software prio_tc values at
> initialization to the hardware setting to remove the need to reset the
> device at the first time we call ixgbe_dcbnl_ieee_setets.
> 
> The following are changes since commit 1e18583adccfc122b5d6415cfe4bf1826c370f4e:
>   ThunderLAN: remove is_eisa flag
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Pulled, excellent merge commit message, thanks!

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

* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2013-05-21 22:03 Jeff Kirsher
  2013-05-22 20:57 ` David Miller
  0 siblings, 1 reply; 39+ messages in thread
From: Jeff Kirsher @ 2013-05-21 22:03 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

This series contains updates to e1000e, igb and ixgbe.

Bruce Allan provide 2 minor cleanups for e1000e to resolve whitespace
issues and build warnings about unused parameters.

Carolyn provides a couple of fixes for igb, one being a fix for a
possible panic when the interface is down and receive traffic
arrives.  The second fix resolves an issue on newer parts which have
multiple checksum fields and set_ethtool was only checking to update
the first checksum of the NVM image.

Akeem provides majority of the changes in this patch set.  Akeem
provides a fix for e1000e on an issue reported from the community to
resolve the issue of unlocking swflag_mutex for 82574 and 82583
devices even if the hardware semaphore was successfully acquired.
The other patches from Akeem are against igb, where he adds support
SFP module discovery, LED blink mechanism for devices using cathodes,
LED support for i210/i211 parts and cleanup of a i2c function which
was not being used.

Matthew provides an update for igb to support a more accurate check
for a PTP RX hang.

Amir provides a patch for ixgbe to set the software prio_tc values at
initialization to the hardware setting to remove the need to reset the
device at the first time we call ixgbe_dcbnl_ieee_setets.

The following are changes since commit 1e18583adccfc122b5d6415cfe4bf1826c370f4e:
  ThunderLAN: remove is_eisa flag
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Akeem G. Abodunrin (6):
  e1000e: Release mutex lock only if it has been initially acquired
  igb: Changed LEDs blink mechanism to include designs using cathode
  igb: Support for SFP modules discovery
  igb: SerDes flow control setting
  igb: Implementation of i210/i211 LED support
  igb: Removed unused i2c function

Amir Hanania (1):
  IXGBE: Set the SW prio_tc values at initialization to the HW setting.

Bruce Allan (2):
  e1000e: cleanup whitespace
  e1000e: prevent warning from -Wunused-parameter

Carolyn Wyborny (2):
  igb: Fix set_ethtool function to call update nvm for entire image
  igb: Fix possible panic caused by Rx traffic arrival while interface
    is down

Matthew Vick (1):
  igb: Add update to last_rx_timestamp in Rx rings

 drivers/net/ethernet/intel/e1000e/80003es2lan.c    |  24 ++--
 drivers/net/ethernet/intel/e1000e/82571.c          |  30 ++---
 drivers/net/ethernet/intel/e1000e/ethtool.c        |  34 +++---
 drivers/net/ethernet/intel/e1000e/hw.h             |  34 +++---
 drivers/net/ethernet/intel/e1000e/ich8lan.c        |  62 +++++------
 drivers/net/ethernet/intel/e1000e/netdev.c         |  55 +++++----
 drivers/net/ethernet/intel/e1000e/nvm.c            |   1 -
 drivers/net/ethernet/intel/e1000e/phy.c            |  22 ++--
 drivers/net/ethernet/intel/igb/e1000_82575.c       | 120 +++++++++++++++++++-
 drivers/net/ethernet/intel/igb/e1000_defines.h     |  36 +++---
 drivers/net/ethernet/intel/igb/e1000_hw.h          |   2 +
 drivers/net/ethernet/intel/igb/e1000_i210.h        |   6 +-
 drivers/net/ethernet/intel/igb/e1000_mac.c         |  45 ++++++--
 drivers/net/ethernet/intel/igb/e1000_phy.c         | 124 +++++++++++++++++++++
 drivers/net/ethernet/intel/igb/e1000_phy.h         |  20 ++++
 drivers/net/ethernet/intel/igb/igb.h               |  14 +--
 drivers/net/ethernet/intel/igb/igb_ethtool.c       |  74 ++++++------
 drivers/net/ethernet/intel/igb/igb_main.c          |   9 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c       |  23 ++++
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.h       |   2 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.h |   1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c    |   3 +
 22 files changed, 526 insertions(+), 215 deletions(-)

-- 
1.7.11.7

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-03-28  9:00 Jeff Kirsher
@ 2013-03-28 18:39 ` David Miller
  0 siblings, 0 replies; 39+ messages in thread
From: David Miller @ 2013-03-28 18:39 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Thu, 28 Mar 2013 02:00:03 -0700

> This series contains updates to e1000e, ixgbe and ixgbevf.
> 
> Majority of the changes are against e1000e (from Bruce Allan).
> Bruce adds additional error handling on PHY register access, as
> well as improve slow performance on 82579 when connected to a
> 10Mbit hub.  In addition, fixes LED blink logic for cathode
> LED design.  Most notable is added EEE support which is enabled
> by default and the added support for LTR on I217/I218.
> 
> The ixgbe and ixgbevf from Greg Rose changes the VM so that if a user
> does not assign a MAC address, the MAC address is set to all zeros
> instead of a random MAC address.  This ensures that we always know when
> we have a random address and udev won't get upset about it.
> 
> The following are changes since commit 8b49a4c75965ed157e21450d23dcadd6b27c1aa3:
>   bnx2x: fix compilation without CONFIG_BNX2X_SRIOV
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Pulled, thanks Jeff.

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

* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2013-03-28  9:00 Jeff Kirsher
  2013-03-28 18:39 ` David Miller
  0 siblings, 1 reply; 39+ messages in thread
From: Jeff Kirsher @ 2013-03-28  9:00 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

This series contains updates to e1000e, ixgbe and ixgbevf.

Majority of the changes are against e1000e (from Bruce Allan).
Bruce adds additional error handling on PHY register access, as
well as improve slow performance on 82579 when connected to a
10Mbit hub.  In addition, fixes LED blink logic for cathode
LED design.  Most notable is added EEE support which is enabled
by default and the added support for LTR on I217/I218.

The ixgbe and ixgbevf from Greg Rose changes the VM so that if a user
does not assign a MAC address, the MAC address is set to all zeros
instead of a random MAC address.  This ensures that we always know when
we have a random address and udev won't get upset about it.

The following are changes since commit 8b49a4c75965ed157e21450d23dcadd6b27c1aa3:
  bnx2x: fix compilation without CONFIG_BNX2X_SRIOV
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Bruce Allan (10):
  e1000e: additional error handling on PHY register accesses
  e1000e: slow performance between two 82579 connected via 10Mbit hub
  e1000e: fix LED blink logic for designs with LEDs driven by cathode
  e1000e: long access timeouts when I217/I218 MAC and PHY are out of
    sync
  e1000e: EEE capability advertisement not set/disabled as required
  e1000e: enable EEE by default
  e1000e: add support for LTR on I217/I218
  e1000e: cleanup unused defines
  e1000e: increase driver version number
  e1000e: fix scheduling while atomic bugs

Greg Rose (2):
  ixgbe: Don't give VFs random MAC addresses
  ixgbevf: Adjust to handle unassigned MAC address from PF

 drivers/net/ethernet/intel/e1000e/defines.h       |   2 +
 drivers/net/ethernet/intel/e1000e/e1000.h         |   3 +
 drivers/net/ethernet/intel/e1000e/ethtool.c       |  63 ++-----
 drivers/net/ethernet/intel/e1000e/ich8lan.c       | 213 ++++++++++++++++++----
 drivers/net/ethernet/intel/e1000e/ich8lan.h       |  11 +-
 drivers/net/ethernet/intel/e1000e/mac.c           |  27 ++-
 drivers/net/ethernet/intel/e1000e/netdev.c        |  38 +++-
 drivers/net/ethernet/intel/e1000e/phy.c           |  20 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c    |  23 ++-
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |  21 ++-
 drivers/net/ethernet/intel/ixgbevf/vf.c           |   7 +-
 11 files changed, 315 insertions(+), 113 deletions(-)

-- 
1.7.11.7

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2012-05-10  6:46 Jeff Kirsher
@ 2012-05-11  3:18 ` David Miller
  0 siblings, 0 replies; 39+ messages in thread
From: David Miller @ 2012-05-11  3:18 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Wed,  9 May 2012 23:46:41 -0700

> This series of patches contains updates for igb and ixgbe.
> Special note ixgbe patches contain the addition of PTP support from
> Jacob Keller.
> 
> The following are changes since commit 8feedbb4a710784d2858acba5c90e903e93e36eb:
>   dsa: Convert compare_ether_addr to ether_addr_equal
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Pulled, thanks Jeff.

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

* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2012-05-10  6:46 Jeff Kirsher
  2012-05-11  3:18 ` David Miller
  0 siblings, 1 reply; 39+ messages in thread
From: Jeff Kirsher @ 2012-05-10  6:46 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

This series of patches contains updates for igb and ixgbe.
Special note ixgbe patches contain the addition of PTP support from
Jacob Keller.

The following are changes since commit 8feedbb4a710784d2858acba5c90e903e93e36eb:
  dsa: Convert compare_ether_addr to ether_addr_equal
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Alexander Duyck (3):
  ixgbe: Exit on error case in VF message processing
  ixgbe: Clean up priority based flow control
  ixgbe: Set Drop_EN bit when multiple Rx queues are present w/o flow
    control

Don Skidmore (2):
  ixgbe: cleanup the hwmon function calls
  ixgbe: update version number

Greg Rose (1):
  ixgbe: Fix bogus error message

Jacob E Keller (1):
  ixgbe: Enable timesync clock-out feature for PPS support on X540

Jacob Keller (4):
  ixgbe: Hardware Timestamping + PTP Hardware Clock (PHC)
  ixgbe: correct disable_rx_buff timeout
  ixgbe: add support for get_ts_info
  ixgbe: support software timestamping

Koki Sanagi (1):
  igb: output register's information related to RX/TX queue[4-15]

 drivers/net/ethernet/intel/Kconfig                 |   11 +
 drivers/net/ethernet/intel/igb/igb_ethtool.c       |   38 +-
 drivers/net/ethernet/intel/ixgbe/Makefile          |    2 +
 drivers/net/ethernet/intel/ixgbe/ixgbe.h           |   37 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_common.c    |    2 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82598.c |   69 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c |   93 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c    |   98 +--
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c   |   71 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c      |  198 ++++-
 drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c       |  900 ++++++++++++++++++++
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c     |   13 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.c     |   36 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_type.h      |   47 +-
 14 files changed, 1370 insertions(+), 245 deletions(-)
 create mode 100644 drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c

-- 
1.7.7.6

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2012-03-17  8:50 Jeff Kirsher
@ 2012-03-17  9:06 ` David Miller
  0 siblings, 0 replies; 39+ messages in thread
From: David Miller @ 2012-03-17  9:06 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Sat, 17 Mar 2012 01:50:48 -0700

> This series of patches contains additions/cleanups to igb and ixgbe.
> There 2 patches for igb & ixgbe which add FX-ALL feature flag and
> sending of custom Ethernet FCS from Ben Greear.
> 
> The remaining patches in the series is part three of three to update
> ixgbe.  Although it looks like there will be at least one follow on
> patch series complete the update/cleanup of ixgbe.
> 
> The following are changes since commit 126a3fd251b244eabd9ab9dcb32b8b6f999c1b91:
>   eni: fix driver remove function and driver probe error path.
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Pulled, thanks Jeff.

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

* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2012-03-17  8:50 Jeff Kirsher
  2012-03-17  9:06 ` David Miller
  0 siblings, 1 reply; 39+ messages in thread
From: Jeff Kirsher @ 2012-03-17  8:50 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

This series of patches contains additions/cleanups to igb and ixgbe.
There 2 patches for igb & ixgbe which add FX-ALL feature flag and
sending of custom Ethernet FCS from Ben Greear.

The remaining patches in the series is part three of three to update
ixgbe.  Although it looks like there will be at least one follow on
patch series complete the update/cleanup of ixgbe.

The following are changes since commit 126a3fd251b244eabd9ab9dcb32b8b6f999c1b91:
  eni: fix driver remove function and driver probe error path.
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Alexander Duyck (8):
  ixgbe: Replace standard receive path with a page based receive
  ixgbe: cleanup logic in ixgbe_change_mtu
  ixgbe: Make certain that all frames fit minimum size requirements
  ixgbe: Modify setup of descriptor flags to avoid conditional jumps
  ixgbe: Use packets to track Tx completions instead of a separate
    value
  ixgbe: Place skb on first buffer_info structure to avoid using stack
    space
  ixgbe: Write gso_segs and bytcount to the ring sooner
  ixgbe: always write DMA for single_mapped value with skb

Ben Greear (4):
  igb: Support sending custom Ethernet FCS.
  igb: Support RX-ALL feature flag.
  ixgbe: Support sending custom Ethernet FCS.
  ixgbe: Support RX-ALL feature flag.

 drivers/net/ethernet/intel/igb/e1000_defines.h   |    2 +
 drivers/net/ethernet/intel/igb/igb_main.c        |   37 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe.h         |   60 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c |   23 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c    |   17 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c    | 1261 ++++++++++++----------
 6 files changed, 772 insertions(+), 628 deletions(-)

-- 
1.7.7.6

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2012-01-26 18:49 ` David Miller
@ 2012-01-26 21:27   ` David Miller
  0 siblings, 0 replies; 39+ messages in thread
From: David Miller @ 2012-01-26 21:27 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: David Miller <davem@davemloft.net>
Date: Thu, 26 Jan 2012 13:49:13 -0500 (EST)

> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Wed, 25 Jan 2012 23:21:43 -0800
> 
>> The following are changes since commit e55684fadbc5c9c69cad1b3bae228c8374b99b85:
>>   infiniband: nes: Convert nes_addr_resolve_neigh() over to dst_neigh_lookup().
>> and are available in the git repository at:
>>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
 ...
> Pulled, thanks Jeff.

I had to apply the following patch to fix the build on non-x86
architectures.

--------------------
e1000e: Need to include vmalloc.h

Otherwise (on sparc64):

drivers/net/ethernet/intel/e1000e/ethtool.c:657:3: error: implicit declaration of function 'vmalloc' [-Werror=implicit-function-declaration]

Signed-off-by: David S. Miller <davem@davemloft.net>
---
 drivers/net/ethernet/intel/e1000e/ethtool.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c
index ffb6c14..1ea317f 100644
--- a/drivers/net/ethernet/intel/e1000e/ethtool.c
+++ b/drivers/net/ethernet/intel/e1000e/ethtool.c
@@ -34,6 +34,7 @@
 #include <linux/pci.h>
 #include <linux/slab.h>
 #include <linux/delay.h>
+#include <linux/vmalloc.h>
 
 #include "e1000.h"
 
-- 
1.7.7.6

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2012-01-26  7:21 Jeff Kirsher
@ 2012-01-26 18:49 ` David Miller
  2012-01-26 21:27   ` David Miller
  0 siblings, 1 reply; 39+ messages in thread
From: David Miller @ 2012-01-26 18:49 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Wed, 25 Jan 2012 23:21:43 -0800

> The following are changes since commit e55684fadbc5c9c69cad1b3bae228c8374b99b85:
>   infiniband: nes: Convert nes_addr_resolve_neigh() over to dst_neigh_lookup().
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
> 
>   e1000e: cleanup Rx checksum offload code
>   e1000e: add Receive Packet Steering (RPS) support
>   e1000e: re-enable alternate MAC address for all devices which support
>     it
>   e1000e: convert head, tail and itr_register offsets to __iomem
>     pointers
>   e1000e: pass pointer to ring struct instead of adapter struct
>   e1000e: re-factor ethtool get/set ring parameter
>   e1000e: default IntMode based on kernel config & available hardware
>     support
>   e1000e: always set transmit descriptor control registers the same
>   e1000e: 82579: workaround for link drop issue
>   e1000e: use default settings for Tx Inter Packet Gap timer
>   e1000e: use hardware default values for Transmit Control register
>   e1000e: 82574/82583 Tx hang workaround

Pulled, thanks Jeff.

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

* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2012-01-26  7:21 Jeff Kirsher
  2012-01-26 18:49 ` David Miller
  0 siblings, 1 reply; 39+ messages in thread
From: Jeff Kirsher @ 2012-01-26  7:21 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

The following series contains updates to e1000e only.  Most of these
changes contain fixup/cleanups/conversions.

The following are changes since commit e55684fadbc5c9c69cad1b3bae228c8374b99b85:
  infiniband: nes: Convert nes_addr_resolve_neigh() over to dst_neigh_lookup().
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

  e1000e: cleanup Rx checksum offload code
  e1000e: add Receive Packet Steering (RPS) support
  e1000e: re-enable alternate MAC address for all devices which support
    it
  e1000e: convert head, tail and itr_register offsets to __iomem
    pointers
  e1000e: pass pointer to ring struct instead of adapter struct
  e1000e: re-factor ethtool get/set ring parameter
  e1000e: default IntMode based on kernel config & available hardware
    support
  e1000e: always set transmit descriptor control registers the same
  e1000e: 82579: workaround for link drop issue
  e1000e: use default settings for Tx Inter Packet Gap timer
  e1000e: use hardware default values for Transmit Control register
  e1000e: 82574/82583 Tx hang workaround

 drivers/net/ethernet/intel/e1000e/80003es2lan.c |    3 +-
 drivers/net/ethernet/intel/e1000e/82571.c       |    4 +
 drivers/net/ethernet/intel/e1000e/defines.h     |    8 +
 drivers/net/ethernet/intel/e1000e/e1000.h       |   29 +-
 drivers/net/ethernet/intel/e1000e/ethtool.c     |  186 +++++++----
 drivers/net/ethernet/intel/e1000e/hw.h          |    9 +-
 drivers/net/ethernet/intel/e1000e/ich8lan.c     |   22 ++
 drivers/net/ethernet/intel/e1000e/lib.c         |    7 +-
 drivers/net/ethernet/intel/e1000e/netdev.c      |  423 +++++++++++++----------
 drivers/net/ethernet/intel/e1000e/param.c       |   48 +++-
 10 files changed, 471 insertions(+), 268 deletions(-)

-- 
1.7.7.6

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

end of thread, other threads:[~2013-12-11  2:30 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-23  4:26 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2012-10-23  4:26 ` [net-next 01/12] ixgbe: Add support for IPv6 and UDP to ixgbe_get_headlen Jeff Kirsher
2012-10-23  4:26 ` [net-next 02/12] ixgbe: Add support for tracking the default user priority to SR-IOV Jeff Kirsher
2012-10-23  4:26 ` [net-next 03/12] ixgbe: Add support for GET_QUEUES message to get DCB configuration Jeff Kirsher
2012-10-23  4:26 ` [net-next 04/12] ixgbe: Enable support for VF API version 1.1 in the PF Jeff Kirsher
2012-10-23  4:26 ` [net-next 05/12] ixgbevf: Add VF DCB + SR-IOV support Jeff Kirsher
2012-10-23  4:26 ` [net-next 06/12] ixgbe: add WOL support for new subdevice id Jeff Kirsher
2012-10-23  4:26 ` [net-next 07/12] ixgbe: (PTP) refactor init, cyclecounter and reset Jeff Kirsher
2012-10-23  4:26 ` [net-next 08/12] ixgbe: using is_zero_ether_addr() to simplify the code Jeff Kirsher
2012-10-23  4:45   ` Joe Perches
2012-10-23  5:17     ` Jeff Kirsher
2012-10-23 19:35       ` Joe Perches
2012-10-23  4:26 ` [net-next 09/12] ixgbe: Correcting small packet padding Jeff Kirsher
2012-10-23  4:26 ` [net-next 10/12] ixgbe: Drop unnecessary addition from ixgbe_set_rx_buffer_len Jeff Kirsher
2012-10-23  4:26 ` [net-next 11/12] ixgbe: Add function ixgbe_reset_pipeline_82599 Jeff Kirsher
2012-10-23  4:26 ` [net-next 12/12] ixgbe: Fix possible memory leak in ixgbe_set_ringparam Jeff Kirsher
2012-10-23  6:51 ` [net-next 00/12][pull request] Intel Wired LAN Driver Updates David Miller
  -- strict thread matches above, loose matches on Subject: below --
2013-12-10 10:22 Jeff Kirsher
2013-12-11  2:30 ` David Miller
2013-07-28 11:41 Jeff Kirsher
2013-07-28 20:21 ` David Miller
2013-07-28 23:11   ` Jeff Kirsher
2013-07-29  0:20     ` David Miller
2013-07-29  2:08       ` Jeff Kirsher
2013-07-29  7:34         ` David Miller
2013-07-29  8:34           ` Jeff Kirsher
2013-07-29  8:46             ` David Miller
2013-07-29  9:17               ` Jeff Kirsher
2013-05-21 22:03 Jeff Kirsher
2013-05-22 20:57 ` David Miller
2013-03-28  9:00 Jeff Kirsher
2013-03-28 18:39 ` David Miller
2012-05-10  6:46 Jeff Kirsher
2012-05-11  3:18 ` David Miller
2012-03-17  8:50 Jeff Kirsher
2012-03-17  9:06 ` David Miller
2012-01-26  7:21 Jeff Kirsher
2012-01-26 18:49 ` David Miller
2012-01-26 21:27   ` 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).