All of lore.kernel.org
 help / color / mirror / Atom feed
* [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29
@ 2019-10-30  4:36 Jeff Kirsher
  2019-10-30  4:36 ` [net-next 1/8] e1000e: Add support for Comet Lake Jeff Kirsher
                   ` (8 more replies)
  0 siblings, 9 replies; 18+ messages in thread
From: Jeff Kirsher @ 2019-10-30  4:36 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, nhorman, sassmann

This series contains updates to e1000e, igb, ixgbe and i40e drivers.

Sasha adds support for Intel client platforms Comet Lake and Tiger Lake
to the e1000e driver.  Also adds a fix for a compiler warning that was
recently introduced, when CONFIG_PM_SLEEP is not defined, so wrap the
code that requires this kernel configuration to be defined.

Alex fixes a potential race condition between network configuration and
power management for e1000e, which is similar to a past issue in the igb
driver.  Also provided a bit of code cleanup since the driver no longer
checks for __E1000_DOWN.

Josh Hunt adds UDP segmentation offload support for igb, ixgbe and i40e.

The following are changes since commit 199f3ac319554f1ffddcc8e832448843f073d4c7:
  ionic: Remove set but not used variable 'sg_desc'
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue 1GbE

Alexander Duyck (2):
  e1000e: Use rtnl_lock to prevent race conditions between net and
    pci/pm
  e1000e: Drop unnecessary __E1000_DOWN bit twiddling

Josh Hunt (3):
  igb: Add UDP segmentation offload support
  ixgbe: Add UDP segmentation offload support
  i40e: Add UDP segmentation offload support

Sasha Neftin (3):
  e1000e: Add support for Comet Lake
  e1000e: Add support for Tiger Lake
  e1000e: Fix compiler warning when CONFIG_PM_SLEEP is not set

 drivers/net/ethernet/intel/e1000e/ethtool.c   |  4 +-
 drivers/net/ethernet/intel/e1000e/hw.h        | 12 +++
 drivers/net/ethernet/intel/e1000e/ich8lan.c   |  7 ++
 drivers/net/ethernet/intel/e1000e/netdev.c    | 91 +++++++++++--------
 drivers/net/ethernet/intel/e1000e/ptp.c       |  2 +
 drivers/net/ethernet/intel/i40e/i40e_main.c   |  1 +
 drivers/net/ethernet/intel/i40e/i40e_txrx.c   | 12 ++-
 drivers/net/ethernet/intel/igb/e1000_82575.h  |  1 +
 drivers/net/ethernet/intel/igb/igb_main.c     | 23 +++--
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 24 +++--
 10 files changed, 122 insertions(+), 55 deletions(-)

-- 
2.21.0


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

* [net-next 1/8] e1000e: Add support for Comet Lake
  2019-10-30  4:36 [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29 Jeff Kirsher
@ 2019-10-30  4:36 ` Jeff Kirsher
  2019-10-30  4:36 ` [net-next 2/8] e1000e: Use rtnl_lock to prevent race conditions between net and pci/pm Jeff Kirsher
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Jeff Kirsher @ 2019-10-30  4:36 UTC (permalink / raw)
  To: davem; +Cc: Sasha Neftin, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Sasha Neftin <sasha.neftin@intel.com>

Add devices ID's for the next LOM generations that will be
available on the next Intel Client platform (Comet Lake)
This patch provides the initial support for these devices

Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/hw.h     | 6 ++++++
 drivers/net/ethernet/intel/e1000e/netdev.c | 6 ++++++
 2 files changed, 12 insertions(+)

diff --git a/drivers/net/ethernet/intel/e1000e/hw.h b/drivers/net/ethernet/intel/e1000e/hw.h
index eff75bd8a8f0..11fdc27faa82 100644
--- a/drivers/net/ethernet/intel/e1000e/hw.h
+++ b/drivers/net/ethernet/intel/e1000e/hw.h
@@ -86,6 +86,12 @@ struct e1000_hw;
 #define E1000_DEV_ID_PCH_ICP_I219_V8		0x15E0
 #define E1000_DEV_ID_PCH_ICP_I219_LM9		0x15E1
 #define E1000_DEV_ID_PCH_ICP_I219_V9		0x15E2
+#define E1000_DEV_ID_PCH_CMP_I219_LM10		0x0D4E
+#define E1000_DEV_ID_PCH_CMP_I219_V10		0x0D4F
+#define E1000_DEV_ID_PCH_CMP_I219_LM11		0x0D4C
+#define E1000_DEV_ID_PCH_CMP_I219_V11		0x0D4D
+#define E1000_DEV_ID_PCH_CMP_I219_LM12		0x0D53
+#define E1000_DEV_ID_PCH_CMP_I219_V12		0x0D55
 
 #define E1000_REVISION_4	4
 
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 42f57ab8fb8e..731e1b3e103a 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -7749,6 +7749,12 @@ static const struct pci_device_id e1000_pci_tbl[] = {
 	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ICP_I219_V8), board_pch_cnp },
 	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ICP_I219_LM9), board_pch_cnp },
 	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ICP_I219_V9), board_pch_cnp },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_LM10), board_pch_cnp },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V10), board_pch_cnp },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_LM11), board_pch_cnp },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V11), board_pch_cnp },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_LM12), board_pch_spt },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V12), board_pch_spt },
 
 	{ 0, 0, 0, 0, 0, 0, 0 }	/* terminate list */
 };
-- 
2.21.0


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

