All of lore.kernel.org
 help / color / mirror / Atom feed
* [net 0/4][pull request] Intel Wired LAN Driver Updates
@ 2012-03-28  6:52 Jeff Kirsher
  2012-03-28  6:52 ` [net 1/4] e1000: fix vlan processing regression Jeff Kirsher
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Jeff Kirsher @ 2012-03-28  6:52 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

This series of patches contains fixes for e1000, igb, igbvf, ixgb,
ixgbe and ixgbevf.

The following are changes since commit cc3425cdc04206f3c8b9efb2c693e89aa3cd9ec7:
  Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master

Don Skidmore (2):
  ixgbe: fix typo in enumeration name
  ixgbe: update version number

Jiri Pirko (1):
  e1000: fix vlan processing regression

stephen hemminger (1):
  intel: make wired ethernet driver message level consistent (rev2)

 drivers/net/ethernet/intel/e1000/e1000_main.c     |   40 +++++++++++++--------
 drivers/net/ethernet/intel/e1000e/netdev.c        |    7 +++-
 drivers/net/ethernet/intel/igb/igb_main.c         |    7 +++-
 drivers/net/ethernet/intel/igbvf/netdev.c         |    7 +++-
 drivers/net/ethernet/intel/ixgb/ixgb_main.c       |    6 ++--
 drivers/net/ethernet/intel/ixgbe/ixgbe.h          |    2 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c     |   13 ++++---
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |    7 +++-
 8 files changed, 60 insertions(+), 29 deletions(-)

-- 
1.7.7.6

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

* [net 1/4] e1000: fix vlan processing regression
  2012-03-28  6:52 [net 0/4][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
@ 2012-03-28  6:52 ` Jeff Kirsher
  2012-10-24  1:21   ` [3.2.y] " Jonathan Nieder
  2012-03-28  6:52 ` [net 2/4] intel: make wired ethernet driver message level consistent (rev2) Jeff Kirsher
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 12+ messages in thread
From: Jeff Kirsher @ 2012-03-28  6:52 UTC (permalink / raw)
  To: davem; +Cc: Jiri Pirko, netdev, gospo, sassmann, Jeff Kirsher

From: Jiri Pirko <jpirko@redhat.com>

This patch fixes a regression introduced by commit "e1000: do vlan
cleanup (799d531)".

Apparently some e1000 chips (not mine) are sensitive about the order of
setting vlan filter and vlan stripping/inserting functionality. So this
patch changes the order so it's the same as before vlan cleanup.

Reported-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Tested-by: Ben Greear <greearb@candelatech.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000/e1000_main.c |   35 +++++++++++++++---------
 1 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
index 0e9aec8..bcba9cf 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -164,6 +164,8 @@ static int e1000_82547_fifo_workaround(struct e1000_adapter *adapter,
 static bool e1000_vlan_used(struct e1000_adapter *adapter);
 static void e1000_vlan_mode(struct net_device *netdev,
 			    netdev_features_t features);
+static void e1000_vlan_filter_on_off(struct e1000_adapter *adapter,
+				     bool filter_on);
 static int e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid);
 static int e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid);
 static void e1000_restore_vlan(struct e1000_adapter *adapter);
@@ -1214,7 +1216,7 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
 	if (err)
 		goto err_register;
 
-	e1000_vlan_mode(netdev, netdev->features);
+	e1000_vlan_filter_on_off(adapter, false);
 
 	/* print bus type/speed/width info */
 	e_info(probe, "(PCI%s:%dMHz:%d-bit) %pM\n",
@@ -4770,6 +4772,22 @@ static bool e1000_vlan_used(struct e1000_adapter *adapter)
 	return false;
 }
 
