netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24
@ 2018-08-24 18:47 Jeff Kirsher
  2018-08-24 18:47 ` [net 01/11] ixgb: use dma_zalloc_coherent instead of allocator/memset Jeff Kirsher
                   ` (11 more replies)
  0 siblings, 12 replies; 14+ messages in thread
From: Jeff Kirsher @ 2018-08-24 18:47 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, nhorman, sassmann, jogreene

This series contains fixes to e1000, igb, ixgb, ixgbe and i40e.

YueHaibing from Huawei provides a change to use dma_zalloc_coherent()
instead of calls to allocator followed by a memset for ixgb.

Bo Chen provides a couple of fixes for e1000, first by adding a check to
prevent a NULL pointer dereference.  The second change is to clean up a
possible resource leak on old transmit and receive rings when the device
is not up.

Jesus fixes an issue in the usage of an advanced transmit context
descriptor for retrieving the timestamp of a packet for AF_PACKET if the
IGB_TX_FLAGS_VLAN is not set in igb.

Jia-Ju Bai provides several patches which replace GFP_ATOMIC with
GFP_KERNEL, when using kzalloc() and kcalloc() which is not necessary.
Also found an instance of mdelay() call which could be replaced with
msleep().

Tony fixes ixgbe to allow MTU changes with XDP, by adding checks to
ensure only supported values and return -EINVAL for when it is not
supported.

Sebastian fixed an issue that was not clearing VF mailbox memory and
ensure queues are re-enabled correctly.

Martyna fixes a transmit timeout when DCB is configured when bringing up
an interface.

Jake fixes a previous commit which accidentally reversed the check of
the data pointer, so we can accurately count the size of the stats.

The following are changes since commit ff0fadfffe681203bfe134e1041ab6ccb4aa3dff:
  Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue 1GbE

Bo Chen (2):
  e1000: check on netif_running() before calling e1000_up()
  e1000: ensure to free old tx/rx rings in set_ringparam()

Jacob Keller (1):
  i40e: fix condition of WARN_ONCE for stat strings

Jesus Sanchez-Palencia (1):
  igb: Use an advanced ctx descriptor for launchtime

Jia-Ju Bai (3):
  igb: Replace GFP_ATOMIC with GFP_KERNEL in igb_sw_init()
  igb: Replace mdelay() with msleep() in igb_integrated_phy_loopback()
  ixgbe: Replace GFP_ATOMIC with GFP_KERNEL

Martyna Szapar (1):
  i40e: Fix for Tx timeouts when interface is brought up if DCB is
    enabled

Sebastian Basierski (1):
  ixgbe: fix driver behaviour after issuing VFLR

Tony Nguyen (1):
  ixgbe: Prevent unsupported configurations with XDP

YueHaibing (1):
  ixgb: use dma_zalloc_coherent instead of allocator/memset

 .../net/ethernet/intel/e1000/e1000_ethtool.c  |  7 +++--
 .../net/ethernet/intel/i40e/i40e_ethtool.c    |  2 +-
 drivers/net/ethernet/intel/i40e/i40e_main.c   | 15 ++++-----
 drivers/net/ethernet/intel/igb/igb_ethtool.c  |  2 +-
 drivers/net/ethernet/intel/igb/igb_main.c     |  7 +++--
 drivers/net/ethernet/intel/ixgb/ixgb_main.c   |  5 ++-
 drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c |  4 +--
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 30 ++++++++++++++++--
 .../net/ethernet/intel/ixgbe/ixgbe_sriov.c    | 31 +++++++++++++++++++
 drivers/net/ethernet/intel/ixgbe/ixgbe_type.h |  1 +
 10 files changed, 81 insertions(+), 23 deletions(-)

-- 
2.17.1

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