* [net-next 2/8] e1000e: Use rtnl_lock to prevent race conditions between net and pci/pm
  2019-10-30  4:36 [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29 Jeff Kirsher
  2019-10-30  4:36 ` [net-next 1/8] e1000e: Add support for Comet Lake Jeff Kirsher
@ 2019-10-30  4:36 ` Jeff Kirsher
  2019-10-30  5:50   ` Joe Perches
  2019-10-30  4:36 ` [net-next 3/8] e1000e: Drop unnecessary __E1000_DOWN bit twiddling Jeff Kirsher
                   ` (6 subsequent siblings)
  8 siblings, 1 reply; 18+ messages in thread
From: Jeff Kirsher @ 2019-10-30  4:36 UTC (permalink / raw)
  To: davem
  Cc: Alexander Duyck, netdev, nhorman, sassmann, Morumuri Srivalli,
	David Dai, Aaron Brown

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

This patch is meant to address possible race conditions that can exist
between network configuration and power management. A similar issue was
fixed for igb in commit 9474933caf21 ("igb: close/suspend race in
netif_device_detach").

In addition it consolidates the code so that the PCI error handling code
will essentially perform the power management freeze on the device prior to
attempting a reset, and will thaw the device afterwards if that is what it
is planning to do. Otherwise when we call close on the interface it should
see it is detached and not attempt to call the logic to down the interface
and free the IRQs again.

From what I can tell the check that was adding the check for __E1000_DOWN
in e1000e_close was added when runtime power management was added. However
it should not be relevant for us as we perform a call to
pm_runtime_get_sync before we call e1000_down/free_irq so it should always
be back up before we call into this anyway.

Reported-by: Morumuri Srivalli <smorumu1@in.ibm.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Tested-by: David Dai <zdai@linux.vnet.ibm.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
---
 drivers/net/ethernet/intel/e1000e/netdev.c | 68 +++++++++++-----------
 1 file changed, 35 insertions(+), 33 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 731e1b3e103a..b6b1cdf98096 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -4715,12 +4715,12 @@ int e1000e_close(struct net_device *netdev)
 
 	pm_runtime_get_sync(&pdev->dev);
 
-	if (!test_bit(__E1000_DOWN, &adapter->state)) {
+	if (netif_device_present(netdev)) {
 		e1000e_down(adapter, true);
 		e1000_free_irq(adapter);
 
 		/* Link status message must follow this format */
-		pr_info("%s NIC Link is Down\n", adapter->netdev->name);
+		pr_info("%s NIC Link is Down\n", netdev->name);
 	}
 
 	napi_disable(&adapter->napi);
@@ -6466,10 +6466,14 @@ static int e1000e_pm_freeze(struct device *dev)
 {
 	struct net_device *netdev = dev_get_drvdata(dev);
 	struct e1000_adapter *adapter = netdev_priv(netdev);
+	bool present;
 
+	rtnl_lock();
+
+	present = netif_device_present(netdev);
 	netif_device_detach(netdev);
 
-	if (netif_running(netdev)) {
+	if (present && netif_running(netdev)) {
 		int count = E1000_CHECK_RESET_COUNT;
 
 		while (test_bit(__E1000_RESETTING, &adapter->state) && count--)
@@ -6481,6 +6485,8 @@ static int e1000e_pm_freeze(struct device *dev)
 		e1000e_down(adapter, false);
 		e1000_free_irq(adapter);
 	}
+	rtnl_unlock();
+
 	e1000e_reset_interrupt_capability(adapter);
 
 	/* Allow time for pending master requests to run */
@@ -6728,6 +6734,30 @@ static void e1000e_disable_aspm_locked(struct pci_dev *pdev, u16 state)
 	__e1000e_disable_aspm(pdev, state, 1);
 }
 
+static int e1000e_pm_thaw(struct device *dev)
+{
+	struct net_device *netdev = dev_get_drvdata(dev);
+	struct e1000_adapter *adapter = netdev_priv(netdev);
+	int rc = 0;
+
+	e1000e_set_interrupt_capability(adapter);
+
+	rtnl_lock();
+	if (netif_running(netdev)) {
+		rc = e1000_request_irq(adapter);
+		if (rc)
+			goto err_irq;
+
+		e1000e_up(adapter);
+	}
+
+	netif_device_attach(netdev);
+err_irq:
+	rtnl_unlock();
+
+	return rc;
+}
+
 #ifdef CONFIG_PM
 static int __e1000_resume(struct pci_dev *pdev)
 {
@@ -6795,26 +6825,6 @@ static int __e1000_resume(struct pci_dev *pdev)
 }
 
 #ifdef CONFIG_PM_SLEEP
-static int e1000e_pm_thaw(struct device *dev)
-{
-	struct net_device *netdev = dev_get_drvdata(dev);
-	struct e1000_adapter *adapter = netdev_priv(netdev);
-
-	e1000e_set_interrupt_capability(adapter);
-	if (netif_running(netdev)) {
-		u32 err = e1000_request_irq(adapter);
-
-		if (err)
-			return err;
-
-		e1000e_up(adapter);
-	}
-
-	netif_device_attach(netdev);
-
-	return 0;
-}
-
 static int e1000e_pm_suspend(struct device *dev)
 {
 	struct net_device *netdev = pci_get_drvdata(to_pci_dev(dev));
@@ -7000,16 +7010,11 @@ static void e1000_netpoll(struct net_device *netdev)
 static pci_ers_result_t e1000_io_error_detected(struct pci_dev *pdev,
 						pci_channel_state_t state)
 {
-	struct net_device *netdev = pci_get_drvdata(pdev);
-	struct e1000_adapter *adapter = netdev_priv(netdev);
-
-	netif_device_detach(netdev);
+	e1000e_pm_freeze(&pdev->dev);
 
 	if (state == pci_channel_io_perm_failure)
 		return PCI_ERS_RESULT_DISCONNECT;
 
-	if (netif_running(netdev))
-		e1000e_down(adapter, true);
 	pci_disable_device(pdev);
 
 	/* Request a slot slot reset. */
@@ -7075,10 +7080,7 @@ static void e1000_io_resume(struct pci_dev *pdev)
 
 	e1000_init_manageability_pt(adapter);
 
-	if (netif_running(netdev))
-		e1000e_up(adapter);
-
-	netif_device_attach(netdev);
+	e1000e_pm_thaw(&pdev->dev);
 
 	/* If the controller has AMT, do not set DRV_LOAD until the interface
 	 * is up.  For all other cases, let the f/w know that the h/w is now
-- 
2.21.0


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

* [net-next 3/8] e1000e: Drop unnecessary __E1000_DOWN bit twiddling
  2019-10-30  4:36 [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29 Jeff Kirsher
  2019-10-30  4:36 ` [net-next 1/8] e1000e: Add support for Comet Lake Jeff Kirsher
  2019-10-30  4:36 ` [net-next 2/8] e1000e: Use rtnl_lock to prevent race conditions between net and pci/pm Jeff Kirsher
@ 2019-10-30  4:36 ` Jeff Kirsher
  2019-10-30  4:36 ` [net-next 4/8] igb: Add UDP segmentation offload support Jeff Kirsher
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Jeff Kirsher @ 2019-10-30  4:36 UTC (permalink / raw)
  To: davem
  Cc: Alexander Duyck, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

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

Since we no longer check for __E1000_DOWN in e1000e_close we can drop the
spot where we were restoring the bit. This saves us a bit of unnecessary
complexity.

Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/netdev.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index b6b1cdf98096..4aafa05287a4 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -7591,15 +7591,13 @@ static void e1000_remove(struct pci_dev *pdev)
 {
 	struct net_device *netdev = pci_get_drvdata(pdev);
 	struct e1000_adapter *adapter = netdev_priv(netdev);
-	bool down = test_bit(__E1000_DOWN, &adapter->state);
 
 	e1000e_ptp_remove(adapter);
 
 	/* The timers may be rescheduled, so explicitly disable them
 	 * from being rescheduled.
 	 */
-	if (!down)
-		set_bit(__E1000_DOWN, &adapter->state);
+	set_bit(__E1000_DOWN, &adapter->state);
 	del_timer_sync(&adapter->phy_info_timer);
 
 	cancel_work_sync(&adapter->reset_task);
@@ -7619,9 +7617,6 @@ static void e1000_remove(struct pci_dev *pdev)
 		}
 	}
 
-	/* Don't lie to e1000_close() down the road. */
-	if (!down)
-		clear_bit(__E1000_DOWN, &adapter->state);
 	unregister_netdev(netdev);
 
 	if (pci_dev_run_wake(pdev))
-- 
2.21.0


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

* [net-next 4/8] igb: Add UDP segmentation offload support
  2019-10-30  4:36 [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29 Jeff Kirsher
                   ` (2 preceding siblings ...)
  2019-10-30  4:36 ` [net-next 3/8] e1000e: Drop unnecessary __E1000_DOWN bit twiddling Jeff Kirsher
@ 2019-10-30  4:36 ` Jeff Kirsher
  2019-10-30  4:36 ` [net-next 5/8] ixgbe: " Jeff Kirsher
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Jeff Kirsher @ 2019-10-30  4:36 UTC (permalink / raw)
  To: davem
  Cc: Josh Hunt, netdev, nhorman, sassmann, Alexander Duyck,
	Willem de Bruijn, Aaron Brown, Jeff Kirsher

From: Josh Hunt <johunt@akamai.com>

Based on a series from Alexander Duyck this change adds UDP segmentation
offload support to the igb driver.

CC: Alexander Duyck <alexander.h.duyck@intel.com>
CC: Willem de Bruijn <willemb@google.com>
Signed-off-by: Josh Hunt <johunt@akamai.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/igb/e1000_82575.h |  1 +
 drivers/net/ethernet/intel/igb/igb_main.c    | 23 +++++++++++++++-----
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/intel/igb/e1000_82575.h b/drivers/net/ethernet/intel/igb/e1000_82575.h
index 6ad775b1a4c5..63ec253ac788 100644
--- a/drivers/net/ethernet/intel/igb/e1000_82575.h
+++ b/drivers/net/ethernet/intel/igb/e1000_82575.h
@@ -127,6 +127,7 @@ struct e1000_adv_tx_context_desc {
 };
 
 #define E1000_ADVTXD_MACLEN_SHIFT    9  /* Adv ctxt desc mac len shift */
+#define E1000_ADVTXD_TUCMD_L4T_UDP 0x00000000  /* L4 Packet TYPE of UDP */
 #define E1000_ADVTXD_TUCMD_IPV4    0x00000400  /* IP Packet Type: 1=IPv4 */
 #define E1000_ADVTXD_TUCMD_L4T_TCP 0x00000800  /* L4 Packet TYPE of TCP */
 #define E1000_ADVTXD_TUCMD_L4T_SCTP 0x00001000 /* L4 packet TYPE of SCTP */
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 105b0624081a..b65e8a063aef 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -2516,6 +2516,7 @@ igb_features_check(struct sk_buff *skb, struct net_device *dev,
 	if (unlikely(mac_hdr_len > IGB_MAX_MAC_HDR_LEN))
 		return features & ~(NETIF_F_HW_CSUM |
 				    NETIF_F_SCTP_CRC |
+				    NETIF_F_GSO_UDP_L4 |
 				    NETIF_F_HW_VLAN_CTAG_TX |
 				    NETIF_F_TSO |
 				    NETIF_F_TSO6);
@@ -2524,6 +2525,7 @@ igb_features_check(struct sk_buff *skb, struct net_device *dev,
 	if (unlikely(network_hdr_len >  IGB_MAX_NETWORK_HDR_LEN))
 		return features & ~(NETIF_F_HW_CSUM |
 				    NETIF_F_SCTP_CRC |
+				    NETIF_F_GSO_UDP_L4 |
 				    NETIF_F_TSO |
 				    NETIF_F_TSO6);
 
@@ -3120,7 +3122,7 @@ static int igb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 			    NETIF_F_HW_CSUM;
 
 	if (hw->mac.type >= e1000_82576)
-		netdev->features |= NETIF_F_SCTP_CRC;
+		netdev->features |= NETIF_F_SCTP_CRC | NETIF_F_GSO_UDP_L4;
 
 	if (hw->mac.type >= e1000_i350)
 		netdev->features |= NETIF_F_HW_TC;
@@ -5694,6 +5696,7 @@ static int igb_tso(struct igb_ring *tx_ring,
 	} ip;
 	union {
 		struct tcphdr *tcp;
+		struct udphdr *udp;
 		unsigned char *hdr;
 	} l4;
 	u32 paylen, l4_offset;
@@ -5713,7 +5716,8 @@ static int igb_tso(struct igb_ring *tx_ring,
 	l4.hdr = skb_checksum_start(skb);
 
 	/* ADV DTYP TUCMD MKRLOC/ISCSIHEDLEN */
-	type_tucmd = E1000_ADVTXD_TUCMD_L4T_TCP;
+	type_tucmd = (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4) ?
+		      E1000_ADVTXD_TUCMD_L4T_UDP : E1000_ADVTXD_TUCMD_L4T_TCP;
 
 	/* initialize outer IP header fields */
 	if (ip.v4->version == 4) {
@@ -5741,12 +5745,19 @@ static int igb_tso(struct igb_ring *tx_ring,
 	/* determine offset of inner transport header */
 	l4_offset = l4.hdr - skb->data;
 
-	/* compute length of segmentation header */
-	*hdr_len = (l4.tcp->doff * 4) + l4_offset;
-
 	/* remove payload length from inner checksum */
 	paylen = skb->len - l4_offset;
-	csum_replace_by_diff(&l4.tcp->check, htonl(paylen));
+	if (type_tucmd & E1000_ADVTXD_TUCMD_L4T_TCP) {
+		/* compute length of segmentation header */
+		*hdr_len = (l4.tcp->doff * 4) + l4_offset;
+		csum_replace_by_diff(&l4.tcp->check,
+			(__force __wsum)htonl(paylen));
+	} else {
+		/* compute length of segmentation header */
+		*hdr_len = sizeof(*l4.udp) + l4_offset;
+		csum_replace_by_diff(&l4.udp->check,
+				     (__force __wsum)htonl(paylen));
+	}
 
 	/* update gso size and bytecount with header size */
 	first->gso_segs = skb_shinfo(skb)->gso_segs;
-- 
2.21.0


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

* [net-next 5/8] ixgbe: Add UDP segmentation offload support
  2019-10-30  4:36 [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29 Jeff Kirsher
                   ` (3 preceding siblings ...)
  2019-10-30  4:36 ` [net-next 4/8] igb: Add UDP segmentation offload support Jeff Kirsher
@ 2019-10-30  4:36 ` Jeff Kirsher
  2019-10-30  4:36 ` [net-next 6/8] i40e: " Jeff Kirsher
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Jeff Kirsher @ 2019-10-30  4:36 UTC (permalink / raw)
  To: davem
  Cc: Josh Hunt, netdev, nhorman, sassmann, Alexander Duyck,
	Willem de Bruijn, Andrew Bowers, Jeff Kirsher

From: Josh Hunt <johunt@akamai.com>

Repost from a series by Alexander Duyck to add UDP segmentation offload
support to the igb driver:
https://lore.kernel.org/netdev/20180504003916.4769.66271.stgit@localhost.localdomain/

CC: Alexander Duyck <alexander.h.duyck@intel.com>
CC: Willem de Bruijn <willemb@google.com>
Suggested-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Josh Hunt <johunt@akamai.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 24 ++++++++++++++-----
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 1ce2397306b9..6c9edd272c7a 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -7946,6 +7946,7 @@ static int ixgbe_tso(struct ixgbe_ring *tx_ring,
 	} ip;
 	union {
 		struct tcphdr *tcp;
+		struct udphdr *udp;
 		unsigned char *hdr;
 	} l4;
 	u32 paylen, l4_offset;
@@ -7969,7 +7970,8 @@ static int ixgbe_tso(struct ixgbe_ring *tx_ring,
 	l4.hdr = skb_checksum_start(skb);
 
 	/* ADV DTYP TUCMD MKRLOC/ISCSIHEDLEN */
-	type_tucmd = IXGBE_ADVTXD_TUCMD_L4T_TCP;
+	type_tucmd = (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4) ?
+		      IXGBE_ADVTXD_TUCMD_L4T_UDP : IXGBE_ADVTXD_TUCMD_L4T_TCP;
 
 	/* initialize outer IP header fields */
 	if (ip.v4->version == 4) {
@@ -7999,12 +8001,20 @@ static int ixgbe_tso(struct ixgbe_ring *tx_ring,
 	/* determine offset of inner transport header */
 	l4_offset = l4.hdr - skb->data;
 
-	/* compute length of segmentation header */
-	*hdr_len = (l4.tcp->doff * 4) + l4_offset;
-
 	/* remove payload length from inner checksum */
 	paylen = skb->len - l4_offset;
-	csum_replace_by_diff(&l4.tcp->check, (__force __wsum)htonl(paylen));
+
+	if (type_tucmd & IXGBE_ADVTXD_TUCMD_L4T_TCP) {
+		/* compute length of segmentation header */
+		*hdr_len = (l4.tcp->doff * 4) + l4_offset;
+		csum_replace_by_diff(&l4.tcp->check,
+				     (__force __wsum)htonl(paylen));
+	} else {
+		/* compute length of segmentation header */
+		*hdr_len = sizeof(*l4.udp) + l4_offset;
+		csum_replace_by_diff(&l4.udp->check,
+				     (__force __wsum)htonl(paylen));
+	}
 
 	/* update gso size and bytecount with header size */
 	first->gso_segs = skb_shinfo(skb)->gso_segs;
@@ -10190,6 +10200,7 @@ ixgbe_features_check(struct sk_buff *skb, struct net_device *dev,
 	if (unlikely(mac_hdr_len > IXGBE_MAX_MAC_HDR_LEN))
 		return features & ~(NETIF_F_HW_CSUM |
 				    NETIF_F_SCTP_CRC |
+				    NETIF_F_GSO_UDP_L4 |
 				    NETIF_F_HW_VLAN_CTAG_TX |
 				    NETIF_F_TSO |
 				    NETIF_F_TSO6);
@@ -10198,6 +10209,7 @@ ixgbe_features_check(struct sk_buff *skb, struct net_device *dev,
 	if (unlikely(network_hdr_len >  IXGBE_MAX_NETWORK_HDR_LEN))
 		return features & ~(NETIF_F_HW_CSUM |
 				    NETIF_F_SCTP_CRC |
+				    NETIF_F_GSO_UDP_L4 |
 				    NETIF_F_TSO |
 				    NETIF_F_TSO6);
 
@@ -10907,7 +10919,7 @@ static int ixgbe_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 			    IXGBE_GSO_PARTIAL_FEATURES;
 
 	if (hw->mac.type >= ixgbe_mac_82599EB)
-		netdev->features |= NETIF_F_SCTP_CRC;
+		netdev->features |= NETIF_F_SCTP_CRC | NETIF_F_GSO_UDP_L4;
 
 #ifdef CONFIG_IXGBE_IPSEC
 #define IXGBE_ESP_FEATURES	(NETIF_F_HW_ESP | \
-- 
2.21.0


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

* [net-next 6/8] i40e: Add UDP segmentation offload support
  2019-10-30  4:36 [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29 Jeff Kirsher
                   ` (4 preceding siblings ...)
  2019-10-30  4:36 ` [net-next 5/8] ixgbe: " Jeff Kirsher
@ 2019-10-30  4:36 ` Jeff Kirsher
  2019-10-30  4:36 ` [net-next 7/8] e1000e: Add support for Tiger Lake Jeff Kirsher
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Jeff Kirsher @ 2019-10-30  4:36 UTC (permalink / raw)
  To: davem
  Cc: Josh Hunt, netdev, nhorman, sassmann, Alexander Duyck,
	Willem de Bruijn, Andrew Bowers, Jeff Kirsher

From: Josh Hunt <johunt@akamai.com>

Based on a series from Alexander Duyck this change adds UDP segmentation
offload support to the i40e driver.

CC: Alexander Duyck <alexander.h.duyck@intel.com>
CC: Willem de Bruijn <willemb@google.com>
Signed-off-by: Josh Hunt <johunt@akamai.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/i40e/i40e_main.c |  1 +
 drivers/net/ethernet/intel/i40e/i40e_txrx.c | 12 +++++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 141575ada588..b3d7edbb1389 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -12931,6 +12931,7 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
 			  NETIF_F_GSO_IPXIP6		|
 			  NETIF_F_GSO_UDP_TUNNEL	|
 			  NETIF_F_GSO_UDP_TUNNEL_CSUM	|
+			  NETIF_F_GSO_UDP_L4		|
 			  NETIF_F_SCTP_CRC		|
 			  NETIF_F_RXHASH		|
 			  NETIF_F_RXCSUM		|
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index e3f29dc8b290..b8496037ef7f 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -2960,10 +2960,16 @@ static int i40e_tso(struct i40e_tx_buffer *first, u8 *hdr_len,
 
 	/* remove payload length from inner checksum */
 	paylen = skb->len - l4_offset;
-	csum_replace_by_diff(&l4.tcp->check, (__force __wsum)htonl(paylen));
 
-	/* compute length of segmentation header */
-	*hdr_len = (l4.tcp->doff * 4) + l4_offset;
+	if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4) {
+		csum_replace_by_diff(&l4.udp->check, (__force __wsum)htonl(paylen));
+		/* compute length of segmentation header */
+		*hdr_len = sizeof(*l4.udp) + l4_offset;
+	} else {
+		csum_replace_by_diff(&l4.tcp->check, (__force __wsum)htonl(paylen));
+		/* compute length of segmentation header */
+		*hdr_len = (l4.tcp->doff * 4) + l4_offset;
+	}
 
 	/* pull values out of skb_shinfo */
 	gso_size = skb_shinfo(skb)->gso_size;
-- 
2.21.0


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

* [net-next 7/8] e1000e: Add support for Tiger Lake
  2019-10-30  4:36 [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29 Jeff Kirsher
                   ` (5 preceding siblings ...)
  2019-10-30  4:36 ` [net-next 6/8] i40e: " Jeff Kirsher
@ 2019-10-30  4:36 ` Jeff Kirsher
  2019-10-30  4:36 ` [net-next 8/8] e1000e: Fix compiler warning when CONFIG_PM_SLEEP is not set Jeff Kirsher
  2019-10-31  0:51 ` [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29 David Miller
  8 siblings, 0 replies; 18+ messages in thread
From: Jeff Kirsher @ 2019-10-30  4:36 UTC (permalink / raw)
  To: davem; +Cc: Sasha Neftin, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher

From: Sasha Neftin <sasha.neftin@intel.com>

Add devices ID's for the next LOM generations that will be
available on the next Intel Client platform (Tiger Lake)
This patch provides the initial support for these devices

Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/ethtool.c | 4 +++-
 drivers/net/ethernet/intel/e1000e/hw.h      | 6 ++++++
 drivers/net/ethernet/intel/e1000e/ich8lan.c | 7 +++++++
 drivers/net/ethernet/intel/e1000e/netdev.c  | 8 ++++++++
 drivers/net/ethernet/intel/e1000e/ptp.c     | 2 ++
 5 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c
index de8c5818a305..adce7e319b9e 100644
--- a/drivers/net/ethernet/intel/e1000e/ethtool.c
+++ b/drivers/net/ethernet/intel/e1000e/ethtool.c
@@ -894,8 +894,9 @@ static int e1000_reg_test(struct e1000_adapter *adapter, u64 *data)
 	case e1000_pch2lan:
 	case e1000_pch_lpt:
 	case e1000_pch_spt:
-		/* fall through */
 	case e1000_pch_cnp:
+		/* fall through */
+	case e1000_pch_tgp:
 		mask |= BIT(18);
 		break;
 	default:
@@ -1559,6 +1560,7 @@ static void e1000_loopback_cleanup(struct e1000_adapter *adapter)
 	switch (hw->mac.type) {
 	case e1000_pch_spt:
 	case e1000_pch_cnp:
+	case e1000_pch_tgp:
 		fext_nvm11 = er32(FEXTNVM11);
 		fext_nvm11 &= ~E1000_FEXTNVM11_DISABLE_MULR_FIX;
 		ew32(FEXTNVM11, fext_nvm11);
diff --git a/drivers/net/ethernet/intel/e1000e/hw.h b/drivers/net/ethernet/intel/e1000e/hw.h
index 11fdc27faa82..f556163481cb 100644
--- a/drivers/net/ethernet/intel/e1000e/hw.h
+++ b/drivers/net/ethernet/intel/e1000e/hw.h
@@ -92,6 +92,11 @@ struct e1000_hw;
 #define E1000_DEV_ID_PCH_CMP_I219_V11		0x0D4D
 #define E1000_DEV_ID_PCH_CMP_I219_LM12		0x0D53
 #define E1000_DEV_ID_PCH_CMP_I219_V12		0x0D55
+#define E1000_DEV_ID_PCH_TGP_I219_LM13		0x15FB
+#define E1000_DEV_ID_PCH_TGP_I219_V13		0x15FC
+#define E1000_DEV_ID_PCH_TGP_I219_LM14		0x15F9
+#define E1000_DEV_ID_PCH_TGP_I219_V14		0x15FA
+#define E1000_DEV_ID_PCH_TGP_I219_LM15		0x15F4
 
 #define E1000_REVISION_4	4
 
@@ -115,6 +120,7 @@ enum e1000_mac_type {
 	e1000_pch_lpt,
 	e1000_pch_spt,
 	e1000_pch_cnp,
+	e1000_pch_tgp,
 };
 
 enum e1000_media_type {
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index a1fab77b2096..b4135c50e905 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -316,6 +316,7 @@ static s32 e1000_init_phy_workarounds_pchlan(struct e1000_hw *hw)
 	case e1000_pch_lpt:
 	case e1000_pch_spt:
 	case e1000_pch_cnp:
+	case e1000_pch_tgp:
 		if (e1000_phy_is_accessible_pchlan(hw))
 			break;
 
@@ -458,6 +459,7 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw)
 		case e1000_pch_lpt:
 		case e1000_pch_spt:
 		case e1000_pch_cnp:
+		case e1000_pch_tgp:
 			/* In case the PHY needs to be in mdio slow mode,
 			 * set slow mode and try to get the PHY id again.
 			 */
@@ -700,6 +702,7 @@ static s32 e1000_init_mac_params_ich8lan(struct e1000_hw *hw)
 	case e1000_pch_lpt:
 	case e1000_pch_spt:
 	case e1000_pch_cnp:
+	case e1000_pch_tgp:
 	case e1000_pchlan:
 		/* check management mode */
 		mac->ops.check_mng_mode = e1000_check_mng_mode_pchlan;
@@ -1638,6 +1641,7 @@ static s32 e1000_get_variants_ich8lan(struct e1000_adapter *adapter)
 	case e1000_pch_lpt:
 	case e1000_pch_spt:
 	case e1000_pch_cnp:
+	case e1000_pch_tgp:
 		rc = e1000_init_phy_params_pchlan(hw);
 		break;
 	default:
@@ -2090,6 +2094,7 @@ static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw *hw)
 	case e1000_pch_lpt:
 	case e1000_pch_spt:
 	case e1000_pch_cnp:
+	case e1000_pch_tgp:
 		sw_cfg_mask = E1000_FEXTNVM_SW_CONFIG_ICH8M;
 		break;
 	default:
@@ -3127,6 +3132,7 @@ static s32 e1000_valid_nvm_bank_detect_ich8lan(struct e1000_hw *hw, u32 *bank)
 	switch (hw->mac.type) {
 	case e1000_pch_spt:
 	case e1000_pch_cnp:
+	case e1000_pch_tgp:
 		bank1_offset = nvm->flash_bank_size;
 		act_offset = E1000_ICH_NVM_SIG_WORD;
 
@@ -4070,6 +4076,7 @@ static s32 e1000_validate_nvm_checksum_ich8lan(struct e1000_hw *hw)
 	case e1000_pch_lpt:
 	case e1000_pch_spt:
 	case e1000_pch_cnp:
+	case e1000_pch_tgp:
 		word = NVM_COMPAT;
 		valid_csum_mask = NVM_COMPAT_VALID_CSUM;
 		break;
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 4aafa05287a4..20965b5d9780 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -3538,6 +3538,7 @@ s32 e1000e_get_base_timinca(struct e1000_adapter *adapter, u32 *timinca)
 		adapter->cc.shift = shift;
 		break;
 	case e1000_pch_cnp:
+	case e1000_pch_tgp:
 		if (er32(TSYNCRXCTL) & E1000_TSYNCRXCTL_SYSCFI) {
 			/* Stable 24MHz frequency */
 			incperiod = INCPERIOD_24MHZ;
@@ -4049,6 +4050,8 @@ void e1000e_reset(struct e1000_adapter *adapter)
 	case e1000_pch_lpt:
 	case e1000_pch_spt:
 	case e1000_pch_cnp:
+		/* fall-through */
+	case e1000_pch_tgp:
 		fc->refresh_time = 0xFFFF;
 		fc->pause_time = 0xFFFF;
 
@@ -7752,6 +7755,11 @@ static const struct pci_device_id e1000_pci_tbl[] = {
 	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V11), board_pch_cnp },
 	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_LM12), board_pch_spt },
 	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V12), board_pch_spt },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM13), board_pch_cnp },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V13), board_pch_cnp },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM14), board_pch_cnp },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V14), board_pch_cnp },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM15), board_pch_cnp },
 
 	{ 0, 0, 0, 0, 0, 0, 0 }	/* terminate list */
 };