+static void __e1000_vlan_mode(struct e1000_adapter *adapter,
+			      netdev_features_t features)
+{
+	struct e1000_hw *hw = &adapter->hw;
+	u32 ctrl;
+
+	ctrl = er32(CTRL);
+	if (features & NETIF_F_HW_VLAN_RX) {
+		/* enable VLAN tag insert/strip */
+		ctrl |= E1000_CTRL_VME;
+	} else {
+		/* disable VLAN tag insert/strip */
+		ctrl &= ~E1000_CTRL_VME;
+	}
+	ew32(CTRL, ctrl);
+}
 static void e1000_vlan_filter_on_off(struct e1000_adapter *adapter,
 				     bool filter_on)
 {
@@ -4779,6 +4797,7 @@ static void e1000_vlan_filter_on_off(struct e1000_adapter *adapter,
 	if (!test_bit(__E1000_DOWN, &adapter->flags))
 		e1000_irq_disable(adapter);
 
+	__e1000_vlan_mode(adapter, adapter->netdev->features);
 	if (filter_on) {
 		/* enable VLAN receive filtering */
 		rctl = er32(RCTL);
@@ -4799,24 +4818,14 @@ static void e1000_vlan_filter_on_off(struct e1000_adapter *adapter,
 }
 
 static void e1000_vlan_mode(struct net_device *netdev,
-	netdev_features_t features)
+			    netdev_features_t features)
 {
 	struct e1000_adapter *adapter = netdev_priv(netdev);
-	struct e1000_hw *hw = &adapter->hw;
-	u32 ctrl;
 
 	if (!test_bit(__E1000_DOWN, &adapter->flags))
 		e1000_irq_disable(adapter);
 
-	ctrl = er32(CTRL);
-	if (features & NETIF_F_HW_VLAN_RX) {
-		/* enable VLAN tag insert/strip */
-		ctrl |= E1000_CTRL_VME;
-	} else {
-		/* disable VLAN tag insert/strip */
-		ctrl &= ~E1000_CTRL_VME;
-	}
-	ew32(CTRL, ctrl);
+	__e1000_vlan_mode(adapter, features);
 
 	if (!test_bit(__E1000_DOWN, &adapter->flags))
 		e1000_irq_enable(adapter);
-- 
1.7.7.6

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

* [net 2/4] intel: make wired ethernet driver message level consistent (rev2)
  2012-03-28  6:52 [net 0/4][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
  2012-03-28  6:52 ` [net 1/4] e1000: fix vlan processing regression Jeff Kirsher
@ 2012-03-28  6:52 ` Jeff Kirsher
  2012-03-28  6:52 ` [net 3/4] ixgbe: fix typo in enumeration name Jeff Kirsher
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 12+ messages in thread
From: Jeff Kirsher @ 2012-03-28  6:52 UTC (permalink / raw)
  To: davem; +Cc: stephen hemminger, netdev, gospo, sassmann, Jeff Kirsher

From: stephen hemminger <shemminger@vyatta.com>

Dan Carpenter noticed that ixgbevf initial default was different than
the rest. But the problem is broader than that, only one Intel driver (ixgb)
was doing it almost right.

The convention for default debug level should be consistent among
Intel drivers and follow established convention.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000/e1000_main.c     |    5 +++--
 drivers/net/ethernet/intel/e1000e/netdev.c        |    7 ++++++-
 drivers/net/ethernet/intel/igb/igb_main.c         |    7 ++++++-
 drivers/net/ethernet/intel/igbvf/netdev.c         |    7 ++++++-
 drivers/net/ethernet/intel/ixgb/ixgb_main.c       |    6 +++---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c     |    9 ++++++---
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |    7 +++++--
 7 files changed, 35 insertions(+), 13 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
index bcba9cf..4348b6f 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -217,7 +217,8 @@ MODULE_DESCRIPTION("Intel(R) PRO/1000 Network Driver");
 MODULE_LICENSE("GPL");
 MODULE_VERSION(DRV_VERSION);
 
-static int debug = NETIF_MSG_DRV | NETIF_MSG_PROBE;
+#define DEFAULT_MSG_ENABLE (NETIF_MSG_DRV|NETIF_MSG_PROBE|NETIF_MSG_LINK)
+static int debug = -1;
 module_param(debug, int, 0);
 MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");
 
@@ -981,7 +982,7 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
 	adapter = netdev_priv(netdev);
 	adapter->netdev = netdev;
 	adapter->pdev = pdev;
-	adapter->msg_enable = (1 << debug) - 1;
+	adapter->msg_enable = netif_msg_init(debug, DEFAULT_MSG_ENABLE);
 	adapter->bars = bars;
 	adapter->need_ioport = need_ioport;
 
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 7152eb1..2c38a65 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -60,6 +60,11 @@
 char e1000e_driver_name[] = "e1000e";
 const char e1000e_driver_version[] = DRV_VERSION;
 
+#define DEFAULT_MSG_ENABLE (NETIF_MSG_DRV|NETIF_MSG_PROBE|NETIF_MSG_LINK)
+static int debug = -1;
+module_param(debug, int, 0);
+MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");
+
 static void e1000e_disable_aspm(struct pci_dev *pdev, u16 state);
 
 static const struct e1000_info *e1000_info_tbl[] = {
@@ -6172,7 +6177,7 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
 	adapter->hw.adapter = adapter;
 	adapter->hw.mac.type = ei->mac;
 	adapter->max_hw_frame_size = ei->max_hw_frame_size;
-	adapter->msg_enable = (1 << NETIF_MSG_DRV | NETIF_MSG_PROBE) - 1;
+	adapter->msg_enable = netif_msg_init(debug, DEFAULT_MSG_ENABLE);
 
 	mmio_start = pci_resource_start(pdev, 0);
 	mmio_len = pci_resource_len(pdev, 0);
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index c490241..5ec3159 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -238,6 +238,11 @@ MODULE_DESCRIPTION("Intel(R) Gigabit Ethernet Network Driver");
 MODULE_LICENSE("GPL");
 MODULE_VERSION(DRV_VERSION);
 
+#define DEFAULT_MSG_ENABLE (NETIF_MSG_DRV|NETIF_MSG_PROBE|NETIF_MSG_LINK)
+static int debug = -1;
+module_param(debug, int, 0);
+MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");
+
 struct igb_reg_info {
 	u32 ofs;
 	char *name;
@@ -1893,7 +1898,7 @@ static int __devinit igb_probe(struct pci_dev *pdev,
 	adapter->pdev = pdev;
 	hw = &adapter->hw;
 	hw->back = adapter;
-	adapter->msg_enable = NETIF_MSG_DRV | NETIF_MSG_PROBE;
+	adapter->msg_enable = netif_msg_init(debug, DEFAULT_MSG_ENABLE);
 
 	mmio_start = pci_resource_start(pdev, 0);
 	mmio_len = pci_resource_len(pdev, 0);
diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c
index 217c143..d61ca2a 100644
--- a/drivers/net/ethernet/intel/igbvf/netdev.c
+++ b/drivers/net/ethernet/intel/igbvf/netdev.c
@@ -55,6 +55,11 @@ static const char igbvf_driver_string[] =
 static const char igbvf_copyright[] =
 		  "Copyright (c) 2009 - 2012 Intel Corporation.";
 
+#define DEFAULT_MSG_ENABLE (NETIF_MSG_DRV|NETIF_MSG_PROBE|NETIF_MSG_LINK)
+static int debug = -1;
+module_param(debug, int, 0);
+MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");
+
 static int igbvf_poll(struct napi_struct *napi, int budget);
 static void igbvf_reset(struct igbvf_adapter *);
 static void igbvf_set_interrupt_capability(struct igbvf_adapter *);
@@ -2649,7 +2654,7 @@ static int __devinit igbvf_probe(struct pci_dev *pdev,
 	adapter->flags = ei->flags;
 	adapter->hw.back = adapter;
 	adapter->hw.mac.type = ei->mac;
-	adapter->msg_enable = (1 << NETIF_MSG_DRV | NETIF_MSG_PROBE) - 1;
+	adapter->msg_enable = netif_msg_init(debug, DEFAULT_MSG_ENABLE);
 
 	/* PCI config space info */
 
diff --git a/drivers/net/ethernet/intel/ixgb/ixgb_main.c b/drivers/net/ethernet/intel/ixgb/ixgb_main.c
index 82aaa79..5fce363 100644
--- a/drivers/net/ethernet/intel/ixgb/ixgb_main.c
+++ b/drivers/net/ethernet/intel/ixgb/ixgb_main.c
@@ -134,8 +134,8 @@ MODULE_DESCRIPTION("Intel(R) PRO/10GbE Network Driver");
 MODULE_LICENSE("GPL");
 MODULE_VERSION(DRV_VERSION);
 
-#define DEFAULT_DEBUG_LEVEL_SHIFT 3
-static int debug = DEFAULT_DEBUG_LEVEL_SHIFT;
+#define DEFAULT_MSG_ENABLE (NETIF_MSG_DRV|NETIF_MSG_PROBE|NETIF_MSG_LINK)
+static int debug = -1;
 module_param(debug, int, 0);
 MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");
 
@@ -442,7 +442,7 @@ ixgb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	adapter->netdev = netdev;
 	adapter->pdev = pdev;
 	adapter->hw.back = adapter;
-	adapter->msg_enable = netif_msg_init(debug, DEFAULT_DEBUG_LEVEL_SHIFT);
+	adapter->msg_enable = netif_msg_init(debug, DEFAULT_MSG_ENABLE);
 
 	adapter->hw.hw_addr = pci_ioremap_bar(pdev, BAR_0);
 	if (!adapter->hw.hw_addr) {
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 398fc22..6dbad2b 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -141,13 +141,16 @@ module_param(allow_unsupported_sfp, uint, 0);
 MODULE_PARM_DESC(allow_unsupported_sfp,
 		 "Allow unsupported and untested SFP+ modules on 82599-based adapters");
 
+#define DEFAULT_MSG_ENABLE (NETIF_MSG_DRV|NETIF_MSG_PROBE|NETIF_MSG_LINK)
+static int debug = -1;
+module_param(debug, int, 0);
+MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");
+
 MODULE_AUTHOR("Intel Corporation, <linux.nics@intel.com>");
 MODULE_DESCRIPTION("Intel(R) 10 Gigabit PCI Express Network Driver");
 MODULE_LICENSE("GPL");
 MODULE_VERSION(DRV_VERSION);
 
-#define DEFAULT_DEBUG_LEVEL_SHIFT 3
-
 static void ixgbe_service_event_schedule(struct ixgbe_adapter *adapter)
 {
 	if (!test_bit(__IXGBE_DOWN, &adapter->state) &&
@@ -6834,7 +6837,7 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
 	adapter->pdev = pdev;
 	hw = &adapter->hw;
 	hw->back = adapter;
-	adapter->msg_enable = (1 << DEFAULT_DEBUG_LEVEL_SHIFT) - 1;
+	adapter->msg_enable = netif_msg_init(debug, DEFAULT_MSG_ENABLE);
 
 	hw->hw_addr = ioremap(pci_resource_start(pdev, 0),
 			      pci_resource_len(pdev, 0));
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index 581c659..307611a 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -91,7 +91,10 @@ MODULE_DESCRIPTION("Intel(R) 82599 Virtual Function Driver");
 MODULE_LICENSE("GPL");
 MODULE_VERSION(DRV_VERSION);
 
-#define DEFAULT_DEBUG_LEVEL_SHIFT 3
+#define DEFAULT_MSG_ENABLE (NETIF_MSG_DRV|NETIF_MSG_PROBE|NETIF_MSG_LINK)
+static int debug = -1;
+module_param(debug, int, 0);
+MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");
 
 /* forward decls */
 static void ixgbevf_set_itr_msix(struct ixgbevf_q_vector *q_vector);
@@ -3367,7 +3370,7 @@ static int __devinit ixgbevf_probe(struct pci_dev *pdev,
 	adapter->pdev = pdev;
 	hw = &adapter->hw;
 	hw->back = adapter;
-	adapter->msg_enable = (1 << DEFAULT_DEBUG_LEVEL_SHIFT) - 1;
+	adapter->msg_enable = netif_msg_init(debug, DEFAULT_MSG_ENABLE);
 
 	/*
 	 * call save state here in standalone driver because it relies on
-- 
1.7.7.6

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

* [net 3/4] ixgbe: fix typo in enumeration name
  2012-03-28  6:52 [net 0/4][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
  2012-03-28  6:52 ` [net 1/4] e1000: fix vlan processing regression Jeff Kirsher
  2012-03-28  6:52 ` [net 2/4] intel: make wired ethernet driver message level consistent (rev2) Jeff Kirsher
@ 2012-03-28  6:52 ` Jeff Kirsher
  2012-03-28  6:52 ` [net 4/4] ixgbe: update version number Jeff Kirsher
  2012-03-28  7:04 ` [net 0/4][pull request] Intel Wired LAN Driver Updates David Miller
  4 siblings, 0 replies; 12+ messages in thread
From: Jeff Kirsher @ 2012-03-28  6:52 UTC (permalink / raw)
  To: davem; +Cc: Don Skidmore, netdev, gospo, sassmann, Xiaojun Zhang, Jeff Kirsher

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

This was pointed out to me by Xiaojun Zhang on Source Forge.

CC: Xiaojun Zhang <zhangxiaojun@sourceforge.net>
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.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
index 80e26ff..74e1921 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
@@ -544,7 +544,7 @@ struct ixgbe_fdir_filter {
 	u16 action;
 };
 
-enum ixbge_state_t {
+enum ixgbe_state_t {
 	__IXGBE_TESTING,
 	__IXGBE_RESETTING,
 	__IXGBE_DOWN,
-- 
1.7.7.6

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

* [net 4/4] ixgbe: update version number
  2012-03-28  6:52 [net 0/4][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (2 preceding siblings ...)
  2012-03-28  6:52 ` [net 3/4] ixgbe: fix typo in enumeration name Jeff Kirsher
@ 2012-03-28  6:52 ` Jeff Kirsher
  2012-03-28  7:04 ` [net 0/4][pull request] Intel Wired LAN Driver Updates David Miller
  4 siblings, 0 replies; 12+ messages in thread
From: Jeff Kirsher @ 2012-03-28  6:52 UTC (permalink / raw)
  To: davem; +Cc: Don Skidmore, netdev, gospo, sassmann, Jeff Kirsher

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

Update the driver version number to better match version of out of tree
driver that has similar functionality.

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_main.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 6dbad2b..3e26b1f 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -63,8 +63,8 @@ static char ixgbe_default_device_descr[] =
 			      "Intel(R) 10 Gigabit Network Connection";
 #endif
 #define MAJ 3
-#define MIN 6
-#define BUILD 7
+#define MIN 8
+#define BUILD 21
 #define DRV_VERSION __stringify(MAJ) "." __stringify(MIN) "." \
 	__stringify(BUILD) "-k"
 const char ixgbe_driver_version[] = DRV_VERSION;
-- 
1.7.7.6

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

* Re: [net 0/4][pull request] Intel Wired LAN Driver Updates
  2012-03-28  6:52 [net 0/4][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (3 preceding siblings ...)
  2012-03-28  6:52 ` [net 4/4] ixgbe: update version number Jeff Kirsher
@ 2012-03-28  7:04 ` David Miller
  4 siblings, 0 replies; 12+ messages in thread
From: David Miller @ 2012-03-28  7:04 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 27 Mar 2012 23:52:24 -0700

> This series of patches contains fixes for e1000, igb, igbvf, ixgb,
> ixgbe and ixgbevf.
> 
> The following are changes since commit cc3425cdc04206f3c8b9efb2c693e89aa3cd9ec7:
>   Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master

Pulled, thanks Jeff.

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

* [3.2.y] e1000: fix vlan processing regression
  2012-03-28  6:52 ` [net 1/4] e1000: fix vlan processing regression Jeff Kirsher
@ 2012-10-24  1:21   ` Jonathan Nieder
  2012-10-27 23:11     ` Ben Hutchings
  0 siblings, 1 reply; 12+ messages in thread
From: Jonathan Nieder @ 2012-10-24  1:21 UTC (permalink / raw)
  To: David Miller
  Cc: Jeff Kirsher, Jiri Pirko, netdev, Andy Gospodarek, sassmann,
	Andrey Jr. Melnikov, stable

From: Jiri Pirko <jpirko@redhat.com>
Date: Tue, 20 Mar 2012 18:10:01 +0000

commit 52f5509fe8ccb607ff9b84ad618f244262336475 upstream.

This patch fixes a regression introduced by commit "e1000: do vlan
cleanup (799d531)".

Apparently some e1000 chips (not mine) are sensitive about the order of
setting vlan filter and vlan stripping/inserting functionality. So this
patch changes the order so it's the same as before vlan cleanup.

Reported-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Tested-by: Ben Greear <greearb@candelatech.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Tested-by: Andrey Jr. Melnikov <temnota@kmv.ru>
---
Hi Dave,

Would

 52f5509fe8cc e1000: fix vlan processing regression, 2012-03-20

be ok for 3.2.y?

It doesn't apply cleanly to kernels before v3.3-rc1~182^2~581 (net:
introduce and use netdev_features_t for device features sets) but a
backport is straightforward.  The patch is already in 3.3.y as
v3.3.6~52 (2012-05-12).  3.0.y doesn't need this because it doesn't
have 799d531.

Andrey (cc-ed) tested[1] this patch against a 3.2.23-based kernel and
found it to work ok.

Thoughts of all kinds welcome, as always.

Thanks,
Jonathan

[1] http://bugs.debian.org/690956

 drivers/net/ethernet/intel/e1000/e1000_main.c | 76 +++++++++++++++------------
 1 file changed, 42 insertions(+), 34 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
index c5f6b0e60c39..6546191a5951 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -168,6 +168,8 @@ static int e1000_82547_fifo_workaround(struct e1000_adapter *adapter,
 
 static bool e1000_vlan_used(struct e1000_adapter *adapter);
 static void e1000_vlan_mode(struct net_device *netdev, u32 features);
+static void e1000_vlan_filter_on_off(struct e1000_adapter *adapter,
+				     bool filter_on);
 static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid);
 static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid);
 static void e1000_restore_vlan(struct e1000_adapter *adapter);
@@ -1219,7 +1221,7 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
 	if (err)
 		goto err_register;
 
-	e1000_vlan_mode(netdev, netdev->features);
+	e1000_vlan_filter_on_off(adapter, false);
 
 	/* print bus type/speed/width info */
 	e_info(probe, "(PCI%s:%dMHz:%d-bit) %pM\n",
@@ -4553,43 +4555,11 @@ static bool e1000_vlan_used(struct e1000_adapter *adapter)
 	return false;
 }
 
-static void e1000_vlan_filter_on_off(struct e1000_adapter *adapter,
-				     bool filter_on)
+static void __e1000_vlan_mode(struct e1000_adapter *adapter, u32 features)
 {
 	struct e1000_hw *hw = &adapter->hw;
-	u32 rctl;
-
-	if (!test_bit(__E1000_DOWN, &adapter->flags))
-		e1000_irq_disable(adapter);
-
-	if (filter_on) {
-		/* enable VLAN receive filtering */
-		rctl = er32(RCTL);
-		rctl &= ~E1000_RCTL_CFIEN;
-		if (!(adapter->netdev->flags & IFF_PROMISC))
-			rctl |= E1000_RCTL_VFE;
-		ew32(RCTL, rctl);
-		e1000_update_mng_vlan(adapter);
-	} else {
-		/* disable VLAN receive filtering */
-		rctl = er32(RCTL);
-		rctl &= ~E1000_RCTL_VFE;
-		ew32(RCTL, rctl);
-	}
-
-	if (!test_bit(__E1000_DOWN, &adapter->flags))
-		e1000_irq_enable(adapter);
-}
-
-static void e1000_vlan_mode(struct net_device *netdev, u32 features)
-{
-	struct e1000_adapter *adapter = netdev_priv(netdev);
-	struct e1000_hw *hw = &adapter->hw;
 	u32 ctrl;
 
-	if (!test_bit(__E1000_DOWN, &adapter->flags))
-		e1000_irq_disable(adapter);
-
 	ctrl = er32(CTRL);
 	if (features & NETIF_F_HW_VLAN_RX) {
 		/* enable VLAN tag insert/strip */
@@ -4599,6 +4569,44 @@ static void e1000_vlan_mode(struct net_device *netdev, u32 features)
 		ctrl &= ~E1000_CTRL_VME;
 	}
 	ew32(CTRL, ctrl);
+}
+static void e1000_vlan_filter_on_off(struct e1000_adapter *adapter,
+				     bool filter_on)
+{
+	struct e1000_hw *hw = &adapter->hw;
+	u32 rctl;
+
+	if (!test_bit(__E1000_DOWN, &adapter->flags))
+		e1000_irq_disable(adapter);
+
+	__e1000_vlan_mode(adapter, adapter->netdev->features);
+	if (filter_on) {
+		/* enable VLAN receive filtering */
+		rctl = er32(RCTL);
+		rctl &= ~E1000_RCTL_CFIEN;
+		if (!(adapter->netdev->flags & IFF_PROMISC))
+			rctl |= E1000_RCTL_VFE;
+		ew32(RCTL, rctl);
+		e1000_update_mng_vlan(adapter);
+	} else {
+		/* disable VLAN receive filtering */
+		rctl = er32(RCTL);
+		rctl &= ~E1000_RCTL_VFE;
+		ew32(RCTL, rctl);
+	}
+
+	if (!test_bit(__E1000_DOWN, &adapter->flags))
+		e1000_irq_enable(adapter);
+}
+
+static void e1000_vlan_mode(struct net_device *netdev, u32 features)
+{
+	struct e1000_adapter *adapter = netdev_priv(netdev);
+
+	if (!test_bit(__E1000_DOWN, &adapter->flags))
+		e1000_irq_disable(adapter);
+
+	__e1000_vlan_mode(adapter, features);
 
 	if (!test_bit(__E1000_DOWN, &adapter->flags))
 		e1000_irq_enable(adapter);
-- 
1.8.0.rc2

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

* Re: [3.2.y] e1000: fix vlan processing regression
  2012-10-24  1:21   ` [3.2.y] " Jonathan Nieder
@ 2012-10-27 23:11     ` Ben Hutchings
  0 siblings, 0 replies; 12+ messages in thread
From: Ben Hutchings @ 2012-10-27 23:11 UTC (permalink / raw)
  To: Jonathan Nieder
  Cc: David Miller, Jeff Kirsher, Jiri Pirko, netdev, Andy Gospodarek,
	sassmann, Andrey Jr. Melnikov, stable

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

On Tue, 2012-10-23 at 18:21 -0700, Jonathan Nieder wrote:
> From: Jiri Pirko <jpirko@redhat.com>
> Date: Tue, 20 Mar 2012 18:10:01 +0000
> 
> commit 52f5509fe8ccb607ff9b84ad618f244262336475 upstream.
> 
> This patch fixes a regression introduced by commit "e1000: do vlan
> cleanup (799d531)".
> 
> Apparently some e1000 chips (not mine) are sensitive about the order of
> setting vlan filter and vlan stripping/inserting functionality. So this
> patch changes the order so it's the same as before vlan cleanup.
[...]

Added to the queue, thanks.

Ben.

-- 
Ben Hutchings
Reality is just a crutch for people who can't handle science fiction.

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

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

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

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Mon,  5 May 2014 13:07:36 -0700

> This series contains updates to e1000e only.
> 
> David provides four fixes for e1000e, first is a workaround for a hardware
> erratum on 82579 devices which experienced packet loss in gigabit and 100
> speeds when interconnect between the PHY and MAC is exiting K1 power saving
> state.  Second expands the scope of a workaround to include i217 and i218
> parts as well to address over aggressive transmit behavior when connecting
> at 10Mbs half-duplex.  Next is to resolve a reported link flap issue on
> 82579 parts which was root caused as an interoperability problem between
> 82579 and at least some Broadcom PHYs in the Energy Efficient Ethernet wake
> mechanism.  Lastly, restricts the workaround of putting the PHY into MDIO
> slow mode to access the PHY id to relevant parts since this issue has been
> fixed on the newer hardware.
> 
> The following are changes since commit 9d4619c492c84e4c1e6d7127f1cbf55da04599d0:
>   Altera TSE: ALTERA_TSE should depend on HAS_DMA
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master

Pulled, thanks Jeff.

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

* [net 0/4][pull request] Intel Wired LAN Driver Updates
@ 2014-05-05 20:07 Jeff Kirsher
  2014-05-05 20:31 ` David Miller
  0 siblings, 1 reply; 12+ messages in thread
From: Jeff Kirsher @ 2014-05-05 20:07 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

This series contains updates to e1000e only.

David provides four fixes for e1000e, first is a workaround for a hardware
erratum on 82579 devices which experienced packet loss in gigabit and 100
speeds when interconnect between the PHY and MAC is exiting K1 power saving
state.  Second expands the scope of a workaround to include i217 and i218
parts as well to address over aggressive transmit behavior when connecting
at 10Mbs half-duplex.  Next is to resolve a reported link flap issue on
82579 parts which was root caused as an interoperability problem between
82579 and at least some Broadcom PHYs in the Energy Efficient Ethernet wake
mechanism.  Lastly, restricts the workaround of putting the PHY into MDIO
slow mode to access the PHY id to relevant parts since this issue has been
fixed on the newer hardware.

The following are changes since commit 9d4619c492c84e4c1e6d7127f1cbf55da04599d0:
  Altera TSE: ALTERA_TSE should depend on HAS_DMA
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master

David Ertman (4):
  e1000e: Workaround for dropped packets in Gig/100 speeds on 82579
  e1000e: Expand workaround for 10Mb HD throughput bug
  e1000e: Fix issue with link flap on 82579
  e1000e: Restrict MDIO Slow Mode workaround to relevant parts

 drivers/net/ethernet/intel/e1000e/ich8lan.c | 71 +++++++++++++++++------------
 drivers/net/ethernet/intel/e1000e/ich8lan.h |  3 ++
 drivers/net/ethernet/intel/e1000e/phy.h     |  1 +
 3 files changed, 46 insertions(+), 29 deletions(-)

-- 
1.9.0

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

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

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue,  5 Mar 2013 01:48:33 -0800

> This series contains fixes to e1000e and igb.
> 
> The e1000e fix resolves an issue at 1000Mbps link speed, where one of the
> MAC's internal clocks can be stopped for up to 4us when entering K1 (a
> power mode of the MAC-PHY interconnect).  If the MAC is waiting for
> completion indications for 2 DMA write requests into Host memory
> (e.g. descriptor writeback or Rx packet writing) and the
> indications occur while the clock is stopped, both indications will be
> missed by the MAC causing the MAC to wait for the completion indications
> and be unable to generate further DMA write requests.  This results in an
> apparent hardware hang.  The patch works-around the issue by disabling
> the de-assertion of the clock request when 1000Mbps link is acquired (K1
> must be disabled while doing this).
> 
> The igb fix to drop BUILD_BUG_ON check from igb_build_rx_buffer resolves
> a build error on s390 devices.  The igb driver was throwing a build error
> due to the fact that a frame built using build_skb would be larger than 2K.
> Since this is not likely to change at any point in the future we are better
> off just dropping the check since we already had a check in
> igb_set_rx_buffer_len that will just disable the usage of build_skb anyway.
> 
> The igb fix for i210 link setup changes the setup copper link function
> to use a switch statement, so that the appropriate setup link function
> is called for the given PHY types.
> 
> Lastly, the igb fix for a lockdep issue in igb_get_i2c_client resolves
> the issue by re-factoring the initialization and usage of the i2c_client.

Pulled, thanks Jeff.

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

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

This series contains fixes to e1000e and igb.

The e1000e fix resolves an issue at 1000Mbps link speed, where one of the
MAC's internal clocks can be stopped for up to 4us when entering K1 (a
power mode of the MAC-PHY interconnect).  If the MAC is waiting for
completion indications for 2 DMA write requests into Host memory
(e.g. descriptor writeback or Rx packet writing) and the
indications occur while the clock is stopped, both indications will be
missed by the MAC causing the MAC to wait for the completion indications
and be unable to generate further DMA write requests.  This results in an
apparent hardware hang.  The patch works-around the issue by disabling
the de-assertion of the clock request when 1000Mbps link is acquired (K1
must be disabled while doing this).

The igb fix to drop BUILD_BUG_ON check from igb_build_rx_buffer resolves
a build error on s390 devices.  The igb driver was throwing a build error
due to the fact that a frame built using build_skb would be larger than 2K.
Since this is not likely to change at any point in the future we are better
off just dropping the check since we already had a check in
igb_set_rx_buffer_len that will just disable the usage of build_skb anyway.

The igb fix for i210 link setup changes the setup copper link function
to use a switch statement, so that the appropriate setup link function
is called for the given PHY types.

Lastly, the igb fix for a lockdep issue in igb_get_i2c_client resolves
the issue by re-factoring the initialization and usage of the i2c_client.

The following are changes since commit aab2b4bf224ef8358d262f95b568b8ad0cecf0a0:
  tcp: fix double-counted receiver RTT when leaving receiver fast path
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master

Alexander Duyck (1):
  igb: Drop BUILD_BUG_ON check from igb_build_rx_buffer

Bruce Allan (1):
  e1000e: workaround DMA unit hang on I218

Carolyn Wyborny (2):
  igb: Fix link setup for I210 devices
  igb: Fix for lockdep issue in igb_get_i2c_client

 drivers/net/ethernet/intel/e1000e/ich8lan.c  | 71 +++++++++++++++++++++++++-
 drivers/net/ethernet/intel/e1000e/ich8lan.h  |  2 +
 drivers/net/ethernet/intel/e1000e/regs.h     |  1 +
 drivers/net/ethernet/intel/igb/e1000_82575.c | 11 ++--
 drivers/net/ethernet/intel/igb/igb.h         |  2 +-
 drivers/net/ethernet/intel/igb/igb_hwmon.c   | 14 +++++
 drivers/net/ethernet/intel/igb/igb_main.c    | 76 +---------------------------
 7 files changed, 98 insertions(+), 79 deletions(-)

-- 
1.7.11.7

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

end of thread, other threads:[~2014-05-05 20:31 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-28  6:52 [net 0/4][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2012-03-28  6:52 ` [net 1/4] e1000: fix vlan processing regression Jeff Kirsher
2012-10-24  1:21   ` [3.2.y] " Jonathan Nieder
2012-10-27 23:11     ` Ben Hutchings
2012-03-28  6:52 ` [net 2/4] intel: make wired ethernet driver message level consistent (rev2) Jeff Kirsher
2012-03-28  6:52 ` [net 3/4] ixgbe: fix typo in enumeration name Jeff Kirsher
2012-03-28  6:52 ` [net 4/4] ixgbe: update version number Jeff Kirsher
2012-03-28  7:04 ` [net 0/4][pull request] Intel Wired LAN Driver Updates David Miller
2013-03-05  9:48 Jeff Kirsher
2013-03-06  4:42 ` David Miller
2014-05-05 20:07 Jeff Kirsher
2014-05-05 20:31 ` David Miller

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