* [net 01/11] ixgb: use dma_zalloc_coherent instead of allocator/memset
  2018-08-24 18:47 [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 Jeff Kirsher
@ 2018-08-24 18:47 ` Jeff Kirsher
  2018-08-25 15:49   ` Joe Perches
  2018-08-24 18:47 ` [net 02/11] e1000: check on netif_running() before calling e1000_up() Jeff Kirsher
                   ` (10 subsequent siblings)
  11 siblings, 1 reply; 14+ messages in thread
From: Jeff Kirsher @ 2018-08-24 18:47 UTC (permalink / raw)
  To: davem; +Cc: YueHaibing, netdev, nhorman, sassmann, jogreene, Jeff Kirsher

From: YueHaibing <yuehaibing@huawei.com>

Use dma_zalloc_coherent instead of dma_alloc_coherent
followed by memset 0.

Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgb/ixgb_main.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgb/ixgb_main.c b/drivers/net/ethernet/intel/ixgb/ixgb_main.c
index 43664adf7a3c..d3e72d0f66ef 100644
--- a/drivers/net/ethernet/intel/ixgb/ixgb_main.c
+++ b/drivers/net/ethernet/intel/ixgb/ixgb_main.c
@@ -771,14 +771,13 @@ ixgb_setup_rx_resources(struct ixgb_adapter *adapter)
 	rxdr->size = rxdr->count * sizeof(struct ixgb_rx_desc);
 	rxdr->size = ALIGN(rxdr->size, 4096);
 
-	rxdr->desc = dma_alloc_coherent(&pdev->dev, rxdr->size, &rxdr->dma,
-					GFP_KERNEL);
+	rxdr->desc = dma_zalloc_coherent(&pdev->dev, rxdr->size, &rxdr->dma,
+					 GFP_KERNEL);
 
 	if (!rxdr->desc) {
 		vfree(rxdr->buffer_info);
 		return -ENOMEM;
 	}
-	memset(rxdr->desc, 0, rxdr->size);
 
 	rxdr->next_to_clean = 0;
 	rxdr->next_to_use = 0;
-- 
2.17.1

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

* [net 02/11] e1000: check on netif_running() before calling e1000_up()
  2018-08-24 18:47 [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 Jeff Kirsher
  2018-08-24 18:47 ` [net 01/11] ixgb: use dma_zalloc_coherent instead of allocator/memset Jeff Kirsher
@ 2018-08-24 18:47 ` Jeff Kirsher
  2018-08-24 18:47 ` [net 03/11] e1000: ensure to free old tx/rx rings in set_ringparam() Jeff Kirsher
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2018-08-24 18:47 UTC (permalink / raw)
  To: davem; +Cc: Bo Chen, netdev, nhorman, sassmann, jogreene, Jeff Kirsher

From: Bo Chen <chenbo@pdx.edu>

When the device is not up, the call to 'e1000_up()' from the error handling path
of 'e1000_set_ringparam()' causes a kernel oops with a null-pointer
dereference. The null-pointer dereference is triggered in function
'e1000_alloc_rx_buffers()' at line 'buffer_info = &rx_ring->buffer_info[i]'.

This bug was reported by COD, a tool for testing kernel module binaries I am
building. This bug was also detected by KFI from Dr. Kai Cong.

This patch fixes the bug by checking on 'netif_running()' before calling
'e1000_up()' in 'e1000_set_ringparam()'.

Signed-off-by: Bo Chen <chenbo@pdx.edu>
Acked-by: Alexander Duyck <alexander.h.duyck@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/e1000/e1000_ethtool.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
index bdb3f8e65ed4..c1e4e94f100f 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
@@ -644,7 +644,8 @@ static int e1000_set_ringparam(struct net_device *netdev,
 err_alloc_rx:
 	kfree(txdr);
 err_alloc_tx:
-	e1000_up(adapter);
+	if (netif_running(adapter->netdev))
+		e1000_up(adapter);
 err_setup:
 	clear_bit(__E1000_RESETTING, &adapter->flags);
 	return err;
-- 
2.17.1

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

* [net 03/11] e1000: ensure to free old tx/rx rings in set_ringparam()
  2018-08-24 18:47 [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 Jeff Kirsher
  2018-08-24 18:47 ` [net 01/11] ixgb: use dma_zalloc_coherent instead of allocator/memset Jeff Kirsher
  2018-08-24 18:47 ` [net 02/11] e1000: check on netif_running() before calling e1000_up() Jeff Kirsher
@ 2018-08-24 18:47 ` Jeff Kirsher
  2018-08-24 18:47 ` [net 04/11] igb: Use an advanced ctx descriptor for launchtime Jeff Kirsher
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2018-08-24 18:47 UTC (permalink / raw)
  To: davem; +Cc: Bo Chen, netdev, nhorman, sassmann, jogreene, Jeff Kirsher

From: Bo Chen <chenbo@pdx.edu>

In 'e1000_set_ringparam()', the tx_ring and rx_ring are updated with new value
and the old tx/rx rings are freed only when the device is up. There are resource
leaks on old tx/rx rings when the device is not up. This bug is reported by COD,
a tool for testing kernel module binaries I am building.

This patch fixes the bug by always calling 'kfree()' on old tx/rx rings in
'e1000_set_ringparam()'.

Signed-off-by: Bo Chen <chenbo@pdx.edu>
Reviewed-by: Alexander Duyck <alexander.h.duyck@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/e1000/e1000_ethtool.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
index c1e4e94f100f..2569a168334c 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
@@ -624,14 +624,14 @@ static int e1000_set_ringparam(struct net_device *netdev,
 		adapter->tx_ring = tx_old;
 		e1000_free_all_rx_resources(adapter);
 		e1000_free_all_tx_resources(adapter);
-		kfree(tx_old);
-		kfree(rx_old);
 		adapter->rx_ring = rxdr;
 		adapter->tx_ring = txdr;
 		err = e1000_up(adapter);
 		if (err)
 			goto err_setup;
 	}
+	kfree(tx_old);
+	kfree(rx_old);
 
 	clear_bit(__E1000_RESETTING, &adapter->flags);
 	return 0;
-- 
2.17.1

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

* [net 04/11] igb: Use an advanced ctx descriptor for launchtime
  2018-08-24 18:47 [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 Jeff Kirsher
                   ` (2 preceding siblings ...)
  2018-08-24 18:47 ` [net 03/11] e1000: ensure to free old tx/rx rings in set_ringparam() Jeff Kirsher
@ 2018-08-24 18:47 ` Jeff Kirsher
  2018-08-24 18:47 ` [net 05/11] igb: Replace GFP_ATOMIC with GFP_KERNEL in igb_sw_init() Jeff Kirsher
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2018-08-24 18:47 UTC (permalink / raw)
  To: davem
  Cc: Jesus Sanchez-Palencia, netdev, nhorman, sassmann, jogreene,
	Jeff Kirsher

From: Jesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com>

On i210, Launchtime (TxTime) requires the usage of an "Advanced
Transmit Context Descriptor" for retrieving the timestamp of a packet.

The igb driver correctly builds such descriptor on the segmentation
flow (i.e. igb_tso()) or on the checksum one (i.e. igb_tx_csum()), but the
feature is broken for AF_PACKET if the IGB_TX_FLAGS_VLAN is not set,
which happens due to an early return on igb_tx_csum().

This flag is only set by the kernel when a VLAN interface is used,
thus we can't just rely on it. Here we are fixing this issue by checking
if launchtime is enabled for the current tx_ring before performing the
early return.

Signed-off-by: Jesus Sanchez-Palencia <jesus.sanchez-palencia@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/igb/igb_main.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index d03c2f0d7592..74416f8a9446 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -5816,7 +5816,8 @@ static void igb_tx_csum(struct igb_ring *tx_ring, struct igb_tx_buffer *first)
 
 	if (skb->ip_summed != CHECKSUM_PARTIAL) {
 csum_failed:
-		if (!(first->tx_flags & IGB_TX_FLAGS_VLAN))
+		if (!(first->tx_flags & IGB_TX_FLAGS_VLAN) &&
+		    !tx_ring->launchtime_enable)
 			return;
 		goto no_csum;
 	}
-- 
2.17.1

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

* [net 05/11] igb: Replace GFP_ATOMIC with GFP_KERNEL in igb_sw_init()
  2018-08-24 18:47 [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 Jeff Kirsher
                   ` (3 preceding siblings ...)
  2018-08-24 18:47 ` [net 04/11] igb: Use an advanced ctx descriptor for launchtime Jeff Kirsher
@ 2018-08-24 18:47 ` Jeff Kirsher
  2018-08-24 18:47 ` [net 06/11] igb: Replace mdelay() with msleep() in igb_integrated_phy_loopback() Jeff Kirsher
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2018-08-24 18:47 UTC (permalink / raw)
  To: davem; +Cc: Jia-Ju Bai, netdev, nhorman, sassmann, jogreene, Jeff Kirsher

From: Jia-Ju Bai <baijiaju1990@gmail.com>

igb_sw_init() is never called in atomic context.
It calls kzalloc() and kcalloc() with GFP_ATOMIC, which is not necessary.
GFP_ATOMIC can be replaced with GFP_KERNEL.

This is found by a static analysis tool named DCNS written by myself.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.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/igb_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 74416f8a9446..a32c576c1e65 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -3873,7 +3873,7 @@ static int igb_sw_init(struct igb_adapter *adapter)
 
 	adapter->mac_table = kcalloc(hw->mac.rar_entry_count,
 				     sizeof(struct igb_mac_addr),
-				     GFP_ATOMIC);
+				     GFP_KERNEL);
 	if (!adapter->mac_table)
 		return -ENOMEM;
 
@@ -3883,7 +3883,7 @@ static int igb_sw_init(struct igb_adapter *adapter)
 
 	/* Setup and initialize a copy of the hw vlan table array */
 	adapter->shadow_vfta = kcalloc(E1000_VLAN_FILTER_TBL_SIZE, sizeof(u32),
-				       GFP_ATOMIC);
+				       GFP_KERNEL);
 	if (!adapter->shadow_vfta)
 		return -ENOMEM;
 
-- 
2.17.1

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

* [net 06/11] igb: Replace mdelay() with msleep() in igb_integrated_phy_loopback()
  2018-08-24 18:47 [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 Jeff Kirsher
                   ` (4 preceding siblings ...)
  2018-08-24 18:47 ` [net 05/11] igb: Replace GFP_ATOMIC with GFP_KERNEL in igb_sw_init() Jeff Kirsher
@ 2018-08-24 18:47 ` Jeff Kirsher
  2018-08-24 18:47 ` [net 07/11] ixgbe: Replace GFP_ATOMIC with GFP_KERNEL Jeff Kirsher
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2018-08-24 18:47 UTC (permalink / raw)
  To: davem; +Cc: Jia-Ju Bai, netdev, nhorman, sassmann, jogreene, Jeff Kirsher

From: Jia-Ju Bai <baijiaju1990@gmail.com>

igb_integrated_phy_loopback() is never called in atomic context.
It calls mdelay() to busily wait, which is not necessary.
mdelay() can be replaced with msleep().

This is found by a static analysis tool named DCNS written by myself.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.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/igb_ethtool.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c
index f92f7918112d..5acf3b743876 100644
--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
@@ -1649,7 +1649,7 @@ static int igb_integrated_phy_loopback(struct igb_adapter *adapter)
 	if (hw->phy.type == e1000_phy_m88)
 		igb_phy_disable_receiver(adapter);
 
-	mdelay(500);
+	msleep(500);
 	return 0;
 }
 
-- 
2.17.1

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

* [net 07/11] ixgbe: Replace GFP_ATOMIC with GFP_KERNEL
  2018-08-24 18:47 [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 Jeff Kirsher
                   ` (5 preceding siblings ...)
  2018-08-24 18:47 ` [net 06/11] igb: Replace mdelay() with msleep() in igb_integrated_phy_loopback() Jeff Kirsher
@ 2018-08-24 18:47 ` Jeff Kirsher
  2018-08-24 18:47 ` [net 08/11] ixgbe: Prevent unsupported configurations with XDP Jeff Kirsher
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2018-08-24 18:47 UTC (permalink / raw)
  To: davem; +Cc: Jia-Ju Bai, netdev, nhorman, sassmann, jogreene, Jeff Kirsher

From: Jia-Ju Bai <baijiaju1990@gmail.com>

ixgbe_fcoe_ddp_setup(), ixgbe_setup_fcoe_ddp_resources() and
ixgbe_sw_init() are never called in atomic context.
They call kmalloc(), dma_pool_alloc() and kzalloc() with GFP_ATOMIC,
which is not necessary.
GFP_ATOMIC can be replaced with GFP_KERNEL.

This is found by a static analysis tool named DCNS written by myself.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Acked-by: Sebastian Basierski <sebastianx.basierski@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 4 ++--
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
index 94b3165ff543..ccd852ad62a4 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
@@ -192,7 +192,7 @@ static int ixgbe_fcoe_ddp_setup(struct net_device *netdev, u16 xid,
 	}
 
 	/* alloc the udl from per cpu ddp pool */
-	ddp->udl = dma_pool_alloc(ddp_pool->pool, GFP_ATOMIC, &ddp->udp);
+	ddp->udl = dma_pool_alloc(ddp_pool->pool, GFP_KERNEL, &ddp->udp);
 	if (!ddp->udl) {
 		e_err(drv, "failed allocated ddp context\n");
 		goto out_noddp_unmap;
@@ -760,7 +760,7 @@ int ixgbe_setup_fcoe_ddp_resources(struct ixgbe_adapter *adapter)
 		return 0;
 
 	/* Extra buffer to be shared by all DDPs for HW work around */
-	buffer = kmalloc(IXGBE_FCBUFF_MIN, GFP_ATOMIC);
+	buffer = kmalloc(IXGBE_FCBUFF_MIN, GFP_KERNEL);
 	if (!buffer)
 		return -ENOMEM;
 
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index af4c9ae7f432..663d59ba527a 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -6201,7 +6201,7 @@ static int ixgbe_sw_init(struct ixgbe_adapter *adapter,
 
 	adapter->mac_table = kcalloc(hw->mac.num_rar_entries,
 				     sizeof(struct ixgbe_mac_addr),
-				     GFP_ATOMIC);
+				     GFP_KERNEL);
 	if (!adapter->mac_table)
 		return -ENOMEM;
 
-- 
2.17.1

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

* [net 08/11] ixgbe: Prevent unsupported configurations with XDP
  2018-08-24 18:47 [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 Jeff Kirsher
                   ` (6 preceding siblings ...)
  2018-08-24 18:47 ` [net 07/11] ixgbe: Replace GFP_ATOMIC with GFP_KERNEL Jeff Kirsher
@ 2018-08-24 18:47 ` Jeff Kirsher
  2018-08-24 18:47 ` [net 09/11] ixgbe: fix driver behaviour after issuing VFLR Jeff Kirsher
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2018-08-24 18:47 UTC (permalink / raw)
  To: davem
  Cc: Tony Nguyen, netdev, nhorman, sassmann, jogreene, Jakub Kicinski,
	Jeff Kirsher

From: Tony Nguyen <anthony.l.nguyen@intel.com>

These changes address comments by Jakub Kicinski on
commit 38b7e7f8ae82 ("ixgbe: Do not allow LRO or MTU change with XDP").

Change the MTU check with XDP to allow any supported value and only
reject those outside of the range as opposed to rejecting any change
when XDP is active. In situations where MTU size is not supported,
return -EINVAL instead of -EPERM.

Add checks when enabling SRIOV, DCB, or adding L2FW offloaded device
as they are not supported with XDP.

CC: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Acked-by: Jakub Kicinski <jakub.kicinski@netronome.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 | 28 +++++++++++++++++--
 .../net/ethernet/intel/ixgbe/ixgbe_sriov.c    |  5 ++++
 2 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 663d59ba527a..9a23d33a47ed 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -6620,8 +6620,18 @@ static int ixgbe_change_mtu(struct net_device *netdev, int new_mtu)
 	struct ixgbe_adapter *adapter = netdev_priv(netdev);
 
 	if (adapter->xdp_prog) {
-		e_warn(probe, "MTU cannot be changed while XDP program is loaded\n");
-		return -EPERM;
+		int new_frame_size = new_mtu + ETH_HLEN + ETH_FCS_LEN +
+				     VLAN_HLEN;
+		int i;
+
+		for (i = 0; i < adapter->num_rx_queues; i++) {
+			struct ixgbe_ring *ring = adapter->rx_ring[i];
+
+			if (new_frame_size > ixgbe_rx_bufsz(ring)) {
+				e_warn(probe, "Requested MTU size is not supported with XDP\n");
+				return -EINVAL;
+			}
+		}
 	}
 
 	/*
@@ -8983,6 +8993,15 @@ int ixgbe_setup_tc(struct net_device *dev, u8 tc)
 
 #ifdef CONFIG_IXGBE_DCB
 	if (tc) {
+		if (adapter->xdp_prog) {
+			e_warn(probe, "DCB is not supported with XDP\n");
+
+			ixgbe_init_interrupt_scheme(adapter);
+			if (netif_running(dev))
+				ixgbe_open(dev);
+			return -EINVAL;
+		}
+
 		netdev_set_num_tc(dev, tc);
 		ixgbe_set_prio_tc_map(adapter);
 
@@ -9934,6 +9953,11 @@ static void *ixgbe_fwd_add(struct net_device *pdev, struct net_device *vdev)
 	int tcs = adapter->hw_tcs ? : 1;
 	int pool, err;
 
+	if (adapter->xdp_prog) {
+		e_warn(probe, "L2FW offload is not supported with XDP\n");
+		return ERR_PTR(-EINVAL);
+	}
+
 	/* The hardware supported by ixgbe only filters on the destination MAC
 	 * address. In order to avoid issues we only support offloading modes
 	 * where the hardware can actually provide the functionality.
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index 6f59933cdff7..9264a5f8a5d0 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -53,6 +53,11 @@ static int __ixgbe_enable_sriov(struct ixgbe_adapter *adapter,
 	struct ixgbe_hw *hw = &adapter->hw;
 	int i;
 
+	if (adapter->xdp_prog) {
+		e_warn(probe, "SRIOV is not supported with XDP\n");
+		return -EINVAL;
+	}
+
 	/* Enable VMDq flag so device will be set in VM mode */
 	adapter->flags |= IXGBE_FLAG_SRIOV_ENABLED |
 			  IXGBE_FLAG_VMDQ_ENABLED;
-- 
2.17.1

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

* [net 09/11] ixgbe: fix driver behaviour after issuing VFLR
  2018-08-24 18:47 [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 Jeff Kirsher
                   ` (7 preceding siblings ...)
  2018-08-24 18:47 ` [net 08/11] ixgbe: Prevent unsupported configurations with XDP Jeff Kirsher
@ 2018-08-24 18:47 ` Jeff Kirsher
  2018-08-24 18:47 ` [net 10/11] i40e: Fix for Tx timeouts when interface is brought up if DCB is enabled Jeff Kirsher
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2018-08-24 18:47 UTC (permalink / raw)
  To: davem
  Cc: Sebastian Basierski, netdev, nhorman, sassmann, jogreene, Jeff Kirsher

From: Sebastian Basierski <sebastianx.basierski@intel.com>

Since VFLR doesn't clear VFMBMEM (VF Mailbox Memory)
and is not re-enabling queues correctly we should fix
this behavior.

Signed-off-by: Sebastian Basierski <sebastianx.basierski@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 .../net/ethernet/intel/ixgbe/ixgbe_sriov.c    | 26 +++++++++++++++++++
 drivers/net/ethernet/intel/ixgbe/ixgbe_type.h |  1 +
 2 files changed, 27 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index 9264a5f8a5d0..3c6f01c41b78 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -693,8 +693,13 @@ static int ixgbe_set_vf_macvlan(struct ixgbe_adapter *adapter,
 static inline void ixgbe_vf_reset_event(struct ixgbe_adapter *adapter, u32 vf)
 {
 	struct ixgbe_hw *hw = &adapter->hw;
+	struct ixgbe_ring_feature *vmdq = &adapter->ring_feature[RING_F_VMDQ];
 	struct vf_data_storage *vfinfo = &adapter->vfinfo[vf];
+	u32 q_per_pool = __ALIGN_MASK(1, ~vmdq->mask);
 	u8 num_tcs = adapter->hw_tcs;
+	u32 reg_val;
+	u32 queue;
+	u32 word;
 
 	/* remove VLAN filters beloning to this VF */
 	ixgbe_clear_vf_vlans(adapter, vf);
@@ -731,6 +736,27 @@ static inline void ixgbe_vf_reset_event(struct ixgbe_adapter *adapter, u32 vf)
 
 	/* reset VF api back to unknown */
 	adapter->vfinfo[vf].vf_api = ixgbe_mbox_api_10;
+
+	/* Restart each queue for given VF */
+	for (queue = 0; queue < q_per_pool; queue++) {
+		unsigned int reg_idx = (vf * q_per_pool) + queue;
+
+		reg_val = IXGBE_READ_REG(hw, IXGBE_PVFTXDCTL(reg_idx));
+
+		/* Re-enabling only configured queues */
+		if (reg_val) {
+			reg_val |= IXGBE_TXDCTL_ENABLE;
+			IXGBE_WRITE_REG(hw, IXGBE_PVFTXDCTL(reg_idx), reg_val);
+			reg_val &= ~IXGBE_TXDCTL_ENABLE;
+			IXGBE_WRITE_REG(hw, IXGBE_PVFTXDCTL(reg_idx), reg_val);
+		}
+	}
+
+	/* Clear VF's mailbox memory */
+	for (word = 0; word < IXGBE_VFMAILBOX_SIZE; word++)
+		IXGBE_WRITE_REG_ARRAY(hw, IXGBE_PFMBMEM(vf), word, 0);
+
+	IXGBE_WRITE_FLUSH(hw);
 }
 
 static int ixgbe_set_vf_mac(struct ixgbe_adapter *adapter,
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
index 44cfb2021145..41bcbb337e83 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
@@ -2518,6 +2518,7 @@ enum {
 /* Translated register #defines */
 #define IXGBE_PVFTDH(P)		(0x06010 + (0x40 * (P)))
 #define IXGBE_PVFTDT(P)		(0x06018 + (0x40 * (P)))
+#define IXGBE_PVFTXDCTL(P)	(0x06028 + (0x40 * (P)))
 #define IXGBE_PVFTDWBAL(P)	(0x06038 + (0x40 * (P)))
 #define IXGBE_PVFTDWBAH(P)	(0x0603C + (0x40 * (P)))
 
-- 
2.17.1

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

* [net 10/11] i40e: Fix for Tx timeouts when interface is brought up if DCB is enabled
  2018-08-24 18:47 [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 Jeff Kirsher
                   ` (8 preceding siblings ...)
  2018-08-24 18:47 ` [net 09/11] ixgbe: fix driver behaviour after issuing VFLR Jeff Kirsher
@ 2018-08-24 18:47 ` Jeff Kirsher
  2018-08-24 18:47 ` [net 11/11] i40e: fix condition of WARN_ONCE for stat strings Jeff Kirsher
  2018-08-25  7:03 ` [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 David Miller
  11 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2018-08-24 18:47 UTC (permalink / raw)
  To: davem; +Cc: Martyna Szapar, netdev, nhorman, sassmann, jogreene, Jeff Kirsher

From: Martyna Szapar <martyna.szapar@intel.com>

If interface is connected to switch port configured for DCB there are
TX timeouts when bringing up interface. Problem started appearing after
adding in i40e driver code mqprio hardware offload mode. In function
i40e_vsi_configure_bw_alloc was added resetting BW rate which should
be executing when mqprio qdisc is removed but was also when there was
no mqprio qdisc added and DCB was enabled. In this patch was added
additional check for DCB flag so now when DCB is enabled the correct
DCB configs from before mqprio patch are restored.

Signed-off-by: Martyna Szapar <martyna.szapar@intel.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 | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index f2c622e78802..ac685ad4d877 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -5122,15 +5122,17 @@ static int i40e_vsi_configure_bw_alloc(struct i40e_vsi *vsi, u8 enabled_tc,
 				       u8 *bw_share)
 {
 	struct i40e_aqc_configure_vsi_tc_bw_data bw_data;
+	struct i40e_pf *pf = vsi->back;
 	i40e_status ret;
 	int i;
 
-	if (vsi->back->flags & I40E_FLAG_TC_MQPRIO)
+	/* There is no need to reset BW when mqprio mode is on.  */
+	if (pf->flags & I40E_FLAG_TC_MQPRIO)
 		return 0;
-	if (!vsi->mqprio_qopt.qopt.hw) {
+	if (!vsi->mqprio_qopt.qopt.hw && !(pf->flags & I40E_FLAG_DCB_ENABLED)) {
 		ret = i40e_set_bw_limit(vsi, vsi->seid, 0);
 		if (ret)
-			dev_info(&vsi->back->pdev->dev,
+			dev_info(&pf->pdev->dev,
 				 "Failed to reset tx rate for vsi->seid %u\n",
 				 vsi->seid);
 		return ret;
@@ -5139,12 +5141,11 @@ static int i40e_vsi_configure_bw_alloc(struct i40e_vsi *vsi, u8 enabled_tc,
 	for (i = 0; i < I40E_MAX_TRAFFIC_CLASS; i++)
 		bw_data.tc_bw_credits[i] = bw_share[i];
 
-	ret = i40e_aq_config_vsi_tc_bw(&vsi->back->hw, vsi->seid, &bw_data,
-				       NULL);
+	ret = i40e_aq_config_vsi_tc_bw(&pf->hw, vsi->seid, &bw_data, NULL);
 	if (ret) {
-		dev_info(&vsi->back->pdev->dev,
+		dev_info(&pf->pdev->dev,
 			 "AQ command Config VSI BW allocation per TC failed = %d\n",
-			 vsi->back->hw.aq.asq_last_status);
+			 pf->hw.aq.asq_last_status);
 		return -EINVAL;
 	}
 
-- 
2.17.1

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

* [net 11/11] i40e: fix condition of WARN_ONCE for stat strings
  2018-08-24 18:47 [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 Jeff Kirsher
                   ` (9 preceding siblings ...)
  2018-08-24 18:47 ` [net 10/11] i40e: Fix for Tx timeouts when interface is brought up if DCB is enabled Jeff Kirsher
@ 2018-08-24 18:47 ` Jeff Kirsher
  2018-08-25  7:03 ` [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 David Miller
  11 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2018-08-24 18:47 UTC (permalink / raw)
  To: davem; +Cc: Jacob Keller, netdev, nhorman, sassmann, jogreene, Jeff Kirsher

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

Commit 9b10df596bd4 ("i40e: use WARN_ONCE to replace the commented
BUG_ON size check") introduced a warning check to make sure
that the size of the stat strings was always the expected value. This
code accidentally inverted the check of the data pointer. Fix this so
that we accurately count the size of the stats we copied in.

This fixes an erroneous WARN kernel splat that occurs when requesting
ethtool statistics.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Tested-by: Mauro S M Rodrigues <maurosr@linux.vnet.ibm.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index abcd096ede14..5ff6caa83948 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -2013,7 +2013,7 @@ static void i40e_get_stat_strings(struct net_device *netdev, u8 *data)
 	for (i = 0; i < I40E_MAX_USER_PRIORITY; i++)
 		i40e_add_stat_strings(&data, i40e_gstrings_pfc_stats, i);
 
-	WARN_ONCE(p - data != i40e_get_stats_count(netdev) * ETH_GSTRING_LEN,
+	WARN_ONCE(data - p != i40e_get_stats_count(netdev) * ETH_GSTRING_LEN,
 		  "stat strings count mismatch!");
 }
 
-- 
2.17.1

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

* Re: [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24
  2018-08-24 18:47 [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 Jeff Kirsher
                   ` (10 preceding siblings ...)
  2018-08-24 18:47 ` [net 11/11] i40e: fix condition of WARN_ONCE for stat strings Jeff Kirsher
@ 2018-08-25  7:03 ` David Miller
  11 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2018-08-25  7:03 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, nhorman, sassmann, jogreene

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 24 Aug 2018 11:47:24 -0700

> This series contains fixes to e1000, igb, ixgb, ixgbe and i40e.

Pulled, thanks Jeff.

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

* Re: [net 01/11] ixgb: use dma_zalloc_coherent instead of allocator/memset
  2018-08-24 18:47 ` [net 01/11] ixgb: use dma_zalloc_coherent instead of allocator/memset Jeff Kirsher
@ 2018-08-25 15:49   ` Joe Perches
  0 siblings, 0 replies; 14+ messages in thread
From: Joe Perches @ 2018-08-25 15:49 UTC (permalink / raw)
  To: Jeff Kirsher, davem; +Cc: YueHaibing, netdev, nhorman, sassmann, jogreene

On Fri, 2018-08-24 at 11:47 -0700, Jeff Kirsher wrote:
> From: YueHaibing <yuehaibing@huawei.com>
> 
> Use dma_zalloc_coherent instead of dma_alloc_coherent
> followed by memset 0.

Unrelated trivia:  above this, perhaps the

	size = sizeof(struct ixgb_buffer) * txdr->count;
	txdr->buffer_info = vzalloc(size);
	if (!txdr->buffer_info)
		return -ENOMEM;

should be changed to kvzalloc to avoid using vzalloc where
possible, with the appropriate vfree/kvfree conversions.

Perhaps across all intel drivers:

$ git grep -n "\bv.alloc(" drivers/net/ethernet/intel
drivers/net/ethernet/intel/e1000/e1000_main.c:1499:     txdr->buffer_info = vzalloc(size);
drivers/net/ethernet/intel/e1000/e1000_main.c:1689:     rxdr->buffer_info = vzalloc(size);
drivers/net/ethernet/intel/e1000e/ethtool.c:705:                temp_tx = vmalloc(size);
drivers/net/ethernet/intel/e1000e/ethtool.c:712:                temp_rx = vmalloc(size);
drivers/net/ethernet/intel/e1000e/netdev.c:2328:        tx_ring->buffer_info = vzalloc(size);
drivers/net/ethernet/intel/e1000e/netdev.c:2363:        rx_ring->buffer_info = vzalloc(size);
drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c:561:   temp_ring = vmalloc(array_size(i, sizeof(struct fm10k_ring)));
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c:22:     tx_ring->tx_buffer = vzalloc(size);
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c:90:     rx_ring->rx_buffer = vzalloc(size);
drivers/net/ethernet/intel/igb/igb_ethtool.c:905:               temp_ring = vmalloc(array_size(sizeof(struct igb_ring),
drivers/net/ethernet/intel/igb/igb_ethtool.c:908:               temp_ring = vmalloc(array_size(sizeof(struct igb_ring),
drivers/net/ethernet/intel/igb/igb_main.c:4075: tx_ring->tx_buffer_info = vmalloc(size);
drivers/net/ethernet/intel/igb/igb_main.c:4224: rx_ring->rx_buffer_info = vmalloc(size);
drivers/net/ethernet/intel/igbvf/ethtool.c:226: temp_ring = vmalloc(sizeof(struct igbvf_ring));
drivers/net/ethernet/intel/igbvf/netdev.c:421:  tx_ring->buffer_info = vzalloc(size);
drivers/net/ethernet/intel/igbvf/netdev.c:459:  rx_ring->buffer_info = vzalloc(size);
drivers/net/ethernet/intel/ixgb/ixgb_main.c:682:        txdr->buffer_info = vzalloc(size);
drivers/net/ethernet/intel/ixgb/ixgb_main.c:765:        rxdr->buffer_info = vzalloc(size);
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c:1074:  temp_ring = vmalloc(array_size(i, sizeof(struct ixgbe_ring)));
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:6352:             tx_ring->tx_buffer_info = vmalloc(size);
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:6446:             rx_ring->rx_buffer_info = vmalloc(size);
drivers/net/ethernet/intel/ixgbevf/ethtool.c:285:               tx_ring = vmalloc(array_size(sizeof(*tx_ring),
drivers/net/ethernet/intel/ixgbevf/ethtool.c:331:               rx_ring = vmalloc(array_size(sizeof(*rx_ring),
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:3373: tx_ring->tx_buffer_info = vmalloc(size);
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:3451: rx_ring->rx_buffer_info = vmalloc(size);

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

end of thread, other threads:[~2018-08-25 19:29 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-24 18:47 [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 Jeff Kirsher
2018-08-24 18:47 ` [net 01/11] ixgb: use dma_zalloc_coherent instead of allocator/memset Jeff Kirsher
2018-08-25 15:49   ` Joe Perches
2018-08-24 18:47 ` [net 02/11] e1000: check on netif_running() before calling e1000_up() Jeff Kirsher
2018-08-24 18:47 ` [net 03/11] e1000: ensure to free old tx/rx rings in set_ringparam() Jeff Kirsher
2018-08-24 18:47 ` [net 04/11] igb: Use an advanced ctx descriptor for launchtime Jeff Kirsher
2018-08-24 18:47 ` [net 05/11] igb: Replace GFP_ATOMIC with GFP_KERNEL in igb_sw_init() Jeff Kirsher
2018-08-24 18:47 ` [net 06/11] igb: Replace mdelay() with msleep() in igb_integrated_phy_loopback() Jeff Kirsher
2018-08-24 18:47 ` [net 07/11] ixgbe: Replace GFP_ATOMIC with GFP_KERNEL Jeff Kirsher
2018-08-24 18:47 ` [net 08/11] ixgbe: Prevent unsupported configurations with XDP Jeff Kirsher
2018-08-24 18:47 ` [net 09/11] ixgbe: fix driver behaviour after issuing VFLR Jeff Kirsher
2018-08-24 18:47 ` [net 10/11] i40e: Fix for Tx timeouts when interface is brought up if DCB is enabled Jeff Kirsher
2018-08-24 18:47 ` [net 11/11] i40e: fix condition of WARN_ONCE for stat strings Jeff Kirsher
2018-08-25  7:03 ` [net 00/11][pull request] Intel Wired LAN Driver Updates 2018-08-24 David Miller

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