diff --git a/drivers/net/ethernet/intel/e1000e/ptp.c b/drivers/net/ethernet/intel/e1000e/ptp.c
index 1a4c65d9feb4..eaa5a0fb99f0 100644
--- a/drivers/net/ethernet/intel/e1000e/ptp.c
+++ b/drivers/net/ethernet/intel/e1000e/ptp.c
@@ -295,6 +295,8 @@ void e1000e_ptp_init(struct e1000_adapter *adapter)
 	case e1000_pch_lpt:
 	case e1000_pch_spt:
 	case e1000_pch_cnp:
+		/* fall-through */
+	case e1000_pch_tgp:
 		if ((hw->mac.type < e1000_pch_lpt) ||
 		    (er32(TSYNCRXCTL) & E1000_TSYNCRXCTL_SYSCFI)) {
 			adapter->ptp_clock_info.max_adj = 24000000 - 1;
-- 
2.21.0


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

* [net-next 8/8] e1000e: Fix compiler warning when CONFIG_PM_SLEEP is not set
  2019-10-30  4:36 [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29 Jeff Kirsher
                   ` (6 preceding siblings ...)
  2019-10-30  4:36 ` [net-next 7/8] e1000e: Add support for Tiger Lake Jeff Kirsher
@ 2019-10-30  4:36 ` Jeff Kirsher
  2019-10-31  0:51 ` [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29 David Miller
  8 siblings, 0 replies; 18+ messages in thread
From: Jeff Kirsher @ 2019-10-30  4:36 UTC (permalink / raw)
  To: davem
  Cc: Sasha Neftin, netdev, nhorman, sassmann, kbuild test robot, Jeff Kirsher

From: Sasha Neftin <sasha.neftin@intel.com>

When CONFIG_PM_SLEEP is not defined compiler complain as follow:
CC [M]  drivers/net/ethernet/intel/e1000e/netdev.o
drivers/net/ethernet/intel/e1000e/netdev.c:6302:12: warning: ‘e1000e_s0ix_entry_flow’ defined but not used [-Wunused-function]
static void e1000e_s0ix_entry_flow(struct e1000_adapter *adapter)
drivers/net/ethernet/intel/e1000e/netdev.c:6411:12: warning: ‘e1000e_s0ix_exit_flow’ defined but not used [-Wunused-function]
static void e1000e_s0ix_exit_flow(struct e1000_adapter *adapter)
LD [M]  drivers/net/ethernet/intel/e1000e/e1000e.o

Add wrap to fix these warnings.

Reported-by: kbuild test robot <lpk@intel.com>
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/netdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 20965b5d9780..032b88619054 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -6297,6 +6297,7 @@ static void e1000e_flush_lpic(struct pci_dev *pdev)
 	pm_runtime_put_sync(netdev->dev.parent);
 }
 
+#ifdef CONFIG_PM_SLEEP
 /* S0ix implementation */
 static void e1000e_s0ix_entry_flow(struct e1000_adapter *adapter)
 {
@@ -6464,6 +6465,7 @@ static void e1000e_s0ix_exit_flow(struct e1000_adapter *adapter)
 	mac_data &= ~E1000_CTRL_EXT_FORCE_SMBUS;
 	ew32(CTRL_EXT, mac_data);
 }
+#endif /* CONFIG_PM_SLEEP */
 
 static int e1000e_pm_freeze(struct device *dev)
 {
-- 
2.21.0


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

* Re: [net-next 2/8] e1000e: Use rtnl_lock to prevent race conditions between net and pci/pm
  2019-10-30  4:36 ` [net-next 2/8] e1000e: Use rtnl_lock to prevent race conditions between net and pci/pm Jeff Kirsher
@ 2019-10-30  5:50   ` Joe Perches
  2019-10-30 15:48     ` Alexander Duyck
  0 siblings, 1 reply; 18+ messages in thread
From: Joe Perches @ 2019-10-30  5:50 UTC (permalink / raw)
  To: Jeff Kirsher, davem
  Cc: Alexander Duyck, netdev, nhorman, sassmann, Morumuri Srivalli,
	David Dai, Aaron Brown

On Tue, 2019-10-29 at 21:36 -0700, Jeff Kirsher wrote:
> From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
> 
> This patch is meant to address possible race conditions that can exist
> between network configuration and power management. A similar issue was
> fixed for igb in commit 9474933caf21 ("igb: close/suspend race in
> netif_device_detach").
[]
> diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
[]
> @@ -4715,12 +4715,12 @@ int e1000e_close(struct net_device *netdev)
>  
>  	pm_runtime_get_sync(&pdev->dev);
>  
> -	if (!test_bit(__E1000_DOWN, &adapter->state)) {
> +	if (netif_device_present(netdev)) {
>  		e1000e_down(adapter, true);
>  		e1000_free_irq(adapter);
>  
>  		/* Link status message must follow this format */
> -		pr_info("%s NIC Link is Down\n", adapter->netdev->name);
> +		pr_info("%s NIC Link is Down\n", netdev->name);

This change is already a minor optimization, but perhaps
this should instead be:

	netdev_info(netdev, "NIC Link is Down\n");

And whatever pr_<level> uses should use netdev_<level>
where possible in the driver.



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

* Re: [net-next 2/8] e1000e: Use rtnl_lock to prevent race conditions between net and pci/pm
  2019-10-30  5:50   ` Joe Perches
@ 2019-10-30 15:48     ` Alexander Duyck
  2019-10-31 16:58         ` [Intel-wired-lan] " Alexander Duyck
  0 siblings, 1 reply; 18+ messages in thread
From: Alexander Duyck @ 2019-10-30 15:48 UTC (permalink / raw)
  To: Joe Perches, Jeff Kirsher, davem
  Cc: netdev, nhorman, sassmann, Morumuri Srivalli, David Dai, Aaron Brown

On Tue, 2019-10-29 at 22:50 -0700, Joe Perches wrote:
> On Tue, 2019-10-29 at 21:36 -0700, Jeff Kirsher wrote:
> > From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
> > 
> > This patch is meant to address possible race conditions that can exist
> > between network configuration and power management. A similar issue was
> > fixed for igb in commit 9474933caf21 ("igb: close/suspend race in
> > netif_device_detach").
> []
> > diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
> []
> > @@ -4715,12 +4715,12 @@ int e1000e_close(struct net_device *netdev)
> >  
> >  	pm_runtime_get_sync(&pdev->dev);
> >  
> > -	if (!test_bit(__E1000_DOWN, &adapter->state)) {
> > +	if (netif_device_present(netdev)) {
> >  		e1000e_down(adapter, true);
> >  		e1000_free_irq(adapter);
> >  
> >  		/* Link status message must follow this format */
> > -		pr_info("%s NIC Link is Down\n", adapter->netdev->name);
> > +		pr_info("%s NIC Link is Down\n", netdev->name);
> 
> This change is already a minor optimization, but perhaps
> this should instead be:
> 
> 	netdev_info(netdev, "NIC Link is Down\n");
> 
> And whatever pr_<level> uses should use netdev_<level>
> where possible in the driver.

I don't view it as an optimization. The test to enter this section was
based on adapter and is now based on netdev. So the info message was
changed from being adapter based and made netdev based. I suspect changing
to netdev_info is going to change the messaging since it dumps more than
just the netdevice name and adds a colon.

If we are going to change the messaging I think it would be better to do
it as a separate patch. There are a couple spots that output the message
"NIC Link is Down" so we should probably update both of those and the
"Link is UP" at the same time. Since you mentioned it do you want to patch
that or should I?

Thanks.

- Alex



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

* Re: [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29
  2019-10-30  4:36 [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29 Jeff Kirsher
                   ` (7 preceding siblings ...)
  2019-10-30  4:36 ` [net-next 8/8] e1000e: Fix compiler warning when CONFIG_PM_SLEEP is not set Jeff Kirsher
@ 2019-10-31  0:51 ` David Miller
  8 siblings, 0 replies; 18+ messages in thread
From: David Miller @ 2019-10-31  0:51 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, nhorman, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 29 Oct 2019 21:36:25 -0700

> This series contains updates to e1000e, igb, ixgbe and i40e drivers.
> 
> Sasha adds support for Intel client platforms Comet Lake and Tiger Lake
> to the e1000e driver.  Also adds a fix for a compiler warning that was
> recently introduced, when CONFIG_PM_SLEEP is not defined, so wrap the
> code that requires this kernel configuration to be defined.
> 
> Alex fixes a potential race condition between network configuration and
> power management for e1000e, which is similar to a past issue in the igb
> driver.  Also provided a bit of code cleanup since the driver no longer
> checks for __E1000_DOWN.
> 
> Josh Hunt adds UDP segmentation offload support for igb, ixgbe and i40e.
> 
> The following are changes since commit 199f3ac319554f1ffddcc8e832448843f073d4c7:
>   ionic: Remove set but not used variable 'sg_desc'
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue 1GbE

Pulled, thanks Jeff.

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

* [next-queue/net-next PATCH] e1000e: Use netdev_info instead of pr_info for link messages
  2019-10-30 15:48     ` Alexander Duyck
@ 2019-10-31 16:58         ` Alexander Duyck
  0 siblings, 0 replies; 18+ messages in thread
From: Alexander Duyck @ 2019-10-31 16:58 UTC (permalink / raw)
  To: joe, jeffrey.t.kirsher, davem
  Cc: zdai, nhorman, netdev, smorumu1, intel-wired-lan, aaron.f.brown,
	sassmann

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

Replace the pr_info calls with netdev_info in all cases related to the
netdevice link state.

As a result of this patch the link messages will change as shown below.
Before:
e1000e: ens3 NIC Link is Down
e1000e: ens3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

After:
e1000e 0000:00:03.0 ens3: NIC Link is Down
e1000e 0000:00:03.0 ens3: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

Suggested-by: Joe Perches <joe@perches.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
---

Since Joe hasn't gotten back to me on if he wanted to do the patch or if
he wanted me to do it I just went ahead and did it. This should address the
concerns he had about the message formatting in "e1000e: Use rtnl_lock to
prevent race".

 drivers/net/ethernet/intel/e1000e/netdev.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index ef8ca0c134b0..a1aa48168855 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -4720,7 +4720,7 @@ int e1000e_close(struct net_device *netdev)
 		e1000_free_irq(adapter);
 
 		/* Link status message must follow this format */
-		pr_info("%s NIC Link is Down\n", netdev->name);
+		netdev_info(netdev, "NIC Link is Down\n");
 	}
 
 	napi_disable(&adapter->napi);
@@ -5070,8 +5070,9 @@ static void e1000_print_link_info(struct e1000_adapter *adapter)
 	u32 ctrl = er32(CTRL);
 
 	/* Link status message must follow this format for user tools */
-	pr_info("%s NIC Link is Up %d Mbps %s Duplex, Flow Control: %s\n",
-		adapter->netdev->name, adapter->link_speed,
+	netdev_info(adapter->netdev,
+		"NIC Link is Up %d Mbps %s Duplex, Flow Control: %s\n",
+		adapter->link_speed,
 		adapter->link_duplex == FULL_DUPLEX ? "Full" : "Half",
 		(ctrl & E1000_CTRL_TFCE) && (ctrl & E1000_CTRL_RFCE) ? "Rx/Tx" :
 		(ctrl & E1000_CTRL_RFCE) ? "Rx" :
@@ -5304,7 +5305,7 @@ static void e1000_watchdog_task(struct work_struct *work)
 			adapter->link_speed = 0;
 			adapter->link_duplex = 0;
 			/* Link status message must follow this format */
-			pr_info("%s NIC Link is Down\n", adapter->netdev->name);
+			netdev_info(netdev, "NIC Link is Down\n");
 			netif_carrier_off(netdev);
 			netif_stop_queue(netdev);
 			if (!test_bit(__E1000_DOWN, &adapter->state))


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

* [Intel-wired-lan] [next-queue/net-next PATCH] e1000e: Use netdev_info instead of pr_info for link messages
@ 2019-10-31 16:58         ` Alexander Duyck
  0 siblings, 0 replies; 18+ messages in thread
From: Alexander Duyck @ 2019-10-31 16:58 UTC (permalink / raw)
  To: intel-wired-lan

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

Replace the pr_info calls with netdev_info in all cases related to the
netdevice link state.

As a result of this patch the link messages will change as shown below.
Before:
e1000e: ens3 NIC Link is Down
e1000e: ens3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

After:
e1000e 0000:00:03.0 ens3: NIC Link is Down
e1000e 0000:00:03.0 ens3: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

Suggested-by: Joe Perches <joe@perches.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
---

Since Joe hasn't gotten back to me on if he wanted to do the patch or if
he wanted me to do it I just went ahead and did it. This should address the
concerns he had about the message formatting in "e1000e: Use rtnl_lock to
prevent race".

 drivers/net/ethernet/intel/e1000e/netdev.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index ef8ca0c134b0..a1aa48168855 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -4720,7 +4720,7 @@ int e1000e_close(struct net_device *netdev)
 		e1000_free_irq(adapter);
 
 		/* Link status message must follow this format */
-		pr_info("%s NIC Link is Down\n", netdev->name);
+		netdev_info(netdev, "NIC Link is Down\n");
 	}
 
 	napi_disable(&adapter->napi);
@@ -5070,8 +5070,9 @@ static void e1000_print_link_info(struct e1000_adapter *adapter)
 	u32 ctrl = er32(CTRL);
 
 	/* Link status message must follow this format for user tools */
-	pr_info("%s NIC Link is Up %d Mbps %s Duplex, Flow Control: %s\n",
-		adapter->netdev->name, adapter->link_speed,
+	netdev_info(adapter->netdev,
+		"NIC Link is Up %d Mbps %s Duplex, Flow Control: %s\n",
+		adapter->link_speed,
 		adapter->link_duplex == FULL_DUPLEX ? "Full" : "Half",
 		(ctrl & E1000_CTRL_TFCE) && (ctrl & E1000_CTRL_RFCE) ? "Rx/Tx" :
 		(ctrl & E1000_CTRL_RFCE) ? "Rx" :
@@ -5304,7 +5305,7 @@ static void e1000_watchdog_task(struct work_struct *work)
 			adapter->link_speed = 0;
 			adapter->link_duplex = 0;
 			/* Link status message must follow this format */
-			pr_info("%s NIC Link is Down\n", adapter->netdev->name);
+			netdev_info(netdev, "NIC Link is Down\n");
 			netif_carrier_off(netdev);
 			netif_stop_queue(netdev);
 			if (!test_bit(__E1000_DOWN, &adapter->state))


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

* Re: [next-queue/net-next PATCH] e1000e: Use netdev_info instead of pr_info for link messages
  2019-10-31 16:58         ` [Intel-wired-lan] " Alexander Duyck
@ 2019-10-31 17:48           ` Neil Horman
  -1 siblings, 0 replies; 18+ messages in thread
From: Neil Horman @ 2019-10-31 17:48 UTC (permalink / raw)
  To: Alexander Duyck
  Cc: joe, jeffrey.t.kirsher, davem, zdai, netdev, smorumu1,
	intel-wired-lan, aaron.f.brown, sassmann

On Thu, Oct 31, 2019 at 09:58:51AM -0700, Alexander Duyck wrote:
> From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
> 
> Replace the pr_info calls with netdev_info in all cases related to the
> netdevice link state.
> 
> As a result of this patch the link messages will change as shown below.
> Before:
> e1000e: ens3 NIC Link is Down
> e1000e: ens3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
> 
> After:
> e1000e 0000:00:03.0 ens3: NIC Link is Down
> e1000e 0000:00:03.0 ens3: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
> 
> Suggested-by: Joe Perches <joe@perches.com>
> Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
> ---
> 
> Since Joe hasn't gotten back to me on if he wanted to do the patch or if
> he wanted me to do it I just went ahead and did it. This should address the
> concerns he had about the message formatting in "e1000e: Use rtnl_lock to
> prevent race".
> 
>  drivers/net/ethernet/intel/e1000e/netdev.c |    9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
> index ef8ca0c134b0..a1aa48168855 100644
> --- a/drivers/net/ethernet/intel/e1000e/netdev.c
> +++ b/drivers/net/ethernet/intel/e1000e/netdev.c
> @@ -4720,7 +4720,7 @@ int e1000e_close(struct net_device *netdev)
>  		e1000_free_irq(adapter);
>  
>  		/* Link status message must follow this format */
> -		pr_info("%s NIC Link is Down\n", netdev->name);
> +		netdev_info(netdev, "NIC Link is Down\n");
>  	}
>  
>  	napi_disable(&adapter->napi);
> @@ -5070,8 +5070,9 @@ static void e1000_print_link_info(struct e1000_adapter *adapter)
>  	u32 ctrl = er32(CTRL);
>  
>  	/* Link status message must follow this format for user tools */
> -	pr_info("%s NIC Link is Up %d Mbps %s Duplex, Flow Control: %s\n",
> -		adapter->netdev->name, adapter->link_speed,
> +	netdev_info(adapter->netdev,
> +		"NIC Link is Up %d Mbps %s Duplex, Flow Control: %s\n",
> +		adapter->link_speed,
>  		adapter->link_duplex == FULL_DUPLEX ? "Full" : "Half",
>  		(ctrl & E1000_CTRL_TFCE) && (ctrl & E1000_CTRL_RFCE) ? "Rx/Tx" :
>  		(ctrl & E1000_CTRL_RFCE) ? "Rx" :
> @@ -5304,7 +5305,7 @@ static void e1000_watchdog_task(struct work_struct *work)
>  			adapter->link_speed = 0;
>  			adapter->link_duplex = 0;
>  			/* Link status message must follow this format */
> -			pr_info("%s NIC Link is Down\n", adapter->netdev->name);
> +			netdev_info(netdev, "NIC Link is Down\n");
>  			netif_carrier_off(netdev);
>  			netif_stop_queue(netdev);
>  			if (!test_bit(__E1000_DOWN, &adapter->state))
> 
Acked-by: Neil Horman <nhorman@tuxdriver.com>


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

* [Intel-wired-lan] [next-queue/net-next PATCH] e1000e: Use netdev_info instead of pr_info for link messages
@ 2019-10-31 17:48           ` Neil Horman
  0 siblings, 0 replies; 18+ messages in thread
From: Neil Horman @ 2019-10-31 17:48 UTC (permalink / raw)
  To: intel-wired-lan

On Thu, Oct 31, 2019 at 09:58:51AM -0700, Alexander Duyck wrote:
> From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
> 
> Replace the pr_info calls with netdev_info in all cases related to the
> netdevice link state.
> 
> As a result of this patch the link messages will change as shown below.
> Before:
> e1000e: ens3 NIC Link is Down
> e1000e: ens3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
> 
> After:
> e1000e 0000:00:03.0 ens3: NIC Link is Down
> e1000e 0000:00:03.0 ens3: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
> 
> Suggested-by: Joe Perches <joe@perches.com>
> Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
> ---
> 
> Since Joe hasn't gotten back to me on if he wanted to do the patch or if
> he wanted me to do it I just went ahead and did it. This should address the
> concerns he had about the message formatting in "e1000e: Use rtnl_lock to
> prevent race".
> 
>  drivers/net/ethernet/intel/e1000e/netdev.c |    9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
> index ef8ca0c134b0..a1aa48168855 100644
> --- a/drivers/net/ethernet/intel/e1000e/netdev.c
> +++ b/drivers/net/ethernet/intel/e1000e/netdev.c
> @@ -4720,7 +4720,7 @@ int e1000e_close(struct net_device *netdev)
>  		e1000_free_irq(adapter);
>  
>  		/* Link status message must follow this format */
> -		pr_info("%s NIC Link is Down\n", netdev->name);
> +		netdev_info(netdev, "NIC Link is Down\n");
>  	}
>  
>  	napi_disable(&adapter->napi);
> @@ -5070,8 +5070,9 @@ static void e1000_print_link_info(struct e1000_adapter *adapter)
>  	u32 ctrl = er32(CTRL);
>  
>  	/* Link status message must follow this format for user tools */
> -	pr_info("%s NIC Link is Up %d Mbps %s Duplex, Flow Control: %s\n",
> -		adapter->netdev->name, adapter->link_speed,
> +	netdev_info(adapter->netdev,
> +		"NIC Link is Up %d Mbps %s Duplex, Flow Control: %s\n",
> +		adapter->link_speed,
>  		adapter->link_duplex == FULL_DUPLEX ? "Full" : "Half",
>  		(ctrl & E1000_CTRL_TFCE) && (ctrl & E1000_CTRL_RFCE) ? "Rx/Tx" :
>  		(ctrl & E1000_CTRL_RFCE) ? "Rx" :
> @@ -5304,7 +5305,7 @@ static void e1000_watchdog_task(struct work_struct *work)
>  			adapter->link_speed = 0;
>  			adapter->link_duplex = 0;
>  			/* Link status message must follow this format */
> -			pr_info("%s NIC Link is Down\n", adapter->netdev->name);
> +			netdev_info(netdev, "NIC Link is Down\n");
>  			netif_carrier_off(netdev);
>  			netif_stop_queue(netdev);
>  			if (!test_bit(__E1000_DOWN, &adapter->state))
> 
Acked-by: Neil Horman <nhorman@tuxdriver.com>


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

* RE: [next-queue/net-next PATCH] e1000e: Use netdev_info instead of pr_info for link messages
  2019-10-31 16:58         ` [Intel-wired-lan] " Alexander Duyck
@ 2019-11-20  2:55           ` Brown, Aaron F
  -1 siblings, 0 replies; 18+ messages in thread
From: Brown, Aaron F @ 2019-11-20  2:55 UTC (permalink / raw)
  To: Alexander Duyck, joe, Kirsher, Jeffrey T, davem
  Cc: zdai, nhorman, netdev, smorumu1, intel-wired-lan, sassmann

> From: Alexander Duyck <alexander.duyck@gmail.com>
> Sent: Thursday, October 31, 2019 9:59 AM
> To: joe@perches.com; Kirsher, Jeffrey T <jeffrey.t.kirsher@intel.com>;
> davem@davemloft.net
> Cc: zdai@linux.vnet.ibm.com; nhorman@redhat.com;
> netdev@vger.kernel.org; smorumu1@in.ibm.com; intel-wired-
> lan@lists.osuosl.org; Brown, Aaron F <aaron.f.brown@intel.com>;
> sassmann@redhat.com
> Subject: [next-queue/net-next PATCH] e1000e: Use netdev_info instead of
> pr_info for link messages
> 
> From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
> 
> Replace the pr_info calls with netdev_info in all cases related to the
> netdevice link state.
> 
> As a result of this patch the link messages will change as shown below.
> Before:
> e1000e: ens3 NIC Link is Down
> e1000e: ens3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
> 
> After:
> e1000e 0000:00:03.0 ens3: NIC Link is Down
> e1000e 0000:00:03.0 ens3: NIC Link is Up 1000 Mbps Full Duplex, Flow Control:
> Rx/Tx
> 
> Suggested-by: Joe Perches <joe@perches.com>
> Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
> ---
> 
> Since Joe hasn't gotten back to me on if he wanted to do the patch or if
> he wanted me to do it I just went ahead and did it. This should address the
> concerns he had about the message formatting in "e1000e: Use rtnl_lock to
> prevent race".
> 
>  drivers/net/ethernet/intel/e1000e/netdev.c |    9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 

Tested-by: Aaron Brown <aaron.f.brown@intel.com>

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

* [Intel-wired-lan] [next-queue/net-next PATCH] e1000e: Use netdev_info instead of pr_info for link messages
@ 2019-11-20  2:55           ` Brown, Aaron F
  0 siblings, 0 replies; 18+ messages in thread
From: Brown, Aaron F @ 2019-11-20  2:55 UTC (permalink / raw)
  To: intel-wired-lan

> From: Alexander Duyck <alexander.duyck@gmail.com>
> Sent: Thursday, October 31, 2019 9:59 AM
> To: joe at perches.com; Kirsher, Jeffrey T <jeffrey.t.kirsher@intel.com>;
> davem at davemloft.net
> Cc: zdai at linux.vnet.ibm.com; nhorman at redhat.com;
> netdev at vger.kernel.org; smorumu1 at in.ibm.com; intel-wired-
> lan at lists.osuosl.org; Brown, Aaron F <aaron.f.brown@intel.com>;
> sassmann at redhat.com
> Subject: [next-queue/net-next PATCH] e1000e: Use netdev_info instead of
> pr_info for link messages
> 
> From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
> 
> Replace the pr_info calls with netdev_info in all cases related to the
> netdevice link state.
> 
> As a result of this patch the link messages will change as shown below.
> Before:
> e1000e: ens3 NIC Link is Down
> e1000e: ens3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
> 
> After:
> e1000e 0000:00:03.0 ens3: NIC Link is Down
> e1000e 0000:00:03.0 ens3: NIC Link is Up 1000 Mbps Full Duplex, Flow Control:
> Rx/Tx
> 
> Suggested-by: Joe Perches <joe@perches.com>
> Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
> ---
> 
> Since Joe hasn't gotten back to me on if he wanted to do the patch or if
> he wanted me to do it I just went ahead and did it. This should address the
> concerns he had about the message formatting in "e1000e: Use rtnl_lock to
> prevent race".
> 
>  drivers/net/ethernet/intel/e1000e/netdev.c |    9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 

Tested-by: Aaron Brown <aaron.f.brown@intel.com>

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

end of thread, other threads:[~2019-11-20  2:55 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-30  4:36 [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29 Jeff Kirsher
2019-10-30  4:36 ` [net-next 1/8] e1000e: Add support for Comet Lake Jeff Kirsher
2019-10-30  4:36 ` [net-next 2/8] e1000e: Use rtnl_lock to prevent race conditions between net and pci/pm Jeff Kirsher
2019-10-30  5:50   ` Joe Perches
2019-10-30 15:48     ` Alexander Duyck
2019-10-31 16:58       ` [next-queue/net-next PATCH] e1000e: Use netdev_info instead of pr_info for link messages Alexander Duyck
2019-10-31 16:58         ` [Intel-wired-lan] " Alexander Duyck
2019-10-31 17:48         ` Neil Horman
2019-10-31 17:48           ` [Intel-wired-lan] " Neil Horman
2019-11-20  2:55         ` Brown, Aaron F
2019-11-20  2:55           ` [Intel-wired-lan] " Brown, Aaron F
2019-10-30  4:36 ` [net-next 3/8] e1000e: Drop unnecessary __E1000_DOWN bit twiddling Jeff Kirsher
2019-10-30  4:36 ` [net-next 4/8] igb: Add UDP segmentation offload support Jeff Kirsher
2019-10-30  4:36 ` [net-next 5/8] ixgbe: " Jeff Kirsher
2019-10-30  4:36 ` [net-next 6/8] i40e: " Jeff Kirsher
2019-10-30  4:36 ` [net-next 7/8] e1000e: Add support for Tiger Lake Jeff Kirsher
2019-10-30  4:36 ` [net-next 8/8] e1000e: Fix compiler warning when CONFIG_PM_SLEEP is not set Jeff Kirsher
2019-10-31  0:51 ` [net-next 0/8][pull request] 1GbE Intel Wired LAN Driver Updates 2019-10-29 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.