* [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17
@ 2016-02-17 17:51 Jeff Kirsher
2016-02-17 17:51 ` [net-next 01/15] i40e: trivial: drop duplicate definition Jeff Kirsher
` (15 more replies)
0 siblings, 16 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, nhorman, sassmann, jogreene, john.ronciak
This series contains updates to i40e/i40evf only.
Jesse cleans up a duplicate declaration in probe. Then fixes a bug where the
driver was using a offset based off a DMA handle while mapping and unmapping
using sync_single_range_for_[cpu|device], when it should be using DMA handle
(returned from alloc_coherent) and the offset of the memory to be sync'd.
Fixed an issue where sync_vsi_filter() was allocating memory in a way that
could sleep (GFP_KERNEL) which was causing a problem when called by the
team driver under rcu_read_lock().
Shannon adds a check to ensure we do not attempt to do TSO when
skb->ip_summed is not set to CHECKSUM_PARTIAL.
Kiran add functions related to port mirroring features such as add/delete
mirror rule.
Jacob assigns the i40e_pf structure directly instead of using a large
memcpy, to avoid a sparse warning and lets the compiler optimize the copy
since it know the size of the structure in advance.
Anjali enables GENEVE capability for XL710/X710 devices with firmware API
version higher than 1.4. Added flag for automatic rule eviction feature
for X722, which is disabled by default.
The following are changes since commit f55158859504ead847e56211f3dadadaf883a6ee:
Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue 40GbE
Anjali Singhai (1):
i40e: Enable Geneve offload for FW API ver > 1.4 for XL710/X710
devices
Anjali Singhai Jain (1):
i40e: add priv flag for automatic rule eviction
Jacob Keller (1):
i40e: avoid large memcpy by assigning struct
Jesse Brandeburg (8):
i40e: trivial: drop duplicate definition
i40e: trivial: fix missing space
i40e: fix bug in dma sync
i40e: allocate memory safer
i40e: fix: do not sleep in netdev_ops
i40e: drop unused function
i40e: count allocation errors
i40e/i40evf: bump version to 1.4.12/1.4.8
Kiran Patil (1):
i40e: APIs to Add/remove port mirroring rules
Shannon Nelson (2):
i40e: do TSO only if CHECKSUM_PARTIAL is set
i40e: negate PHY int mask bits
Sowmini Varadhan (1):
i40e: use eth_platform_get_mac_address()
drivers/net/ethernet/intel/i40e/i40e.h | 2 +-
drivers/net/ethernet/intel/i40e/i40e_common.c | 162 +++++++++++++++++++++++
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 8 +-
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 11 ++
drivers/net/ethernet/intel/i40e/i40e_main.c | 90 ++++++-------
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 12 ++
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 17 ++-
drivers/net/ethernet/intel/i40e/i40e_type.h | 4 +
drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 11 +-
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +-
10 files changed, 254 insertions(+), 65 deletions(-)
--
2.5.0
^ permalink raw reply [flat|nested] 21+ messages in thread
* [net-next 01/15] i40e: trivial: drop duplicate definition
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 17:51 ` [net-next 02/15] i40e: trivial: fix missing space Jeff Kirsher
` (14 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
The probe routine already had a u32 val declared, no need
to do it again. Found by W=2 compile.
Change-ID: Id7b65f6d0ef6bb71067d0557f5be0202b6d8741e
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@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 | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 6b158c4..90ad7d7 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -11008,8 +11008,6 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if ((pf->flags & I40E_FLAG_SRIOV_ENABLED) &&
(pf->flags & I40E_FLAG_MSIX_ENABLED) &&
!test_bit(__I40E_BAD_EEPROM, &pf->state)) {
- u32 val;
-
/* disable link interrupts for VFs */
val = rd32(hw, I40E_PFGEN_PORTMDIO_NUM);
val &= ~I40E_PFGEN_PORTMDIO_NUM_VFLINK_STAT_ENA_MASK;
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [net-next 02/15] i40e: trivial: fix missing space
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
2016-02-17 17:51 ` [net-next 01/15] i40e: trivial: drop duplicate definition Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 17:51 ` [net-next 03/15] i40e: fix bug in dma sync Jeff Kirsher
` (13 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
Missing space in comment, fixed.
Change-ID: I8cdf3ce5994b4a97dcc3eeb33422533918546667
Reported-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@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 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 90ad7d7..c4ad0f1 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -3754,7 +3754,7 @@ static int i40e_vsi_request_irq(struct i40e_vsi *vsi, char *basename)
#ifdef CONFIG_NET_POLL_CONTROLLER
/**
- * i40e_netpoll - A Polling 'interrupt'handler
+ * i40e_netpoll - A Polling 'interrupt' handler
* @netdev: network interface device structure
*
* This is used by netconsole to send skbs without having to re-enable
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [net-next 03/15] i40e: fix bug in dma sync
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
2016-02-17 17:51 ` [net-next 01/15] i40e: trivial: drop duplicate definition Jeff Kirsher
2016-02-17 17:51 ` [net-next 02/15] i40e: trivial: fix missing space Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 17:51 ` [net-next 04/15] i40e: do TSO only if CHECKSUM_PARTIAL is set Jeff Kirsher
` (12 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
Driver was using an offset based off a DMA handle while mapping and
unmapping using sync_single_range_for[cpu|device], where it should
be using DMA handle (returned from alloc_coherent) and the offset of the
memory to be sync'd.
Change-ID: I208256565b1595ff0e9171ab852de06b997917c6
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Reviewed-by: Nelson, Shannon <shannon.nelson@intel.com>
Reviewed-by: Williams, Mitch A <mitch.a.williams@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_txrx.c | 8 ++++----
drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index 6234136..f2e6afc 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -1226,8 +1226,8 @@ void i40e_alloc_rx_buffers_ps(struct i40e_ring *rx_ring, u16 cleaned_count)
}
dma_sync_single_range_for_device(rx_ring->dev,
- bi->dma,
- 0,
+ rx_ring->rx_bi[0].dma,
+ i * rx_ring->rx_hdr_len,
rx_ring->rx_hdr_len,
DMA_FROM_DEVICE);
/* Refresh the desc even if buffer_addrs didn't change
@@ -1542,8 +1542,8 @@ static int i40e_clean_rx_irq_ps(struct i40e_ring *rx_ring, int budget)
skb_record_rx_queue(skb, rx_ring->queue_index);
/* we are reusing so sync this buffer for CPU use */
dma_sync_single_range_for_cpu(rx_ring->dev,
- rx_bi->dma,
- 0,
+ rx_ring->rx_bi[0].dma,
+ i * rx_ring->rx_hdr_len,
rx_ring->rx_hdr_len,
DMA_FROM_DEVICE);
}
diff --git a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
index 3e69235..69fb85f 100644
--- a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
@@ -700,8 +700,8 @@ void i40evf_alloc_rx_buffers_ps(struct i40e_ring *rx_ring, u16 cleaned_count)
}
dma_sync_single_range_for_device(rx_ring->dev,
- bi->dma,
- 0,
+ rx_ring->rx_bi[0].dma,
+ i * rx_ring->rx_hdr_len,
rx_ring->rx_hdr_len,
DMA_FROM_DEVICE);
/* Refresh the desc even if buffer_addrs didn't change
@@ -1007,8 +1007,8 @@ static int i40e_clean_rx_irq_ps(struct i40e_ring *rx_ring, int budget)
skb_record_rx_queue(skb, rx_ring->queue_index);
/* we are reusing so sync this buffer for CPU use */
dma_sync_single_range_for_cpu(rx_ring->dev,
- rx_bi->dma,
- 0,
+ rx_ring->rx_bi[0].dma,
+ i * rx_ring->rx_hdr_len,
rx_ring->rx_hdr_len,
DMA_FROM_DEVICE);
}
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [net-next 04/15] i40e: do TSO only if CHECKSUM_PARTIAL is set
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
` (2 preceding siblings ...)
2016-02-17 17:51 ` [net-next 03/15] i40e: fix bug in dma sync Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 17:51 ` [net-next 05/15] i40e: allocate memory safer Jeff Kirsher
` (11 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Shannon Nelson, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
Don't bother trying to set up a TSO if the skb->ip_summed is not
set to CHECKSUM_PARTIAL.
Change-ID: I6495b3568e404907a2965b48cf3e2effa7c9ab55
Signed-off-by: Shannon Nelson <shannon.nelson@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_txrx.c | 3 +++
drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 3 +++
2 files changed, 6 insertions(+)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index f2e6afc..15130b5d 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -2221,6 +2221,9 @@ static int i40e_tso(struct i40e_ring *tx_ring, struct sk_buff *skb,
u32 l4len;
int err;
+ if (skb->ip_summed != CHECKSUM_PARTIAL)
+ return 0;
+
if (!skb_is_gso(skb))
return 0;
diff --git a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
index 69fb85f..4205aef 100644
--- a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
@@ -1471,6 +1471,9 @@ static int i40e_tso(struct i40e_ring *tx_ring, struct sk_buff *skb,
u32 l4len;
int err;
+ if (skb->ip_summed != CHECKSUM_PARTIAL)
+ return 0;
+
if (!skb_is_gso(skb))
return 0;
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [net-next 05/15] i40e: allocate memory safer
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
` (3 preceding siblings ...)
2016-02-17 17:51 ` [net-next 04/15] i40e: do TSO only if CHECKSUM_PARTIAL is set Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 17:51 ` [net-next 06/15] i40e: fix: do not sleep in netdev_ops Jeff Kirsher
` (10 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
The sync_vsi_filter function was allocating memory in such
a way that it could sleep (GFP_KERNEL) which was causing a problem
when called by the team driver under rcu_read_lock(), which cannot
be held while sleeping. Found with lockdep.
Change-ID: I4e59053cb5eedcf3d0ca151715be3dc42a94bdd5
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@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 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index c4ad0f1..fe67b90 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -1937,7 +1937,7 @@ int i40e_sync_vsi_filters(struct i40e_vsi *vsi)
sizeof(struct i40e_aqc_remove_macvlan_element_data);
del_list_size = filter_list_len *
sizeof(struct i40e_aqc_remove_macvlan_element_data);
- del_list = kzalloc(del_list_size, GFP_KERNEL);
+ del_list = kzalloc(del_list_size, GFP_ATOMIC);
if (!del_list) {
i40e_cleanup_add_list(&tmp_add_list);
@@ -2015,7 +2015,7 @@ int i40e_sync_vsi_filters(struct i40e_vsi *vsi)
sizeof(struct i40e_aqc_add_macvlan_element_data),
add_list_size = filter_list_len *
sizeof(struct i40e_aqc_add_macvlan_element_data);
- add_list = kzalloc(add_list_size, GFP_KERNEL);
+ add_list = kzalloc(add_list_size, GFP_ATOMIC);
if (!add_list) {
/* Purge element from temporary lists */
i40e_cleanup_add_list(&tmp_add_list);
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [net-next 06/15] i40e: fix: do not sleep in netdev_ops
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
` (4 preceding siblings ...)
2016-02-17 17:51 ` [net-next 05/15] i40e: allocate memory safer Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 17:51 ` [net-next 07/15] i40e: APIs to Add/remove port mirroring rules Jeff Kirsher
` (9 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
The driver was being called by VLAN, bonding, teaming operations
that expected to be able to hold locks like rcu_read_lock().
This causes the driver to be held to the requirement to not sleep,
and was found by the kernel debug options for checking sleep
inside critical section, and the locking validator.
Change-ID: Ibc68c835f5ffa8ffe0638ffe910a66fc5649a7f7
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Reviewed-by: Nelson, Shannon <shannon.nelson@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 | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index fe67b90..ac89739 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -1542,7 +1542,11 @@ static int i40e_set_mac(struct net_device *netdev, void *p)
ether_addr_copy(netdev->dev_addr, addr->sa_data);
- return i40e_sync_vsi_filters(vsi);
+ /* schedule our worker thread which will take care of
+ * applying the new filter changes
+ */
+ i40e_service_event_schedule(vsi->back);
+ return 0;
}
/**
@@ -1766,6 +1770,11 @@ bottom_of_search_loop:
vsi->flags |= I40E_VSI_FLAG_FILTER_CHANGED;
vsi->back->flags |= I40E_FLAG_FILTER_SYNC;
}
+
+ /* schedule our worker thread which will take care of
+ * applying the new filter changes
+ */
+ i40e_service_event_schedule(vsi->back);
}
/**
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [net-next 07/15] i40e: APIs to Add/remove port mirroring rules
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
` (5 preceding siblings ...)
2016-02-17 17:51 ` [net-next 06/15] i40e: fix: do not sleep in netdev_ops Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 17:51 ` [net-next 08/15] i40e: negate PHY int mask bits Jeff Kirsher
` (8 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Kiran Patil, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Kiran Patil <kiran.patil@intel.com>
This patch implements necessary functions related to port
mirroring features such as add/delete mirror rule, function
to set promiscuous VLAN mode for VSI if mirror rule_type is
"VLAN Mirroring".
Change-ID: Iaf513fd5f188f99dcb977b48f99e73185dfddc40
Signed-off-by: Kiran Patil <kiran.patil@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_common.c | 162 +++++++++++++++++++++++
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 12 ++
2 files changed, 174 insertions(+)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c b/drivers/net/ethernet/intel/i40e/i40e_common.c
index 9018f28..976b03f 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_common.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_common.c
@@ -2033,6 +2033,37 @@ i40e_status i40e_aq_set_vsi_broadcast(struct i40e_hw *hw,
}
/**
+ * i40e_aq_set_vsi_vlan_promisc - control the VLAN promiscuous setting
+ * @hw: pointer to the hw struct
+ * @seid: vsi number
+ * @enable: set MAC L2 layer unicast promiscuous enable/disable for a given VLAN
+ * @cmd_details: pointer to command details structure or NULL
+ **/
+i40e_status i40e_aq_set_vsi_vlan_promisc(struct i40e_hw *hw,
+ u16 seid, bool enable,
+ struct i40e_asq_cmd_details *cmd_details)
+{
+ struct i40e_aq_desc desc;
+ struct i40e_aqc_set_vsi_promiscuous_modes *cmd =
+ (struct i40e_aqc_set_vsi_promiscuous_modes *)&desc.params.raw;
+ i40e_status status;
+ u16 flags = 0;
+
+ i40e_fill_default_direct_cmd_desc(&desc,
+ i40e_aqc_opc_set_vsi_promiscuous_modes);
+ if (enable)
+ flags |= I40E_AQC_SET_VSI_PROMISC_VLAN;
+
+ cmd->promiscuous_flags = cpu_to_le16(flags);
+ cmd->valid_flags = cpu_to_le16(I40E_AQC_SET_VSI_PROMISC_VLAN);
+ cmd->seid = cpu_to_le16(seid);
+
+ status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details);
+
+ return status;
+}
+
+/**
* i40e_get_vsi_params - get VSI configuration info
* @hw: pointer to the hw struct
* @vsi_ctx: pointer to a vsi context struct
@@ -2470,6 +2501,137 @@ i40e_status i40e_aq_remove_macvlan(struct i40e_hw *hw, u16 seid,
}
/**
+ * i40e_mirrorrule_op - Internal helper function to add/delete mirror rule
+ * @hw: pointer to the hw struct
+ * @opcode: AQ opcode for add or delete mirror rule
+ * @sw_seid: Switch SEID (to which rule refers)
+ * @rule_type: Rule Type (ingress/egress/VLAN)
+ * @id: Destination VSI SEID or Rule ID
+ * @count: length of the list
+ * @mr_list: list of mirrored VSI SEIDs or VLAN IDs
+ * @cmd_details: pointer to command details structure or NULL
+ * @rule_id: Rule ID returned from FW
+ * @rule_used: Number of rules used in internal switch
+ * @rule_free: Number of rules free in internal switch
+ *
+ * Add/Delete a mirror rule to a specific switch. Mirror rules are supported for
+ * VEBs/VEPA elements only
+ **/
+static i40e_status i40e_mirrorrule_op(struct i40e_hw *hw,
+ u16 opcode, u16 sw_seid, u16 rule_type, u16 id,
+ u16 count, __le16 *mr_list,
+ struct i40e_asq_cmd_details *cmd_details,
+ u16 *rule_id, u16 *rules_used, u16 *rules_free)
+{
+ struct i40e_aq_desc desc;
+ struct i40e_aqc_add_delete_mirror_rule *cmd =
+ (struct i40e_aqc_add_delete_mirror_rule *)&desc.params.raw;
+ struct i40e_aqc_add_delete_mirror_rule_completion *resp =
+ (struct i40e_aqc_add_delete_mirror_rule_completion *)&desc.params.raw;
+ i40e_status status;
+ u16 buf_size;
+
+ buf_size = count * sizeof(*mr_list);
+
+ /* prep the rest of the request */
+ i40e_fill_default_direct_cmd_desc(&desc, opcode);
+ cmd->seid = cpu_to_le16(sw_seid);
+ cmd->rule_type = cpu_to_le16(rule_type &
+ I40E_AQC_MIRROR_RULE_TYPE_MASK);
+ cmd->num_entries = cpu_to_le16(count);
+ /* Dest VSI for add, rule_id for delete */
+ cmd->destination = cpu_to_le16(id);
+ if (mr_list) {
+ desc.flags |= cpu_to_le16((u16)(I40E_AQ_FLAG_BUF |
+ I40E_AQ_FLAG_RD));
+ if (buf_size > I40E_AQ_LARGE_BUF)
+ desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_LB);
+ }
+
+ status = i40e_asq_send_command(hw, &desc, mr_list, buf_size,
+ cmd_details);
+ if (!status ||
+ hw->aq.asq_last_status == I40E_AQ_RC_ENOSPC) {
+ if (rule_id)
+ *rule_id = le16_to_cpu(resp->rule_id);
+ if (rules_used)
+ *rules_used = le16_to_cpu(resp->mirror_rules_used);
+ if (rules_free)
+ *rules_free = le16_to_cpu(resp->mirror_rules_free);
+ }
+ return status;
+}
+
+/**
+ * i40e_aq_add_mirrorrule - add a mirror rule
+ * @hw: pointer to the hw struct
+ * @sw_seid: Switch SEID (to which rule refers)
+ * @rule_type: Rule Type (ingress/egress/VLAN)
+ * @dest_vsi: SEID of VSI to which packets will be mirrored
+ * @count: length of the list
+ * @mr_list: list of mirrored VSI SEIDs or VLAN IDs
+ * @cmd_details: pointer to command details structure or NULL
+ * @rule_id: Rule ID returned from FW
+ * @rule_used: Number of rules used in internal switch
+ * @rule_free: Number of rules free in internal switch
+ *
+ * Add mirror rule. Mirror rules are supported for VEBs or VEPA elements only
+ **/
+i40e_status i40e_aq_add_mirrorrule(struct i40e_hw *hw, u16 sw_seid,
+ u16 rule_type, u16 dest_vsi, u16 count, __le16 *mr_list,
+ struct i40e_asq_cmd_details *cmd_details,
+ u16 *rule_id, u16 *rules_used, u16 *rules_free)
+{
+ if (!(rule_type == I40E_AQC_MIRROR_RULE_TYPE_ALL_INGRESS ||
+ rule_type == I40E_AQC_MIRROR_RULE_TYPE_ALL_EGRESS)) {
+ if (count == 0 || !mr_list)
+ return I40E_ERR_PARAM;
+ }
+
+ return i40e_mirrorrule_op(hw, i40e_aqc_opc_add_mirror_rule, sw_seid,
+ rule_type, dest_vsi, count, mr_list,
+ cmd_details, rule_id, rules_used, rules_free);
+}
+
+/**
+ * i40e_aq_delete_mirrorrule - delete a mirror rule
+ * @hw: pointer to the hw struct
+ * @sw_seid: Switch SEID (to which rule refers)
+ * @rule_type: Rule Type (ingress/egress/VLAN)
+ * @count: length of the list
+ * @rule_id: Rule ID that is returned in the receive desc as part of
+ * add_mirrorrule.
+ * @mr_list: list of mirrored VLAN IDs to be removed
+ * @cmd_details: pointer to command details structure or NULL
+ * @rule_used: Number of rules used in internal switch
+ * @rule_free: Number of rules free in internal switch
+ *
+ * Delete a mirror rule. Mirror rules are supported for VEBs/VEPA elements only
+ **/
+i40e_status i40e_aq_delete_mirrorrule(struct i40e_hw *hw, u16 sw_seid,
+ u16 rule_type, u16 rule_id, u16 count, __le16 *mr_list,
+ struct i40e_asq_cmd_details *cmd_details,
+ u16 *rules_used, u16 *rules_free)
+{
+ /* Rule ID has to be valid except rule_type: INGRESS VLAN mirroring */
+ if (rule_type != I40E_AQC_MIRROR_RULE_TYPE_VLAN) {
+ if (!rule_id)
+ return I40E_ERR_PARAM;
+ } else {
+ /* count and mr_list shall be valid for rule_type INGRESS VLAN
+ * mirroring. For other rule_type, count and rule_type should
+ * not matter.
+ */
+ if (count == 0 || !mr_list)
+ return I40E_ERR_PARAM;
+ }
+
+ return i40e_mirrorrule_op(hw, i40e_aqc_opc_delete_mirror_rule, sw_seid,
+ rule_type, rule_id, count, mr_list,
+ cmd_details, NULL, rules_used, rules_free);
+}
+
+/**
* i40e_aq_send_msg_to_vf
* @hw: pointer to the hardware structure
* @vfid: VF id to send msg
diff --git a/drivers/net/ethernet/intel/i40e/i40e_prototype.h b/drivers/net/ethernet/intel/i40e/i40e_prototype.h
index bb9d583..45af29b 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_prototype.h
+++ b/drivers/net/ethernet/intel/i40e/i40e_prototype.h
@@ -127,6 +127,9 @@ i40e_status i40e_aq_set_vsi_unicast_promiscuous(struct i40e_hw *hw,
u16 vsi_id, bool set, struct i40e_asq_cmd_details *cmd_details);
i40e_status i40e_aq_set_vsi_multicast_promiscuous(struct i40e_hw *hw,
u16 vsi_id, bool set, struct i40e_asq_cmd_details *cmd_details);
+i40e_status i40e_aq_set_vsi_vlan_promisc(struct i40e_hw *hw,
+ u16 seid, bool enable,
+ struct i40e_asq_cmd_details *cmd_details);
i40e_status i40e_aq_get_vsi_params(struct i40e_hw *hw,
struct i40e_vsi_context *vsi_ctx,
struct i40e_asq_cmd_details *cmd_details);
@@ -149,6 +152,15 @@ i40e_status i40e_aq_add_macvlan(struct i40e_hw *hw, u16 vsi_id,
i40e_status i40e_aq_remove_macvlan(struct i40e_hw *hw, u16 vsi_id,
struct i40e_aqc_remove_macvlan_element_data *mv_list,
u16 count, struct i40e_asq_cmd_details *cmd_details);
+i40e_status i40e_aq_add_mirrorrule(struct i40e_hw *hw, u16 sw_seid,
+ u16 rule_type, u16 dest_vsi, u16 count, __le16 *mr_list,
+ struct i40e_asq_cmd_details *cmd_details,
+ u16 *rule_id, u16 *rules_used, u16 *rules_free);
+i40e_status i40e_aq_delete_mirrorrule(struct i40e_hw *hw, u16 sw_seid,
+ u16 rule_type, u16 rule_id, u16 count, __le16 *mr_list,
+ struct i40e_asq_cmd_details *cmd_details,
+ u16 *rules_used, u16 *rules_free);
+
i40e_status i40e_aq_send_msg_to_vf(struct i40e_hw *hw, u16 vfid,
u32 v_opcode, u32 v_retval, u8 *msg, u16 msglen,
struct i40e_asq_cmd_details *cmd_details);
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [net-next 08/15] i40e: negate PHY int mask bits
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
` (6 preceding siblings ...)
2016-02-17 17:51 ` [net-next 07/15] i40e: APIs to Add/remove port mirroring rules Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 17:51 ` [net-next 09/15] i40e: drop unused function Jeff Kirsher
` (7 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Shannon Nelson, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
The PHY interrupt mask bits mask out the events we don't want,
so we need to negate the bitmask of events we want.
Change-ID: I273244da5a8d285b6abc84fd68a90f1e6fa0393e
Signed-off-by: Shannon Nelson <shannon.nelson@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 | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index ac89739..e147db2 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -6826,12 +6826,12 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit)
if (ret)
goto end_core_reset;
- /* driver is only interested in link up/down and module qualification
- * reports from firmware
+ /* The driver only wants link up/down and module qualification
+ * reports from firmware. Note the negative logic.
*/
ret = i40e_aq_set_phy_int_mask(&pf->hw,
- I40E_AQ_EVENT_LINK_UPDOWN |
- I40E_AQ_EVENT_MODULE_QUAL_FAIL, NULL);
+ ~(I40E_AQ_EVENT_LINK_UPDOWN |
+ I40E_AQ_EVENT_MODULE_QUAL_FAIL), NULL);
if (ret)
dev_info(&pf->pdev->dev, "set phy mask fail, err %s aq_err %s\n",
i40e_stat_str(&pf->hw, ret),
@@ -10961,12 +10961,12 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
}
}
- /* driver is only interested in link up/down and module qualification
- * reports from firmware
+ /* The driver only wants link up/down and module qualification
+ * reports from firmware. Note the negative logic.
*/
err = i40e_aq_set_phy_int_mask(&pf->hw,
- I40E_AQ_EVENT_LINK_UPDOWN |
- I40E_AQ_EVENT_MODULE_QUAL_FAIL, NULL);
+ ~(I40E_AQ_EVENT_LINK_UPDOWN |
+ I40E_AQ_EVENT_MODULE_QUAL_FAIL), NULL);
if (err)
dev_info(&pf->pdev->dev, "set phy mask fail, err %s aq_err %s\n",
i40e_stat_str(&pf->hw, err),
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [net-next 09/15] i40e: drop unused function
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
` (7 preceding siblings ...)
2016-02-17 17:51 ` [net-next 08/15] i40e: negate PHY int mask bits Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 17:51 ` [net-next 10/15] i40e: count allocation errors Jeff Kirsher
` (6 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
Delete the unused irq_dynamic_disable function.
Change-ID: Ia46071066babd121c7c90f141b6210b00078de3f
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Reviewed-by: Anjali Singhai <anjali.singhai@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.h | 1 -
drivers/net/ethernet/intel/i40e/i40e_main.c | 16 ----------------
2 files changed, 17 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index 175bec3..65cf344 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -757,7 +757,6 @@ static inline void i40e_irq_dynamic_enable(struct i40e_vsi *vsi, int vector)
/* skip the flush */
}
-void i40e_irq_dynamic_disable(struct i40e_vsi *vsi, int vector);
void i40e_irq_dynamic_disable_icr0(struct i40e_pf *pf);
void i40e_irq_dynamic_enable_icr0(struct i40e_pf *pf);
#ifdef I40E_FCOE
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index e147db2..38fd942 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -3273,22 +3273,6 @@ void i40e_irq_dynamic_enable_icr0(struct i40e_pf *pf)
}
/**
- * i40e_irq_dynamic_disable - Disable default interrupt generation settings
- * @vsi: pointer to a vsi
- * @vector: disable a particular Hw Interrupt vector
- **/
-void i40e_irq_dynamic_disable(struct i40e_vsi *vsi, int vector)
-{
- struct i40e_pf *pf = vsi->back;
- struct i40e_hw *hw = &pf->hw;
- u32 val;
-
- val = I40E_ITR_NONE << I40E_PFINT_DYN_CTLN_ITR_INDX_SHIFT;
- wr32(hw, I40E_PFINT_DYN_CTLN(vector - 1), val);
- i40e_flush(hw);
-}
-
-/**
* i40e_msix_clean_rings - MSIX mode Interrupt Handler
* @irq: interrupt number
* @data: pointer to a q_vector
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [net-next 10/15] i40e: count allocation errors
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
` (8 preceding siblings ...)
2016-02-17 17:51 ` [net-next 09/15] i40e: drop unused function Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 17:51 ` [net-next 11/15] i40e: avoid large memcpy by assigning struct Jeff Kirsher
` (5 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
Driver already counted allocation errors, so print
them as part of the ethtool -S output. Useful for debugging
if your system is having trouble making memory available for
the driver.
Change-ID: I83839fa86e81e6d80f03b917c88dd3ef9a64dde0
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@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_ethtool.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index 812c954..9dcdf34 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -89,6 +89,8 @@ static const struct i40e_stats i40e_gstrings_misc_stats[] = {
I40E_VSI_STAT("rx_unknown_protocol", eth_stats.rx_unknown_protocol),
I40E_VSI_STAT("tx_linearize", tx_linearize),
I40E_VSI_STAT("tx_force_wb", tx_force_wb),
+ I40E_VSI_STAT("rx_alloc_fail", rx_buf_failed),
+ I40E_VSI_STAT("rx_pg_alloc_fail", rx_page_failed),
};
/* These PF_STATs might look like duplicates of some NETDEV_STATs,
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [net-next 11/15] i40e: avoid large memcpy by assigning struct
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
` (9 preceding siblings ...)
2016-02-17 17:51 ` [net-next 10/15] i40e: count allocation errors Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 17:51 ` [net-next 12/15] i40e/i40evf: bump version to 1.4.12/1.4.8 Jeff Kirsher
` (4 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Jacob Keller, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Jacob Keller <jacob.e.keller@intel.com>
Assign the i40e_pf structure directly instead of using a large memcpy,
which avoids a sparse warning and lets the compiler optimize the copy
since it knows the size of the structure in advance.
Change-ID: I17604e23be2616521eb760290befcb767b52b3f7
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Jesse Brandeburg <jesse.brandeburg@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_debugfs.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index 7aae056..3948587 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -185,9 +185,11 @@ static ssize_t i40e_dbg_dump_write(struct file *filp,
if (i40e_dbg_prep_dump_buf(pf, buflen)) {
p = i40e_dbg_dump_buf;
- len = sizeof(struct i40e_pf);
- memcpy(p, pf, len);
- p += len;
+ /* avoid use of memcpy here due to sparse warning
+ * about copy size.
+ */
+ *((struct i40e_pf *)p) = *pf;
+ p += sizeof(struct i40e_pf);
len = (sizeof(struct i40e_aq_desc)
* pf->hw.aq.num_asq_entries);
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [net-next 12/15] i40e/i40evf: bump version to 1.4.12/1.4.8
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
` (10 preceding siblings ...)
2016-02-17 17:51 ` [net-next 11/15] i40e: avoid large memcpy by assigning struct Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 17:51 ` [net-next 13/15] i40e: Enable Geneve offload for FW API ver > 1.4 for XL710/X710 devices Jeff Kirsher
` (3 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
Bump driver versions to i40e-1.4.12 and i40evf-1.4.8
Change-ID: I0ad82668c4ded04250391fda396ce191a42ab754
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@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 | 2 +-
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 38fd942..6e12626 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -51,7 +51,7 @@ static const char i40e_driver_string[] =
#define DRV_VERSION_MAJOR 1
#define DRV_VERSION_MINOR 4
-#define DRV_VERSION_BUILD 11
+#define DRV_VERSION_BUILD 12
#define DRV_VERSION __stringify(DRV_VERSION_MAJOR) "." \
__stringify(DRV_VERSION_MINOR) "." \
__stringify(DRV_VERSION_BUILD) DRV_KERN
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index ae6c6e1..045cc7f 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -38,7 +38,7 @@ static const char i40evf_driver_string[] =
#define DRV_VERSION_MAJOR 1
#define DRV_VERSION_MINOR 4
-#define DRV_VERSION_BUILD 7
+#define DRV_VERSION_BUILD 8
#define DRV_VERSION __stringify(DRV_VERSION_MAJOR) "." \
__stringify(DRV_VERSION_MINOR) "." \
__stringify(DRV_VERSION_BUILD) \
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [net-next 13/15] i40e: Enable Geneve offload for FW API ver > 1.4 for XL710/X710 devices
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
` (11 preceding siblings ...)
2016-02-17 17:51 ` [net-next 12/15] i40e/i40evf: bump version to 1.4.12/1.4.8 Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 17:51 ` [net-next 14/15] i40e: add priv flag for automatic rule eviction Jeff Kirsher
` (2 subsequent siblings)
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Anjali Singhai, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Anjali Singhai <anjali.singhai@intel.com>
This patch makes sure we check the GENEVE offload capable flag before
we attempt offload.
It also enables the Capability for XL710/X710 devices with FW API
version higher than 1.4
Signed-off-by: Anjali Singhai Jain <anjali.singhai@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, 14 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 6e12626..99d7a5c 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -5354,7 +5354,8 @@ int i40e_open(struct net_device *netdev)
vxlan_get_rx_port(netdev);
#endif
#ifdef CONFIG_I40E_GENEVE
- geneve_get_rx_port(netdev);
+ if (pf->flags & I40E_FLAG_GENEVE_OFFLOAD_CAPABLE)
+ geneve_get_rx_port(netdev);
#endif
return 0;
@@ -8458,7 +8459,13 @@ static int i40e_sw_init(struct i40e_pf *pf)
I40E_FLAG_MULTIPLE_TCP_UDP_RSS_PCTYPE |
I40E_FLAG_100M_SGMII_CAPABLE |
I40E_FLAG_GENEVE_OFFLOAD_CAPABLE;
+ } else if ((pf->hw.aq.api_maj_ver > 1) ||
+ ((pf->hw.aq.api_maj_ver == 1) &&
+ (pf->hw.aq.api_min_ver > 4))) {
+ /* Supported in FW API version higher than 1.4 */
+ pf->flags |= I40E_FLAG_GENEVE_OFFLOAD_CAPABLE;
}
+
pf->eeprom_version = 0xDEAD;
pf->lan_veb = I40E_NO_VEB;
pf->lan_vsi = I40E_NO_VSI;
@@ -8672,6 +8679,9 @@ static void i40e_add_geneve_port(struct net_device *netdev,
u8 next_idx;
u8 idx;
+ if (!(pf->flags & I40E_FLAG_GENEVE_OFFLOAD_CAPABLE))
+ return;
+
if (sa_family == AF_INET6)
return;
@@ -8719,6 +8729,9 @@ static void i40e_del_geneve_port(struct net_device *netdev,
if (sa_family == AF_INET6)
return;
+ if (!(pf->flags & I40E_FLAG_GENEVE_OFFLOAD_CAPABLE))
+ return;
+
idx = i40e_get_udp_port_idx(pf, port);
/* Check if port already exists */
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [net-next 14/15] i40e: add priv flag for automatic rule eviction
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
` (12 preceding siblings ...)
2016-02-17 17:51 ` [net-next 13/15] i40e: Enable Geneve offload for FW API ver > 1.4 for XL710/X710 devices Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 17:51 ` [net-next 15/15] i40e: use eth_platform_get_mac_address() Jeff Kirsher
2016-02-17 20:24 ` [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 David Miller
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem
Cc: Anjali Singhai Jain, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Anjali Singhai Jain <anjali.singhai@intel.com>
The X722 can support automatic rule eviction for automatically added
flow director rules. Feature is (should be) disabled by default.
Signed-off-by: Anjali Singhai Jain <anjali.singhai@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.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 9 +++++++++
drivers/net/ethernet/intel/i40e/i40e_main.c | 3 +++
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 6 ++++--
drivers/net/ethernet/intel/i40e/i40e_type.h | 4 ++++
5 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index 65cf344..05af33e 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -104,6 +104,7 @@
#define I40E_PRIV_FLAGS_FD_ATR BIT(2)
#define I40E_PRIV_FLAGS_VEB_STATS BIT(3)
#define I40E_PRIV_FLAGS_PS BIT(4)
+#define I40E_PRIV_FLAGS_HW_ATR_EVICT BIT(5)
#define I40E_NVM_VERSION_LO_SHIFT 0
#define I40E_NVM_VERSION_LO_MASK (0xff << I40E_NVM_VERSION_LO_SHIFT)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index 9dcdf34..89ad2f7 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -235,6 +235,7 @@ static const char i40e_priv_flags_strings[][ETH_GSTRING_LEN] = {
"flow-director-atr",
"veb-stats",
"packet-split",
+ "hw-atr-eviction",
};
#define I40E_PRIV_FLAGS_STR_LEN ARRAY_SIZE(i40e_priv_flags_strings)
@@ -2731,6 +2732,8 @@ static u32 i40e_get_priv_flags(struct net_device *dev)
I40E_PRIV_FLAGS_VEB_STATS : 0;
ret_flags |= pf->flags & I40E_FLAG_RX_PS_ENABLED ?
I40E_PRIV_FLAGS_PS : 0;
+ ret_flags |= pf->auto_disable_flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE ?
+ 0 : I40E_PRIV_FLAGS_HW_ATR_EVICT;
return ret_flags;
}
@@ -2787,6 +2790,12 @@ static int i40e_set_priv_flags(struct net_device *dev, u32 flags)
else
pf->flags &= ~I40E_FLAG_VEB_STATS_ENABLED;
+ if ((flags & I40E_PRIV_FLAGS_HW_ATR_EVICT) &&
+ (pf->flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE))
+ pf->auto_disable_flags &= ~I40E_FLAG_HW_ATR_EVICT_CAPABLE;
+ else
+ pf->auto_disable_flags |= I40E_FLAG_HW_ATR_EVICT_CAPABLE;
+
/* if needed, issue reset to cause things to take effect */
if (reset_required)
i40e_do_reset(pf, BIT(__I40E_PF_RESET_REQUESTED));
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 99d7a5c..f6d61cc 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -8464,6 +8464,9 @@ static int i40e_sw_init(struct i40e_pf *pf)
(pf->hw.aq.api_min_ver > 4))) {
/* Supported in FW API version higher than 1.4 */
pf->flags |= I40E_FLAG_GENEVE_OFFLOAD_CAPABLE;
+ pf->auto_disable_flags = I40E_FLAG_HW_ATR_EVICT_CAPABLE;
+ } else {
+ pf->auto_disable_flags = I40E_FLAG_HW_ATR_EVICT_CAPABLE;
}
pf->eeprom_version = 0xDEAD;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index 15130b5d..6d1dd60 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -2047,7 +2047,8 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,
/* Due to lack of space, no more new filters can be programmed */
if (th->syn && (pf->auto_disable_flags & I40E_FLAG_FD_ATR_ENABLED))
return;
- if (pf->flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE) {
+ if ((pf->flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE) &&
+ (!(pf->auto_disable_flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE))) {
/* HW ATR eviction will take care of removing filters on FIN
* and RST packets.
*/
@@ -2109,7 +2110,8 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,
I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT) &
I40E_TXD_FLTR_QW1_CNTINDEX_MASK;
- if (pf->flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE)
+ if ((pf->flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE) &&
+ (!(pf->auto_disable_flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE)))
dtype_cmd |= I40E_TXD_FLTR_QW1_ATR_MASK;
fdir_desc->qindex_flex_ptype_vsi = cpu_to_le32(flex_ptype);
diff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h
index dd2da35..b59a021 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_type.h
+++ b/drivers/net/ethernet/intel/i40e/i40e_type.h
@@ -1098,6 +1098,10 @@ enum i40e_filter_program_desc_pcmd {
I40E_TXD_FLTR_QW1_CMD_SHIFT)
#define I40E_TXD_FLTR_QW1_ATR_MASK BIT_ULL(I40E_TXD_FLTR_QW1_ATR_SHIFT)
+#define I40E_TXD_FLTR_QW1_ATR_SHIFT (0xEULL + \
+ I40E_TXD_FLTR_QW1_CMD_SHIFT)
+#define I40E_TXD_FLTR_QW1_ATR_MASK BIT_ULL(I40E_TXD_FLTR_QW1_ATR_SHIFT)
+
#define I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT 20
#define I40E_TXD_FLTR_QW1_CNTINDEX_MASK (0x1FFUL << \
I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT)
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [net-next 15/15] i40e: use eth_platform_get_mac_address()
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
` (13 preceding siblings ...)
2016-02-17 17:51 ` [net-next 14/15] i40e: add priv flag for automatic rule eviction Jeff Kirsher
@ 2016-02-17 17:51 ` Jeff Kirsher
2016-02-17 20:24 ` [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 David Miller
15 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-17 17:51 UTC (permalink / raw)
To: davem; +Cc: Sowmini Varadhan, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Sowmini Varadhan <sowmini.varadhan@oracle.com>
This commit converts commit b499ffb0a22c ("i40e: Look up MAC address in
Open Firmware or IDPROM") to use eth_platform_get_mac_address()
added by commit c7f5d105495a ("net: Add eth_platform_get_mac_address()
helper.")
Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.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 | 19 +------------------
1 file changed, 1 insertion(+), 18 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index f6d61cc..04417e6 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -28,11 +28,6 @@
#include <linux/of_net.h>
#include <linux/pci.h>
-#ifdef CONFIG_SPARC
-#include <asm/idprom.h>
-#include <asm/prom.h>
-#endif
-
/* Local includes */
#include "i40e.h"
#include "i40e_diag.h"
@@ -10618,21 +10613,9 @@ static void i40e_print_features(struct i40e_pf *pf)
**/
static void i40e_get_platform_mac_addr(struct pci_dev *pdev, struct i40e_pf *pf)
{
- struct device_node *dp = pci_device_to_OF_node(pdev);
- const unsigned char *addr;
- u8 *mac_addr = pf->hw.mac.addr;
-
pf->flags &= ~I40E_FLAG_PF_MAC;
- addr = of_get_mac_address(dp);
- if (addr) {
- ether_addr_copy(mac_addr, addr);
+ if (!eth_platform_get_mac_address(&pdev->dev, pf->hw.mac.addr))
pf->flags |= I40E_FLAG_PF_MAC;
-#ifdef CONFIG_SPARC
- } else {
- ether_addr_copy(mac_addr, idprom->id_ethaddr);
- pf->flags |= I40E_FLAG_PF_MAC;
-#endif /* CONFIG_SPARC */
- }
}
/**
--
2.5.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
` (14 preceding siblings ...)
2016-02-17 17:51 ` [net-next 15/15] i40e: use eth_platform_get_mac_address() Jeff Kirsher
@ 2016-02-17 20:24 ` David Miller
15 siblings, 0 replies; 21+ messages in thread
From: David Miller @ 2016-02-17 20:24 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, nhorman, sassmann, jogreene, john.ronciak
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Wed, 17 Feb 2016 09:51:31 -0800
> This series contains updates to i40e/i40evf only.
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 21+ messages in thread
* [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17
@ 2016-02-18 3:38 Jeff Kirsher
2016-02-18 4:47 ` David Miller
0 siblings, 1 reply; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-18 3:38 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, nhorman, sassmann, jogreene, john.ronciak
This series contains updates to i40e/i40evf only (again).
Jesse moves sync_vsi_filters() up in the service_task because it may need
to request a reset, and we do not want to wait another round of service
task time. Refactored the enable_icr0() in order to allow it to be
decided by the caller whether the CLEARPBA (clear pending events) bit will
be set while re-enabling the interrupt. Also provides the "Don't Give Up"
patch, where the driver will keep polling trying to allocate receive buffers
until it succeeds. This should keep all receive queues running even in
the face of memory pressure. Cleans up the debugging helpers by putting
everything in hex to be consistent.
Neerav updates the DCB firmware version related checkes specific to X710
and XL710 only since the checks are not required for X722 devices.
Shannon adds the use of the new shared MAC filter bit for multicast and
broadcast filters in order to make better use of the filters available
from the device. Added a parameter to allow the driver to set the
enable/disable of statistics gathering in the hardware switch. Also the
L2 cloud filtering parameter is removed since it was never used.
Anjali refactors the force_wb and WB_ON_ITR functionality since
Force-WriteBack functionality in X710/XL710 devices has been moved out of
the clean routine and into the service task, so we need to make sure
WriteBack-On-ITR is separated out since it is still called from clean.
Catherine changes the VF driver string to reflect all the products that
are supported.
Mitch refactors the packet split receive code to properly use half-pages
for receives. Also changes the use of bitwise operators to logical
operators on clean_complete variable, while making a witty reference to
Mr. Spock. Cleans up (i.e. removes) the hsplit field in the ring
structure and use the existing macro to detect packet split enablement,
which allows debugfs dumps of the VSI to properly show which recevie
routine is in use.
The following are changes since commit 36b6f2cf7edd841c0b0eb7a5ec09c22bd6b5018c:
Merge branch 'inet_lro-remove'
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue 40GbE
Anjali Singhai Jain (1):
i40e: Refactor force_wb and WB_ON_ITR functionality code
Catherine Sullivan (1):
i40evf: Change vf driver string to reflect all products i40evf
supports
Jesse Brandeburg (6):
i40e: move sync_vsi_filters up in service_task
i40e/i40evf: don't lose interrupts
i40e/i40evf: try again after failure
i40e: dump descriptor indexes in hex
i40e/i40evf: use __GFP_NOWARN
i40e/i40evf: Bump version
Mitch Williams (3):
i40e/i40evf: use pages correctly in Rx
i40e/i40evf: use logical operators, not bitwise
i40e: properly show packet split status in debugfs
Neerav Parikh (1):
i40e: Make the DCB firmware checks for X710/XL710 only
Shannon Nelson (3):
i40e: set shared bit for multicast filters
i40e: add VEB stat control and remove L2 cloud filter
i40e: use new add_veb calling with VEB stats control
drivers/net/ethernet/intel/i40e/i40e.h | 23 +-
drivers/net/ethernet/intel/i40e/i40e_common.c | 21 +-
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 25 +-
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 11 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 51 +++--
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 6 +-
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 249 +++++++++++++-------
drivers/net/ethernet/intel/i40e/i40e_txrx.h | 9 +-
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 4 +-
drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 253 ++++++++++++++-------
drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 10 +-
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 6 +-
12 files changed, 445 insertions(+), 223 deletions(-)
--
2.5.0
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17
2016-02-18 3:38 Jeff Kirsher
@ 2016-02-18 4:47 ` David Miller
0 siblings, 0 replies; 21+ messages in thread
From: David Miller @ 2016-02-18 4:47 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, nhorman, sassmann, jogreene, john.ronciak
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Wed, 17 Feb 2016 19:38:42 -0800
> This series contains updates to i40e/i40evf only (again).
Spock approves, pulled, thanks a lot.
^ permalink raw reply [flat|nested] 21+ messages in thread
* [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17
@ 2016-02-18 9:03 Jeff Kirsher
2016-02-18 15:33 ` David Miller
0 siblings, 1 reply; 21+ messages in thread
From: Jeff Kirsher @ 2016-02-18 9:03 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, nhorman, sassmann, jogreene, john.ronciak
This series contains updates to i40e/i40evf once again.
Mitch updates the use of a define instead of a magic number. Adds support
for packet split receive on VFs, which is disabled by default. Expands on
a code comment which was not verbose or really helpful. Fixes an issue
where if a reset fails to complete and was not properly setting the
adapter state, which would cause a panic on rmmod, so set the adpater
state to DOWN to avoid a panic.
Jesse cleans up a "dump" in debugfs that never panned out to be useful.
Anjali adds a workaround for cases where we might have interrupts that get
lost but wright-back (WB) happened. Fixes an issue by falling back to
enabling unicast, multicast and broadcast promiscuous mode when the driver
must disable it's use of "default port" (defport mode) due to internal
incompatibility with Multiple Function per Port (MFP). Fixes an issue
where queues should never be enabled/disabled in the interrupt handler.
Kiran cleans up th code which used hard coded base VEB SEID since it was
removed from the specification.
Shannon adds a few bits for better debug messages. Fixes an obscure corner
case, where it was possible to clear the NVM update wait flag when no
update_done message was actually received.
The following are changes since commit 5270c4dade091681313141a75f8401c61b72e82c:
Merge branch 'vxlan-cleanups'
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue 40GbE
Anjali Singhai Jain (4):
i40e: Add a SW workaround for lost interrupts
i40e: Fix PROMISC mode for Multi-function per port (MFP) devices
i40e: Do not disable queues in the Legacy/MSI Interrupt handler
i40e: When in promisc mode apply promisc mode to Tx Traffic as well
Catherine Sullivan (1):
i40e/i40evf: Bump i40e to 1.4.15 and i40evf to 1.4.11.
Jesse Brandeburg (2):
i40e: drop unused debugfs file "dump"
i40e: trivial: cleanup use of pf->hw
Kiran Patil (1):
i40e: Removal of code which relies on BASE VEB SEID
Mitch Williams (5):
i40e: get rid of magic number
i40evf: support packet split receive
i40e/i40evf: avoid atomics
i40e: expand comment
i40evf: set adapter state on reset failure
Shannon Nelson (2):
i40e: better error reporting for nvmupdate
i40e: clean event descriptor before use
drivers/net/ethernet/intel/i40e/i40e.h | 4 +-
drivers/net/ethernet/intel/i40e/i40e_adminq.c | 20 +-
drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 3 +-
drivers/net/ethernet/intel/i40e/i40e_common.c | 9 +-
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 266 +--------------------
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 40 ++--
drivers/net/ethernet/intel/i40e/i40e_main.c | 69 +++---
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 44 ++--
drivers/net/ethernet/intel/i40e/i40e_txrx.h | 3 +-
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 8 +-
drivers/net/ethernet/intel/i40evf/i40e_adminq.c | 5 +-
.../net/ethernet/intel/i40evf/i40e_adminq_cmd.h | 3 +-
drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 31 ++-
drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 3 +-
drivers/net/ethernet/intel/i40evf/i40evf.h | 6 +-
drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 67 +++++-
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 67 +++---
.../net/ethernet/intel/i40evf/i40evf_virtchnl.c | 4 +
18 files changed, 253 insertions(+), 399 deletions(-)
--
2.5.0
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17
2016-02-18 9:03 Jeff Kirsher
@ 2016-02-18 15:33 ` David Miller
0 siblings, 0 replies; 21+ messages in thread
From: David Miller @ 2016-02-18 15:33 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, nhorman, sassmann, jogreene, john.ronciak
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Thu, 18 Feb 2016 01:03:57 -0800
> This series contains updates to i40e/i40evf once again.
Pulled, althugh I hope you guys don't get audited on that page refcount
donation.
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2016-02-18 15:33 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-17 17:51 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 Jeff Kirsher
2016-02-17 17:51 ` [net-next 01/15] i40e: trivial: drop duplicate definition Jeff Kirsher
2016-02-17 17:51 ` [net-next 02/15] i40e: trivial: fix missing space Jeff Kirsher
2016-02-17 17:51 ` [net-next 03/15] i40e: fix bug in dma sync Jeff Kirsher
2016-02-17 17:51 ` [net-next 04/15] i40e: do TSO only if CHECKSUM_PARTIAL is set Jeff Kirsher
2016-02-17 17:51 ` [net-next 05/15] i40e: allocate memory safer Jeff Kirsher
2016-02-17 17:51 ` [net-next 06/15] i40e: fix: do not sleep in netdev_ops Jeff Kirsher
2016-02-17 17:51 ` [net-next 07/15] i40e: APIs to Add/remove port mirroring rules Jeff Kirsher
2016-02-17 17:51 ` [net-next 08/15] i40e: negate PHY int mask bits Jeff Kirsher
2016-02-17 17:51 ` [net-next 09/15] i40e: drop unused function Jeff Kirsher
2016-02-17 17:51 ` [net-next 10/15] i40e: count allocation errors Jeff Kirsher
2016-02-17 17:51 ` [net-next 11/15] i40e: avoid large memcpy by assigning struct Jeff Kirsher
2016-02-17 17:51 ` [net-next 12/15] i40e/i40evf: bump version to 1.4.12/1.4.8 Jeff Kirsher
2016-02-17 17:51 ` [net-next 13/15] i40e: Enable Geneve offload for FW API ver > 1.4 for XL710/X710 devices Jeff Kirsher
2016-02-17 17:51 ` [net-next 14/15] i40e: add priv flag for automatic rule eviction Jeff Kirsher
2016-02-17 17:51 ` [net-next 15/15] i40e: use eth_platform_get_mac_address() Jeff Kirsher
2016-02-17 20:24 ` [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2016-02-17 David Miller
-- strict thread matches above, loose matches on Subject: below --
2016-02-18 3:38 Jeff Kirsher
2016-02-18 4:47 ` David Miller
2016-02-18 9:03 Jeff Kirsher
2016-02-18 15:33 ` 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).