All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-wired-lan] [next PATCH S40-V2 00/12] i40e/i40evf updates
@ 2016-07-27 19:02 Bimmy Pujari
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 01/12] i40e: Fix a bug where a client close can be called before an open is complete Bimmy Pujari
                   ` (11 more replies)
  0 siblings, 12 replies; 27+ messages in thread
From: Bimmy Pujari @ 2016-07-27 19:02 UTC (permalink / raw)
  To: intel-wired-lan

Anjali Singhai Jain fixes a bug where a client close can be called
before an open is complete.

Avinash Dayanand adds code to force register writes to mitigate sync issues
with iwarp VF driver & adds code to not notify client of VF reset during VF
creation.

Alan Brady fixes lookup table when RSS disabled/enabled.

Carolyn Wyborny adds code to allow RSS Hash set with less than four parameters.

Catherine Sullivan adds code to reset vlan filter count when resetting and
adds code to reset RX csum error stat with other pf stats.

Dave Ertman fixes static analysis tool warning.

Jacob Keller adds code for missing rtnl_lock() around i40evf_set_interrupt_
capability and adds code to not allow reduction of channels below active FD
rules.

Mitch Williams fixes memory leak.

 drivers/net/ethernet/intel/i40e/i40e.h             |   3 -
 drivers/net/ethernet/intel/i40e/i40e_client.c      |   5 +-
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c     | 232 ++++++++++++++-------
 drivers/net/ethernet/intel/i40e/i40e_main.c        |  35 +++-
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c |   9 +-
 drivers/net/ethernet/intel/i40evf/i40evf_main.c    |   4 +-
 6 files changed, 199 insertions(+), 89 deletions(-)

-- 
2.4.11


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

* [Intel-wired-lan] [next PATCH S40-V2 01/12] i40e: Fix a bug where a client close can be called before an open is complete
  2016-07-27 19:02 [Intel-wired-lan] [next PATCH S40-V2 00/12] i40e/i40evf updates Bimmy Pujari
@ 2016-07-27 19:02 ` Bimmy Pujari
  2016-07-29 15:00   ` Bowers, AndrewX
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 02/12] i40e/i40evf: Reset vlan filter count when resetting Bimmy Pujari
                   ` (10 subsequent siblings)
  11 siblings, 1 reply; 27+ messages in thread
From: Bimmy Pujari @ 2016-07-27 19:02 UTC (permalink / raw)
  To: intel-wired-lan

From: Anjali Singhai Jain <anjali.singhai@intel.com>

The client->open call in this path was not protected with the
client instance mutex, and hence the client->close can get initiated
before the open completes.

Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Change-Id: I0ed60c38868dd3f44966b6ed49a063d0e5b7edf5
---
 drivers/net/ethernet/intel/i40e/i40e_client.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_client.c b/drivers/net/ethernet/intel/i40e/i40e_client.c
index e1370c5..e14f041 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_client.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_client.c
@@ -541,6 +541,7 @@ void i40e_client_subtask(struct i40e_pf *pf)
 			 client->name, pf->hw.pf_id,
 			 pf->hw.bus.device, pf->hw.bus.func);
 
+		mutex_lock(&i40e_client_instance_mutex);
 		/* Send an Open request to the client */
 		atomic_inc(&cdev->ref_cnt);
 		if (client->ops && client->ops->open)
@@ -554,6 +555,7 @@ void i40e_client_subtask(struct i40e_pf *pf)
 			atomic_dec(&client->ref_cnt);
 			continue;
 		}
+		mutex_unlock(&i40e_client_instance_mutex);
 	}
 	mutex_unlock(&i40e_client_mutex);
 }
-- 
2.4.11


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

* [Intel-wired-lan] [next PATCH S40-V2 02/12] i40e/i40evf: Reset vlan filter count when resetting
  2016-07-27 19:02 [Intel-wired-lan] [next PATCH S40-V2 00/12] i40e/i40evf updates Bimmy Pujari
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 01/12] i40e: Fix a bug where a client close can be called before an open is complete Bimmy Pujari
@ 2016-07-27 19:02 ` Bimmy Pujari
  2016-07-29 15:18   ` Bowers, AndrewX
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 03/12] i40e: reset RX csum error stat with other pf stats Bimmy Pujari
                   ` (9 subsequent siblings)
  11 siblings, 1 reply; 27+ messages in thread
From: Bimmy Pujari @ 2016-07-27 19:02 UTC (permalink / raw)
  To: intel-wired-lan

From: Catherine Sullivan <catherine.sullivan@intel.com>

When we do a reset, all the vlan filters get added again. Therefore we also
want to reset the vlan count to 0 or we quickly run out of filters.

Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com>
Change-ID: I459f26851e22204dc8b8999928ad87cde8170119
---
Testing Hints: Make sure that you don't run out of filters when doing
multiple resets.

 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index 6fcbf76..0fa050a 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -992,6 +992,7 @@ complete_reset:
 		set_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states);
 		clear_bit(I40E_VF_STAT_DISABLED, &vf->vf_states);
 		i40e_notify_client_of_vf_reset(pf, abs_vf_id);
+		vf->num_vlan = 0;
 	}
 	/* tell the VF the reset is done */
 	wr32(hw, I40E_VFGEN_RSTAT1(vf->vf_id), I40E_VFR_VFACTIVE);
-- 
2.4.11


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

* [Intel-wired-lan] [next PATCH S40-V2 03/12] i40e: reset RX csum error stat with other pf stats
  2016-07-27 19:02 [Intel-wired-lan] [next PATCH S40-V2 00/12] i40e/i40evf updates Bimmy Pujari
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 01/12] i40e: Fix a bug where a client close can be called before an open is complete Bimmy Pujari
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 02/12] i40e/i40evf: Reset vlan filter count when resetting Bimmy Pujari
@ 2016-07-27 19:02 ` Bimmy Pujari
  2016-07-29 16:03   ` Bowers, AndrewX
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 04/12] i40evf: add missing rtnl_lock() around i40evf_set_interrupt_capability Bimmy Pujari
                   ` (8 subsequent siblings)
  11 siblings, 1 reply; 27+ messages in thread
From: Bimmy Pujari @ 2016-07-27 19:02 UTC (permalink / raw)
  To: intel-wired-lan

From: Catherine Sullivan <catherine.sullivan@intel.com>

When we are resetting the pf stats we should also reset the RX csum
error stat.

Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com>
Change-ID: I7af5ee0ec81a10f6deee1a7b8c2082ea068ef620
---
Testing Hints: Make sure the port.rx_csum_bad stat resets in ethtool
after a pfr.

 drivers/net/ethernet/intel/i40e/i40e_main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 2cf9d5b..77a35cf 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -527,6 +527,7 @@ void i40e_pf_reset_stats(struct i40e_pf *pf)
 			pf->veb[i]->stat_offsets_loaded = false;
 		}
 	}
+	pf->hw_csum_rx_error = 0;
 }
 
 /**
-- 
2.4.11


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

* [Intel-wired-lan] [next PATCH S40-V2 04/12] i40evf: add missing rtnl_lock() around i40evf_set_interrupt_capability
  2016-07-27 19:02 [Intel-wired-lan] [next PATCH S40-V2 00/12] i40e/i40evf updates Bimmy Pujari
                   ` (2 preceding siblings ...)
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 03/12] i40e: reset RX csum error stat with other pf stats Bimmy Pujari
@ 2016-07-27 19:02 ` Bimmy Pujari
  2016-07-29 16:10   ` Bowers, AndrewX
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 05/12] i40e: Fix static analysis tool warning Bimmy Pujari
                   ` (7 subsequent siblings)
  11 siblings, 1 reply; 27+ messages in thread
From: Bimmy Pujari @ 2016-07-27 19:02 UTC (permalink / raw)
  To: intel-wired-lan

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

The function calls netif_set_real_num_(tx|rx)_queues, both of which
should be done only under rntl lock. Unfortunately the
i40evf_init_task did not hold the rtnl_lock as necessary. This patch
adds the locking needed.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Change-ID: Ib72a21c3ce22b71a226b16f9bbe0f5f8cc3e849b
---
 drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index 600fb9c..d1d4a65 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -1420,7 +1420,9 @@ int i40evf_init_interrupt_scheme(struct i40evf_adapter *adapter)
 {
 	int err;
 
+	rtnl_lock();
 	err = i40evf_set_interrupt_capability(adapter);
+	rtnl_unlock();
 	if (err) {
 		dev_err(&adapter->pdev->dev,
 			"Unable to setup interrupt capabilities\n");
-- 
2.4.11


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

* [Intel-wired-lan] [next PATCH S40-V2 05/12] i40e: Fix static analysis tool warning
  2016-07-27 19:02 [Intel-wired-lan] [next PATCH S40-V2 00/12] i40e/i40evf updates Bimmy Pujari
                   ` (3 preceding siblings ...)
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 04/12] i40evf: add missing rtnl_lock() around i40evf_set_interrupt_capability Bimmy Pujari
@ 2016-07-27 19:02 ` Bimmy Pujari
  2016-07-29 16:21   ` Bowers, AndrewX
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 06/12] i40e: don't allow reduction of channels below active FD rules Bimmy Pujari
                   ` (6 subsequent siblings)
  11 siblings, 1 reply; 27+ messages in thread
From: Bimmy Pujari @ 2016-07-27 19:02 UTC (permalink / raw)
  To: intel-wired-lan

From: Dave Ertman <david.m.ertman@intel.com>

This patch fixes a problem where a static analysis tool generates
a warning for "INVARIANT_CONDITION: Expression 'enabled_tc' used
in the condition always yields the same result."

Without this patch, the driver will not pass the static analysis
tool checks without generating warnings.

This patch fixes the problem by eliminating the irrelevant check
and redundant assignment for the value of enabled_tc.

Signed-off-by: Dave Ertman <david.m.ertman@intel.com>
Change-ID: Ia7d44cb050f507df7de333e96369d322e08bf408
---
 drivers/net/ethernet/intel/i40e/i40e_main.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 77a35cf..d80efc1 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -4590,7 +4590,7 @@ static u8 i40e_dcb_get_enabled_tc(struct i40e_dcbx_config *dcbcfg)
 static u8 i40e_pf_get_num_tc(struct i40e_pf *pf)
 {
 	struct i40e_hw *hw = &pf->hw;
-	u8 i, enabled_tc;
+	u8 i, enabled_tc = 1;
 	u8 num_tc = 0;
 	struct i40e_dcbx_config *dcbcfg = &hw->local_dcbx_config;
 
@@ -4608,8 +4608,6 @@ static u8 i40e_pf_get_num_tc(struct i40e_pf *pf)
 	else
 		return 1; /* Only TC0 */
 
-	/* At least have TC0 */
-	enabled_tc = (enabled_tc ? enabled_tc : 0x1);
 	for (i = 0; i < I40E_MAX_TRAFFIC_CLASS; i++) {
 		if (enabled_tc & BIT(i))
 			num_tc++;
-- 
2.4.11


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

* [Intel-wired-lan] [next PATCH S40-V2 06/12] i40e: don't allow reduction of channels below active FD rules
  2016-07-27 19:02 [Intel-wired-lan] [next PATCH S40-V2 00/12] i40e/i40evf updates Bimmy Pujari
                   ` (4 preceding siblings ...)
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 05/12] i40e: Fix static analysis tool warning Bimmy Pujari
@ 2016-07-27 19:02 ` Bimmy Pujari
  2016-08-03 17:24   ` Bowers, AndrewX
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 07/12] i40e: Force register writes to mitigate sync issues with iwarp VF driver Bimmy Pujari
                   ` (5 subsequent siblings)
  11 siblings, 1 reply; 27+ messages in thread
From: Bimmy Pujari @ 2016-07-27 19:02 UTC (permalink / raw)
  To: intel-wired-lan

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

If a driver is unable to maintain all current user supplied settings
from ethtool (or other sources), it is not ok for a user request to
succeed and silently trample over previous configuration.

To that end, if you change the number of channels, it must not be
allowed to reduce the number of channels (queues) below the current
flow director filter rules targets. In this case, return -EINVAL when
a request to reduce the number of channels would do so. In addition
log a warning to the kernel buffer explaining why we failed, and report
the rules which prevent us from lowering the number of channels.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Change-ID: If41464d63d7aab11cedf09e4f3aa1a69e21ffd88
---
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index e7613b2..1a06af9 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -2860,11 +2860,15 @@ static void i40e_get_channels(struct net_device *dev,
 static int i40e_set_channels(struct net_device *dev,
 			      struct ethtool_channels *ch)
 {
+	const u8 drop = I40E_FILTER_PROGRAM_DESC_DEST_DROP_PACKET;
 	struct i40e_netdev_priv *np = netdev_priv(dev);
 	unsigned int count = ch->combined_count;
 	struct i40e_vsi *vsi = np->vsi;
 	struct i40e_pf *pf = vsi->back;
+	struct i40e_fdir_filter *rule;
+	struct hlist_node *node2;
 	int new_count;
+	int err = 0;
 
 	/* We do not support setting channels for any other VSI at present */
 	if (vsi->type != I40E_VSI_MAIN)
@@ -2882,6 +2886,26 @@ static int i40e_set_channels(struct net_device *dev,
 	if (count > i40e_max_channels(vsi))
 		return -EINVAL;
 
+	/* verify that the number of channels does not invalidate any current
+	 * flow director rules
+	 */
+	hlist_for_each_entry_safe(rule, node2,
+				  &pf->fdir_filter_list, fdir_node) {
+		if (rule->dest_ctl != drop && count <= rule->q_index) {
+			dev_warn(&pf->pdev->dev,
+				 "Existing user defined filter %d assigns flow to queue %d\n",
+				 rule->fd_id, rule->q_index);
+			err = -EINVAL;
+		}
+	}
+
+	if (err) {
+		dev_err(&pf->pdev->dev,
+			"Existing filter rules must be deleted to reduce combined channel count to %d\n",
+			count);
+		return err;
+	}
+
 	/* update feature limits from largest to smallest supported values */
 	/* TODO: Flow director limit, DCB etc */
 
-- 
2.4.11


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

* [Intel-wired-lan] [next PATCH S40-V2 07/12] i40e: Force register writes to mitigate sync issues with iwarp VF driver
  2016-07-27 19:02 [Intel-wired-lan] [next PATCH S40-V2 00/12] i40e/i40evf updates Bimmy Pujari
                   ` (5 preceding siblings ...)
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 06/12] i40e: don't allow reduction of channels below active FD rules Bimmy Pujari
@ 2016-07-27 19:02 ` Bimmy Pujari
  2016-07-29 17:02   ` Bowers, AndrewX
  2016-07-29 17:04   ` Bowers, AndrewX
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 08/12] i40e: Don't notify client of VF reset during VF creation Bimmy Pujari
                   ` (4 subsequent siblings)
  11 siblings, 2 replies; 27+ messages in thread
From: Bimmy Pujari @ 2016-07-27 19:02 UTC (permalink / raw)
  To: intel-wired-lan

From: Avinash Dayanand <avinash.dayanand@intel.com>

This patch is a fix for the bug i.e. unable to create iwarp device
in VF. This is a sync issue and the iwarp device open is called even
before the PCI register writes are done.

Forcing the PCI register writes to happen just before it exits the
function.

Signed-off-by: Avinash Dayanand <avinash.dayanand@intel.com>
Change-ID: I60c6a2c709da89e845f2764cc50ce8b7373c8c44
---
 drivers/net/ethernet/intel/i40e/i40e_client.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_client.c b/drivers/net/ethernet/intel/i40e/i40e_client.c
index e14f041..701876c 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_client.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_client.c
@@ -794,7 +794,8 @@ static int i40e_client_setup_qvlist(struct i40e_info *ldev,
 			wr32(hw, I40E_PFINT_AEQCTL, reg);
 		}
 	}
-
+	/* Mitigate sync problems with iwarp VF driver */
+	i40e_flush(hw);
 	return 0;
 err:
 	kfree(ldev->qvlist_info);
-- 
2.4.11


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

* [Intel-wired-lan] [next PATCH S40-V2 08/12] i40e: Don't notify client of VF reset during VF creation
  2016-07-27 19:02 [Intel-wired-lan] [next PATCH S40-V2 00/12] i40e/i40evf updates Bimmy Pujari
                   ` (6 preceding siblings ...)
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 07/12] i40e: Force register writes to mitigate sync issues with iwarp VF driver Bimmy Pujari
@ 2016-07-27 19:02 ` Bimmy Pujari
  2016-08-01 14:10   ` Bowers, AndrewX
  2016-08-03 16:39   ` Bowers, AndrewX
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 09/12] i40e: fix lookup table when RSS disabled/enabled Bimmy Pujari
                   ` (3 subsequent siblings)
  11 siblings, 2 replies; 27+ messages in thread
From: Bimmy Pujari @ 2016-07-27 19:02 UTC (permalink / raw)
  To: intel-wired-lan

From: Avinash Dayanand <avinash.dayanand@intel.com>

VF goes through reset path during VF creation which happens to also
have notification of VF reset to client. Adding conditional check to
avoid wrongly notifying VF reset during VF creation.

Also changing the call order of VF enable, calling it after VF creation
rather than before.

Signed-off-by: Avinash Dayanand <avinash.dayanand@intel.com>
Change-ID: I96eabd99deae746a2f0fc465194c886f196178ce
---
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index 0fa050a..5ea659c 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -991,7 +991,9 @@ complete_reset:
 		i40e_enable_vf_mappings(vf);
 		set_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states);
 		clear_bit(I40E_VF_STAT_DISABLED, &vf->vf_states);
-		i40e_notify_client_of_vf_reset(pf, abs_vf_id);
+		/* Do not notify the client during VF init */
+		if (vf->pf->num_alloc_vfs)
+			i40e_notify_client_of_vf_reset(pf, abs_vf_id);
 		vf->num_vlan = 0;
 	}
 	/* tell the VF the reset is done */
@@ -1090,7 +1092,6 @@ int i40e_alloc_vfs(struct i40e_pf *pf, u16 num_alloc_vfs)
 			goto err_iov;
 		}
 	}
-	i40e_notify_client_of_vf_enable(pf, num_alloc_vfs);
 	/* allocate memory */
 	vfs = kcalloc(num_alloc_vfs, sizeof(struct i40e_vf), GFP_KERNEL);
 	if (!vfs) {
@@ -1114,6 +1115,8 @@ int i40e_alloc_vfs(struct i40e_pf *pf, u16 num_alloc_vfs)
 	}
 	pf->num_alloc_vfs = num_alloc_vfs;
 
+	i40e_notify_client_of_vf_enable(pf, num_alloc_vfs);
+
 err_alloc:
 	if (ret)
 		i40e_free_vfs(pf);
-- 
2.4.11


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

* [Intel-wired-lan] [next PATCH S40-V2 09/12] i40e: fix lookup table when RSS disabled/enabled
  2016-07-27 19:02 [Intel-wired-lan] [next PATCH S40-V2 00/12] i40e/i40evf updates Bimmy Pujari
                   ` (7 preceding siblings ...)
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 08/12] i40e: Don't notify client of VF reset during VF creation Bimmy Pujari
@ 2016-07-27 19:02 ` Bimmy Pujari
  2016-07-29 17:10   ` Bowers, AndrewX
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 10/12] i40e: fix memory leak Bimmy Pujari
                   ` (2 subsequent siblings)
  11 siblings, 1 reply; 27+ messages in thread
From: Bimmy Pujari @ 2016-07-27 19:02 UTC (permalink / raw)
  To: intel-wired-lan

From: "Alan Brady" <alan.brady@intel.com>

This patch fixes the bug which causes RSS to continue to work
after being disabled.  After disabling RSS, traffic would continue
to be assigned to different queues instead of falling back to a
single queue. Without this patch, attempting to disable RSS would
not work as expected. This patch fixes the bug by clearing the
lookup table used by RSS such that all traffic is assigned to a
single queue.  This patch also addresses the issue of reinstating
 the lookup table should RSS then be re-enabled.

Signed-off-by: Alan Brady <alan.brady@intel.com>
Change-ID: Ib20c7c6a7e9f1f772bb787370f8a8c664796b141
---
 drivers/net/ethernet/intel/i40e/i40e_main.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index d80efc1..38b2c3d 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -8666,6 +8666,28 @@ bool i40e_set_ntuple(struct i40e_pf *pf, netdev_features_t features)
 }
 
 /**
+ * i40e_clear_rss_lut - clear the rx hash lookup table
+ * @vsi: the VSI being configured
+ **/
+static void i40e_clear_rss_lut(struct i40e_vsi *vsi)
+{
+	struct i40e_pf *pf = vsi->back;
+	struct i40e_hw *hw = &pf->hw;
+	u16 vf_id = vsi->vf_id;
+	u8 i;
+
+	if (vsi->type == I40E_VSI_MAIN) {
+		for (i = 0; i <= I40E_PFQF_HLUT_MAX_INDEX; i++)
+			wr32(hw, I40E_PFQF_HLUT(i), 0);
+	} else if (vsi->type == I40E_VSI_SRIOV) {
+		for (i = 0; i <= I40E_VFQF_HLUT_MAX_INDEX; i++)
+			i40e_write_rx_ctl(hw, I40E_VFQF_HLUT1(i, vf_id), 0);
+	} else {
+		dev_err(&pf->pdev->dev, "Cannot set RSS LUT - invalid VSI type\n");
+	}
+}
+
+/**
  * i40e_set_features - set the netdev feature flags
  * @netdev: ptr to the netdev being adjusted
  * @features: the feature set that the stack is suggesting
@@ -8678,6 +8700,12 @@ static int i40e_set_features(struct net_device *netdev,
 	struct i40e_pf *pf = vsi->back;
 	bool need_reset;
 
+	if (features & NETIF_F_RXHASH && !(netdev->features & NETIF_F_RXHASH))
+		i40e_pf_config_rss(pf);
+	else if (!(features & NETIF_F_RXHASH) &&
+		 netdev->features & NETIF_F_RXHASH)
+		i40e_clear_rss_lut(vsi);
+
 	if (features & NETIF_F_HW_VLAN_CTAG_RX)
 		i40e_vlan_stripping_enable(vsi);
 	else
-- 
2.4.11


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

* [Intel-wired-lan] [next PATCH S40-V2 10/12] i40e: fix memory leak
  2016-07-27 19:02 [Intel-wired-lan] [next PATCH S40-V2 00/12] i40e/i40evf updates Bimmy Pujari
                   ` (8 preceding siblings ...)
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 09/12] i40e: fix lookup table when RSS disabled/enabled Bimmy Pujari
@ 2016-07-27 19:02 ` Bimmy Pujari
  2016-07-29 17:17   ` Bowers, AndrewX
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 11/12] i40e: Allow RSS Hash set with less than four parameters Bimmy Pujari
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 12/12] i40e/i40evf-Bump version from 1.6.11 to 1.6.12 Bimmy Pujari
  11 siblings, 1 reply; 27+ messages in thread
From: Bimmy Pujari @ 2016-07-27 19:02 UTC (permalink / raw)
  To: intel-wired-lan

From: Mitch Williams <mitch.a.williams@intel.com>

When we allocate memory, we must free it. It's simple courtesy.

Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Change-ID: Id007294096fb53344f1a8b9a0f78eddf9853c5d6
---
ting Hints : Found by inspection. The VF driver
doesn't currently call this function, so not testable.

 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index 5ea659c..68e3482 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -2318,6 +2318,7 @@ err:
 	/* send the response back to the VF */
 	aq_ret = i40e_vc_send_msg_to_vf(vf, I40E_VIRTCHNL_OP_GET_RSS_HENA_CAPS,
 					aq_ret, (u8 *)vrh, len);
+	kfree(vrh);
 	return aq_ret;
 }
 
-- 
2.4.11


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

* [Intel-wired-lan] [next PATCH S40-V2 11/12] i40e: Allow RSS Hash set with less than four parameters
  2016-07-27 19:02 [Intel-wired-lan] [next PATCH S40-V2 00/12] i40e/i40evf updates Bimmy Pujari
                   ` (9 preceding siblings ...)
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 10/12] i40e: fix memory leak Bimmy Pujari
@ 2016-07-27 19:02 ` Bimmy Pujari
  2016-07-29 17:26   ` Bowers, AndrewX
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 12/12] i40e/i40evf-Bump version from 1.6.11 to 1.6.12 Bimmy Pujari
  11 siblings, 1 reply; 27+ messages in thread
From: Bimmy Pujari @ 2016-07-27 19:02 UTC (permalink / raw)
  To: intel-wired-lan

From: Carolyn Wyborny <carolyn.wyborny@intel.com>

This patch implements a feature change which allows using ethtool to set
rss hash opts using less than four parameters if desired.

Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Signed-off-by: Kiran Patil <kiran.patil@intel.com>
Change-ID: I0fbb91255d81e997c456697c21ac39cc9754821b
---
 drivers/net/ethernet/intel/i40e/i40e.h         |   3 -
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 208 +++++++++++++++----------
 2 files changed, 130 insertions(+), 81 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index 2a88291..8dc98c2 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -586,9 +586,6 @@ struct i40e_vsi {
 
 	/* VSI specific handlers */
 	irqreturn_t (*irq_handler)(int irq, void *data);
-
-	/* current rxnfc data */
-	struct ethtool_rxnfc rxnfc; /* current rss hash opts */
 } ____cacheline_internodealigned_in_smp;
 
 struct i40e_netdev_priv {
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index 1a06af9..5d284bd 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -2141,41 +2141,72 @@ static int i40e_set_per_queue_coalesce(struct net_device *netdev, u32 queue,
  **/
 static int i40e_get_rss_hash_opts(struct i40e_pf *pf, struct ethtool_rxnfc *cmd)
 {
+	struct i40e_hw *hw = &pf->hw;
+	u8 flow_pctype = 0;
+	u64 i_set = 0;
+
 	cmd->data = 0;
 
-	if (pf->vsi[pf->lan_vsi]->rxnfc.data != 0) {
-		cmd->data = pf->vsi[pf->lan_vsi]->rxnfc.data;
-		cmd->flow_type = pf->vsi[pf->lan_vsi]->rxnfc.flow_type;
-		return 0;
-	}
-	/* Report default options for RSS on i40e */
 	switch (cmd->flow_type) {
 	case TCP_V4_FLOW:
+		flow_pctype = I40E_FILTER_PCTYPE_NONF_IPV4_TCP;
+		break;
 	case UDP_V4_FLOW:
-		cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3;
-	/* fall through to add IP fields */
+		flow_pctype = I40E_FILTER_PCTYPE_NONF_IPV4_UDP;
+		break;
+	case TCP_V6_FLOW:
+		flow_pctype = I40E_FILTER_PCTYPE_NONF_IPV6_TCP;
+		break;
+	case UDP_V6_FLOW:
+		flow_pctype = I40E_FILTER_PCTYPE_NONF_IPV6_UDP;
+		break;
 	case SCTP_V4_FLOW:
 	case AH_ESP_V4_FLOW:
 	case AH_V4_FLOW:
 	case ESP_V4_FLOW:
 	case IPV4_FLOW:
-		cmd->data |= RXH_IP_SRC | RXH_IP_DST;
-		break;
-	case TCP_V6_FLOW:
-	case UDP_V6_FLOW:
-		cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3;
-	/* fall through to add IP fields */
 	case SCTP_V6_FLOW:
 	case AH_ESP_V6_FLOW:
 	case AH_V6_FLOW:
 	case ESP_V6_FLOW:
 	case IPV6_FLOW:
+		/* Default is src/dest for IP, no matter the L4 hashing */
 		cmd->data |= RXH_IP_SRC | RXH_IP_DST;
 		break;
 	default:
 		return -EINVAL;
 	}
 
+	/* Read flow based hash input set register */
+	if (flow_pctype) {
+		i_set = (u64)i40e_read_rx_ctl(hw, I40E_GLQF_HASH_INSET(0,
+					      flow_pctype)) |
+			((u64)i40e_read_rx_ctl(hw, I40E_GLQF_HASH_INSET(1,
+					       flow_pctype)) << 32);
+	}
+
+	/* Process bits of hash input set */
+	if (i_set) {
+		if (i_set & I40E_L4_SRC_MASK)
+			cmd->data |= RXH_L4_B_0_1;
+		if (i_set & I40E_L4_DST_MASK)
+			cmd->data |= RXH_L4_B_2_3;
+
+		if (cmd->flow_type == TCP_V4_FLOW ||
+		    cmd->flow_type == UDP_V4_FLOW) {
+			if (i_set & I40E_L3_SRC_MASK)
+				cmd->data |= RXH_IP_SRC;
+			if (i_set & I40E_L3_DST_MASK)
+				cmd->data |= RXH_IP_DST;
+		} else if (cmd->flow_type == TCP_V6_FLOW ||
+			  cmd->flow_type == UDP_V6_FLOW) {
+			if (i_set & I40E_L3_V6_SRC_MASK)
+				cmd->data |= RXH_IP_SRC;
+			if (i_set & I40E_L3_V6_DST_MASK)
+				cmd->data |= RXH_IP_DST;
+		}
+	}
+
 	return 0;
 }
 
@@ -2318,6 +2349,51 @@ static int i40e_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *cmd,
 }
 
 /**
+ * i40e_get_rss_hash_bits - Read RSS Hash bits from register
+ * @nfc: pointer to user request
+ * @i_setc bits currently set
+ *
+ * Returns value of bits to be set per user request
+ **/
+static u64 i40e_get_rss_hash_bits(struct ethtool_rxnfc *nfc, u64 i_setc)
+{
+	u64 i_set = i_setc;
+	u64 src_l3 = 0, dst_l3 = 0;
+
+	if (nfc->data & RXH_L4_B_0_1)
+		i_set |= I40E_L4_SRC_MASK;
+	else
+		i_set &= ~I40E_L4_SRC_MASK;
+	if (nfc->data & RXH_L4_B_2_3)
+		i_set |= I40E_L4_DST_MASK;
+	else
+		i_set &= ~I40E_L4_DST_MASK;
+
+	if (nfc->flow_type == TCP_V6_FLOW || nfc->flow_type == UDP_V6_FLOW) {
+		src_l3 = I40E_L3_V6_SRC_MASK;
+		dst_l3 = I40E_L3_V6_DST_MASK;
+	} else if (nfc->flow_type == TCP_V4_FLOW ||
+		  nfc->flow_type == UDP_V4_FLOW) {
+		src_l3 = I40E_L3_SRC_MASK;
+		dst_l3 = I40E_L3_DST_MASK;
+	} else {
+		/* Any other flow type are not supported here */
+		return i_set;
+	}
+
+	if (nfc->data & RXH_IP_SRC)
+		i_set |= src_l3;
+	else
+		i_set &= ~src_l3;
+	if (nfc->data & RXH_IP_DST)
+		i_set |= dst_l3;
+	else
+		i_set &= ~dst_l3;
+
+	return i_set;
+}
+
+/**
  * i40e_set_rss_hash_opt - Enable/Disable flow types for RSS hash
  * @pf: pointer to the physical function struct
  * @cmd: ethtool rxnfc command
@@ -2329,6 +2405,8 @@ static int i40e_set_rss_hash_opt(struct i40e_pf *pf, struct ethtool_rxnfc *nfc)
 	struct i40e_hw *hw = &pf->hw;
 	u64 hena = (u64)i40e_read_rx_ctl(hw, I40E_PFQF_HENA(0)) |
 		   ((u64)i40e_read_rx_ctl(hw, I40E_PFQF_HENA(1)) << 32);
+	u8 flow_pctype = 0;
+	u64 i_set, i_setc;
 
 	/* RSS does not support anything other than hashing
 	 * to queues on src and dst IPs and ports
@@ -2337,75 +2415,39 @@ static int i40e_set_rss_hash_opt(struct i40e_pf *pf, struct ethtool_rxnfc *nfc)
 			  RXH_L4_B_0_1 | RXH_L4_B_2_3))
 		return -EINVAL;
 
-	/* We need@least the IP SRC and DEST fields for hashing */
-	if (!(nfc->data & RXH_IP_SRC) ||
-	    !(nfc->data & RXH_IP_DST))
-		return -EINVAL;
-
 	switch (nfc->flow_type) {
 	case TCP_V4_FLOW:
-		switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
-		case 0:
-			return -EINVAL;
-		case (RXH_L4_B_0_1 | RXH_L4_B_2_3):
-			if (pf->flags & I40E_FLAG_MULTIPLE_TCP_UDP_RSS_PCTYPE)
-				hena |=
-			   BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV4_TCP_SYN_NO_ACK);
-
-			hena |= BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV4_TCP);
-			break;
-		default:
-			return -EINVAL;
-		}
+		flow_pctype = I40E_FILTER_PCTYPE_NONF_IPV4_TCP;
+		if (pf->flags & I40E_FLAG_MULTIPLE_TCP_UDP_RSS_PCTYPE)
+			hena |=
+			  BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV4_TCP_SYN_NO_ACK);
 		break;
 	case TCP_V6_FLOW:
-		switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
-		case 0:
-			return -EINVAL;
-		case (RXH_L4_B_0_1 | RXH_L4_B_2_3):
-			if (pf->flags & I40E_FLAG_MULTIPLE_TCP_UDP_RSS_PCTYPE)
-				hena |=
-			   BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV6_TCP_SYN_NO_ACK);
-
-			hena |= BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV6_TCP);
-			break;
-		default:
-			return -EINVAL;
-		}
+		flow_pctype = I40E_FILTER_PCTYPE_NONF_IPV6_TCP;
+		if (pf->flags & I40E_FLAG_MULTIPLE_TCP_UDP_RSS_PCTYPE)
+			hena |=
+			  BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV4_TCP_SYN_NO_ACK);
+		if (pf->flags & I40E_FLAG_MULTIPLE_TCP_UDP_RSS_PCTYPE)
+			hena |=
+			  BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV6_TCP_SYN_NO_ACK);
 		break;
 	case UDP_V4_FLOW:
-		switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
-		case 0:
-			return -EINVAL;
-		case (RXH_L4_B_0_1 | RXH_L4_B_2_3):
-			if (pf->flags & I40E_FLAG_MULTIPLE_TCP_UDP_RSS_PCTYPE)
-				hena |=
-			    BIT_ULL(I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP) |
-			    BIT_ULL(I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV4_UDP);
-
-			hena |= (BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV4_UDP) |
-				 BIT_ULL(I40E_FILTER_PCTYPE_FRAG_IPV4));
-			break;
-		default:
-			return -EINVAL;
-		}
+		flow_pctype = I40E_FILTER_PCTYPE_NONF_IPV4_UDP;
+		if (pf->flags & I40E_FLAG_MULTIPLE_TCP_UDP_RSS_PCTYPE)
+			hena |=
+			  BIT_ULL(I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP) |
+			  BIT_ULL(I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV4_UDP);
+
+		hena |= BIT_ULL(I40E_FILTER_PCTYPE_FRAG_IPV4);
 		break;
 	case UDP_V6_FLOW:
-		switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
-		case 0:
-			return -EINVAL;
-		case (RXH_L4_B_0_1 | RXH_L4_B_2_3):
-			if (pf->flags & I40E_FLAG_MULTIPLE_TCP_UDP_RSS_PCTYPE)
-				hena |=
-			    BIT_ULL(I40E_FILTER_PCTYPE_NONF_UNICAST_IPV6_UDP) |
-			    BIT_ULL(I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV6_UDP);
-
-			hena |= (BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV6_UDP) |
-				 BIT_ULL(I40E_FILTER_PCTYPE_FRAG_IPV6));
-			break;
-		default:
-			return -EINVAL;
-		}
+		flow_pctype = I40E_FILTER_PCTYPE_NONF_IPV6_UDP;
+		if (pf->flags & I40E_FLAG_MULTIPLE_TCP_UDP_RSS_PCTYPE)
+			hena |=
+			  BIT_ULL(I40E_FILTER_PCTYPE_NONF_UNICAST_IPV6_UDP) |
+			  BIT_ULL(I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV6_UDP);
+
+		hena |= BIT_ULL(I40E_FILTER_PCTYPE_FRAG_IPV6);
 		break;
 	case AH_ESP_V4_FLOW:
 	case AH_V4_FLOW:
@@ -2437,13 +2479,23 @@ static int i40e_set_rss_hash_opt(struct i40e_pf *pf, struct ethtool_rxnfc *nfc)
 		return -EINVAL;
 	}
 
+	if (flow_pctype) {
+		i_setc = (u64)i40e_read_rx_ctl(hw, I40E_GLQF_HASH_INSET(0,
+					       flow_pctype)) |
+			((u64)i40e_read_rx_ctl(hw, I40E_GLQF_HASH_INSET(1,
+					       flow_pctype)) << 32);
+		i_set = i40e_get_rss_hash_bits(nfc, i_setc);
+		i40e_write_rx_ctl(hw, I40E_GLQF_HASH_INSET(0, flow_pctype),
+				  (u32)i_set);
+		i40e_write_rx_ctl(hw, I40E_GLQF_HASH_INSET(1, flow_pctype),
+				  (u32)(i_set >> 32));
+		hena |= BIT_ULL(flow_pctype);
+	}
+
 	i40e_write_rx_ctl(hw, I40E_PFQF_HENA(0), (u32)hena);
 	i40e_write_rx_ctl(hw, I40E_PFQF_HENA(1), (u32)(hena >> 32));
 	i40e_flush(hw);
 
-	/* Save setting for future output/update */
-	pf->vsi[pf->lan_vsi]->rxnfc = *nfc;
-
 	return 0;
 }
 
-- 
2.4.11


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

* [Intel-wired-lan] [next PATCH S40-V2 12/12] i40e/i40evf-Bump version from 1.6.11 to 1.6.12
  2016-07-27 19:02 [Intel-wired-lan] [next PATCH S40-V2 00/12] i40e/i40evf updates Bimmy Pujari
                   ` (10 preceding siblings ...)
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 11/12] i40e: Allow RSS Hash set with less than four parameters Bimmy Pujari
@ 2016-07-27 19:02 ` Bimmy Pujari
  2016-07-29 17:27   ` Bowers, AndrewX
  11 siblings, 1 reply; 27+ messages in thread
From: Bimmy Pujari @ 2016-07-27 19:02 UTC (permalink / raw)
  To: intel-wired-lan

Signed-off-by: Bimmy Pujari <Bimmy.pujari@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 38b2c3d..feabb82 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -41,7 +41,7 @@ static const char i40e_driver_string[] =
 
 #define DRV_VERSION_MAJOR 1
 #define DRV_VERSION_MINOR 6
-#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 d1d4a65..ba046d1 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 6
-#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) \
-- 
2.4.11


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

* [Intel-wired-lan] [next PATCH S40-V2 01/12] i40e: Fix a bug where a client close can be called before an open is complete
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 01/12] i40e: Fix a bug where a client close can be called before an open is complete Bimmy Pujari
@ 2016-07-29 15:00   ` Bowers, AndrewX
  0 siblings, 0 replies; 27+ messages in thread
From: Bowers, AndrewX @ 2016-07-29 15:00 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Bimmy Pujari
> Sent: Wednesday, July 27, 2016 12:03 PM
> To: intel-wired-lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S40-V2 01/12] i40e: Fix a bug where a
> client close can be called before an open is complete
> 
> From: Anjali Singhai Jain <anjali.singhai@intel.com>
> 
> The client->open call in this path was not protected with the client instance
> mutex, and hence the client->close can get initiated before the open
> completes.
> 
> Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
> Change-Id: I0ed60c38868dd3f44966b6ed49a063d0e5b7edf5
> ---
>  drivers/net/ethernet/intel/i40e/i40e_client.c | 2 ++
>  1 file changed, 2 insertions(+)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>

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

* [Intel-wired-lan] [next PATCH S40-V2 02/12] i40e/i40evf: Reset vlan filter count when resetting
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 02/12] i40e/i40evf: Reset vlan filter count when resetting Bimmy Pujari
@ 2016-07-29 15:18   ` Bowers, AndrewX
  0 siblings, 0 replies; 27+ messages in thread
From: Bowers, AndrewX @ 2016-07-29 15:18 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Bimmy Pujari
> Sent: Wednesday, July 27, 2016 12:03 PM
> To: intel-wired-lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S40-V2 02/12] i40e/i40evf: Reset vlan
> filter count when resetting
> 
> From: Catherine Sullivan <catherine.sullivan@intel.com>
> 
> When we do a reset, all the vlan filters get added again. Therefore we also
> want to reset the vlan count to 0 or we quickly run out of filters.
> 
> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com>
> Change-ID: I459f26851e22204dc8b8999928ad87cde8170119
> ---
> Testing Hints: Make sure that you don't run out of filters when doing multiple
> resets.
> 
>  drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 1 +
>  1 file changed, 1 insertion(+)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Able to perform multiple resets with VLAN filters, without running out of filters

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

* [Intel-wired-lan] [next PATCH S40-V2 03/12] i40e: reset RX csum error stat with other pf stats
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 03/12] i40e: reset RX csum error stat with other pf stats Bimmy Pujari
@ 2016-07-29 16:03   ` Bowers, AndrewX
  0 siblings, 0 replies; 27+ messages in thread
From: Bowers, AndrewX @ 2016-07-29 16:03 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Bimmy Pujari
> Sent: Wednesday, July 27, 2016 12:03 PM
> To: intel-wired-lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S40-V2 03/12] i40e: reset RX csum
> error stat with other pf stats
> 
> From: Catherine Sullivan <catherine.sullivan@intel.com>
> 
> When we are resetting the pf stats we should also reset the RX csum error
> stat.
> 
> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com>
> Change-ID: I7af5ee0ec81a10f6deee1a7b8c2082ea068ef620
> ---
> Testing Hints: Make sure the port.rx_csum_bad stat resets in ethtool after a
> pfr.
> 
>  drivers/net/ethernet/intel/i40e/i40e_main.c | 1 +
>  1 file changed, 1 insertion(+)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Stats properly reset

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

* [Intel-wired-lan] [next PATCH S40-V2 04/12] i40evf: add missing rtnl_lock() around i40evf_set_interrupt_capability
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 04/12] i40evf: add missing rtnl_lock() around i40evf_set_interrupt_capability Bimmy Pujari
@ 2016-07-29 16:10   ` Bowers, AndrewX
  0 siblings, 0 replies; 27+ messages in thread
From: Bowers, AndrewX @ 2016-07-29 16:10 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Bimmy Pujari
> Sent: Wednesday, July 27, 2016 12:03 PM
> To: intel-wired-lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S40-V2 04/12] i40evf: add missing
> rtnl_lock() around i40evf_set_interrupt_capability
> 
> From: Jacob Keller <jacob.e.keller@intel.com>
> 
> The function calls netif_set_real_num_(tx|rx)_queues, both of which should
> be done only under rntl lock. Unfortunately the i40evf_init_task did not hold
> the rtnl_lock as necessary. This patch adds the locking needed.
> 
> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
> Change-ID: Ib72a21c3ce22b71a226b16f9bbe0f5f8cc3e849b
> ---
>  drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 ++
>  1 file changed, 2 insertions(+)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>

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

* [Intel-wired-lan] [next PATCH S40-V2 05/12] i40e: Fix static analysis tool warning
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 05/12] i40e: Fix static analysis tool warning Bimmy Pujari
@ 2016-07-29 16:21   ` Bowers, AndrewX
  0 siblings, 0 replies; 27+ messages in thread
From: Bowers, AndrewX @ 2016-07-29 16:21 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Bimmy Pujari
> Sent: Wednesday, July 27, 2016 12:03 PM
> To: intel-wired-lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S40-V2 05/12] i40e: Fix static analysis
> tool warning
> 
> From: Dave Ertman <david.m.ertman@intel.com>
> 
> This patch fixes a problem where a static analysis tool generates a warning
> for "INVARIANT_CONDITION: Expression 'enabled_tc' used in the condition
> always yields the same result."
> 
> Without this patch, the driver will not pass the static analysis tool checks
> without generating warnings.
> 
> This patch fixes the problem by eliminating the irrelevant check and
> redundant assignment for the value of enabled_tc.
> 
> Signed-off-by: Dave Ertman <david.m.ertman@intel.com>
> Change-ID: Ia7d44cb050f507df7de333e96369d322e08bf408
> ---
>  drivers/net/ethernet/intel/i40e/i40e_main.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
No error from static analysis

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

* [Intel-wired-lan] [next PATCH S40-V2 07/12] i40e: Force register writes to mitigate sync issues with iwarp VF driver
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 07/12] i40e: Force register writes to mitigate sync issues with iwarp VF driver Bimmy Pujari
@ 2016-07-29 17:02   ` Bowers, AndrewX
  2016-07-29 17:04   ` Bowers, AndrewX
  1 sibling, 0 replies; 27+ messages in thread
From: Bowers, AndrewX @ 2016-07-29 17:02 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Bimmy Pujari
> Sent: Wednesday, July 27, 2016 12:03 PM
> To: intel-wired-lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S40-V2 07/12] i40e: Force register
> writes to mitigate sync issues with iwarp VF driver
> 
> From: Avinash Dayanand <avinash.dayanand@intel.com>
> 
> This patch is a fix for the bug i.e. unable to create iwarp device in VF. This is a
> sync issue and the iwarp device open is called even before the PCI register
> writes are done.
> 
> Forcing the PCI register writes to happen just before it exits the function.
> 
> Signed-off-by: Avinash Dayanand <avinash.dayanand@intel.com>
> Change-ID: I60c6a2c709da89e845f2764cc50ce8b7373c8c44
> ---
>  drivers/net/ethernet/intel/i40e/i40e_client.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>

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

* [Intel-wired-lan] [next PATCH S40-V2 07/12] i40e: Force register writes to mitigate sync issues with iwarp VF driver
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 07/12] i40e: Force register writes to mitigate sync issues with iwarp VF driver Bimmy Pujari
  2016-07-29 17:02   ` Bowers, AndrewX
@ 2016-07-29 17:04   ` Bowers, AndrewX
  1 sibling, 0 replies; 27+ messages in thread
From: Bowers, AndrewX @ 2016-07-29 17:04 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Bimmy Pujari
> Sent: Wednesday, July 27, 2016 12:03 PM
> To: intel-wired-lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S40-V2 07/12] i40e: Force register
> writes to mitigate sync issues with iwarp VF driver
> 
> From: Avinash Dayanand <avinash.dayanand@intel.com>
> 
> This patch is a fix for the bug i.e. unable to create iwarp device in VF. This is a
> sync issue and the iwarp device open is called even before the PCI register
> writes are done.
> 
> Forcing the PCI register writes to happen just before it exits the function.
> 
> Signed-off-by: Avinash Dayanand <avinash.dayanand@intel.com>
> Change-ID: I60c6a2c709da89e845f2764cc50ce8b7373c8c44
> ---
>  drivers/net/ethernet/intel/i40e/i40e_client.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
No reset messages during VF creation

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

* [Intel-wired-lan] [next PATCH S40-V2 09/12] i40e: fix lookup table when RSS disabled/enabled
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 09/12] i40e: fix lookup table when RSS disabled/enabled Bimmy Pujari
@ 2016-07-29 17:10   ` Bowers, AndrewX
  0 siblings, 0 replies; 27+ messages in thread
From: Bowers, AndrewX @ 2016-07-29 17:10 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Bimmy Pujari
> Sent: Wednesday, July 27, 2016 12:03 PM
> To: intel-wired-lan at lists.osuosl.org
> Cc: Brady, Alan <alan.brady@intel.com>
> Subject: [Intel-wired-lan] [next PATCH S40-V2 09/12] i40e: fix lookup table
> when RSS disabled/enabled
> 
> From: "Alan Brady" <alan.brady@intel.com>
> 
> This patch fixes the bug which causes RSS to continue to work after being
> disabled.  After disabling RSS, traffic would continue to be assigned to
> different queues instead of falling back to a single queue. Without this patch,
> attempting to disable RSS would not work as expected. This patch fixes the
> bug by clearing the lookup table used by RSS such that all traffic is assigned to
> a single queue.  This patch also addresses the issue of reinstating  the lookup
> table should RSS then be re-enabled.
> 
> Signed-off-by: Alan Brady <alan.brady@intel.com>
> Change-ID: Ib20c7c6a7e9f1f772bb787370f8a8c664796b141
> ---
>  drivers/net/ethernet/intel/i40e/i40e_main.c | 28
> ++++++++++++++++++++++++++++
>  1 file changed, 28 insertions(+)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
RSS no longer functions when disabled, packets all go to queue 0.

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

* [Intel-wired-lan] [next PATCH S40-V2 10/12] i40e: fix memory leak
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 10/12] i40e: fix memory leak Bimmy Pujari
@ 2016-07-29 17:17   ` Bowers, AndrewX
  0 siblings, 0 replies; 27+ messages in thread
From: Bowers, AndrewX @ 2016-07-29 17:17 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Bimmy Pujari
> Sent: Wednesday, July 27, 2016 12:03 PM
> To: intel-wired-lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S40-V2 10/12] i40e: fix memory leak
> 
> From: Mitch Williams <mitch.a.williams@intel.com>
> 
> When we allocate memory, we must free it. It's simple courtesy.
> 
> Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
> Change-ID: Id007294096fb53344f1a8b9a0f78eddf9853c5d6
> ---
> ting Hints : Found by inspection. The VF driver doesn't currently call this
> function, so not testable.
> 
>  drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 1 +
>  1 file changed, 1 insertion(+)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Code changes present, driver builds and passes traffic.

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

* [Intel-wired-lan] [next PATCH S40-V2 11/12] i40e: Allow RSS Hash set with less than four parameters
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 11/12] i40e: Allow RSS Hash set with less than four parameters Bimmy Pujari
@ 2016-07-29 17:26   ` Bowers, AndrewX
  0 siblings, 0 replies; 27+ messages in thread
From: Bowers, AndrewX @ 2016-07-29 17:26 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Bimmy Pujari
> Sent: Wednesday, July 27, 2016 12:03 PM
> To: intel-wired-lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S40-V2 11/12] i40e: Allow RSS Hash set
> with less than four parameters
> 
> From: Carolyn Wyborny <carolyn.wyborny@intel.com>
> 
> This patch implements a feature change which allows using ethtool to set rss
> hash opts using less than four parameters if desired.
> 
> Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
> Signed-off-by: Kiran Patil <kiran.patil@intel.com>
> Change-ID: I0fbb91255d81e997c456697c21ac39cc9754821b
> ---
>  drivers/net/ethernet/intel/i40e/i40e.h         |   3 -
>  drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 208 +++++++++++++++----
> ------
>  2 files changed, 130 insertions(+), 81 deletions(-)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Able to set with less than 4 parameters

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

* [Intel-wired-lan] [next PATCH S40-V2 12/12] i40e/i40evf-Bump version from 1.6.11 to 1.6.12
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 12/12] i40e/i40evf-Bump version from 1.6.11 to 1.6.12 Bimmy Pujari
@ 2016-07-29 17:27   ` Bowers, AndrewX
  0 siblings, 0 replies; 27+ messages in thread
From: Bowers, AndrewX @ 2016-07-29 17:27 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Bimmy Pujari
> Sent: Wednesday, July 27, 2016 12:03 PM
> To: intel-wired-lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S40-V2 12/12] i40e/i40evf-Bump
> version from 1.6.11 to 1.6.12
> 
> Signed-off-by: Bimmy Pujari <Bimmy.pujari@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(-)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Driver reports correct version

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

* [Intel-wired-lan] [next PATCH S40-V2 08/12] i40e: Don't notify client of VF reset during VF creation
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 08/12] i40e: Don't notify client of VF reset during VF creation Bimmy Pujari
@ 2016-08-01 14:10   ` Bowers, AndrewX
  2016-08-03 16:39   ` Bowers, AndrewX
  1 sibling, 0 replies; 27+ messages in thread
From: Bowers, AndrewX @ 2016-08-01 14:10 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Bimmy Pujari
> Sent: Wednesday, July 27, 2016 12:03 PM
> To: intel-wired-lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S40-V2 08/12] i40e: Don't notify client
> of VF reset during VF creation
> 
> From: Avinash Dayanand <avinash.dayanand@intel.com>
> 
> VF goes through reset path during VF creation which happens to also have
> notification of VF reset to client. Adding conditional check to avoid wrongly
> notifying VF reset during VF creation.
> 
> Also changing the call order of VF enable, calling it after VF creation rather
> than before.
> 
> Signed-off-by: Avinash Dayanand <avinash.dayanand@intel.com>
> Change-ID: I96eabd99deae746a2f0fc465194c886f196178ce
> ---
>  drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
No reset messages during VF creation

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

* [Intel-wired-lan] [next PATCH S40-V2 08/12] i40e: Don't notify client of VF reset during VF creation
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 08/12] i40e: Don't notify client of VF reset during VF creation Bimmy Pujari
  2016-08-01 14:10   ` Bowers, AndrewX
@ 2016-08-03 16:39   ` Bowers, AndrewX
  1 sibling, 0 replies; 27+ messages in thread
From: Bowers, AndrewX @ 2016-08-03 16:39 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Bimmy Pujari
> Sent: Wednesday, July 27, 2016 12:03 PM
> To: intel-wired-lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S40-V2 08/12] i40e: Don't notify client
> of VF reset during VF creation
> 
> From: Avinash Dayanand <avinash.dayanand@intel.com>
> 
> VF goes through reset path during VF creation which happens to also have
> notification of VF reset to client. Adding conditional check to avoid wrongly
> notifying VF reset during VF creation.
> 
> Also changing the call order of VF enable, calling it after VF creation rather
> than before.
> 
> Signed-off-by: Avinash Dayanand <avinash.dayanand@intel.com>
> Change-ID: I96eabd99deae746a2f0fc465194c886f196178ce
> ---
>  drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
No reset messages during VF creation


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

* [Intel-wired-lan] [next PATCH S40-V2 06/12] i40e: don't allow reduction of channels below active FD rules
  2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 06/12] i40e: don't allow reduction of channels below active FD rules Bimmy Pujari
@ 2016-08-03 17:24   ` Bowers, AndrewX
  0 siblings, 0 replies; 27+ messages in thread
From: Bowers, AndrewX @ 2016-08-03 17:24 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Bimmy Pujari
> Sent: Wednesday, July 27, 2016 12:03 PM
> To: intel-wired-lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S40-V2 06/12] i40e: don't allow
> reduction of channels below active FD rules
> 
> From: Jacob Keller <jacob.e.keller@intel.com>
> 
> If a driver is unable to maintain all current user supplied settings from ethtool
> (or other sources), it is not ok for a user request to succeed and silently
> trample over previous configuration.
> 
> To that end, if you change the number of channels, it must not be allowed to
> reduce the number of channels (queues) below the current flow director
> filter rules targets. In this case, return -EINVAL when a request to reduce the
> number of channels would do so. In addition log a warning to the kernel
> buffer explaining why we failed, and report the rules which prevent us from
> lowering the number of channels.
> 
> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
> Change-ID: If41464d63d7aab11cedf09e4f3aa1a69e21ffd88
> ---
>  drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 24
> ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Unable to set channels lower than channel used for flow director rules


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

end of thread, other threads:[~2016-08-03 17:24 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-27 19:02 [Intel-wired-lan] [next PATCH S40-V2 00/12] i40e/i40evf updates Bimmy Pujari
2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 01/12] i40e: Fix a bug where a client close can be called before an open is complete Bimmy Pujari
2016-07-29 15:00   ` Bowers, AndrewX
2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 02/12] i40e/i40evf: Reset vlan filter count when resetting Bimmy Pujari
2016-07-29 15:18   ` Bowers, AndrewX
2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 03/12] i40e: reset RX csum error stat with other pf stats Bimmy Pujari
2016-07-29 16:03   ` Bowers, AndrewX
2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 04/12] i40evf: add missing rtnl_lock() around i40evf_set_interrupt_capability Bimmy Pujari
2016-07-29 16:10   ` Bowers, AndrewX
2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 05/12] i40e: Fix static analysis tool warning Bimmy Pujari
2016-07-29 16:21   ` Bowers, AndrewX
2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 06/12] i40e: don't allow reduction of channels below active FD rules Bimmy Pujari
2016-08-03 17:24   ` Bowers, AndrewX
2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 07/12] i40e: Force register writes to mitigate sync issues with iwarp VF driver Bimmy Pujari
2016-07-29 17:02   ` Bowers, AndrewX
2016-07-29 17:04   ` Bowers, AndrewX
2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 08/12] i40e: Don't notify client of VF reset during VF creation Bimmy Pujari
2016-08-01 14:10   ` Bowers, AndrewX
2016-08-03 16:39   ` Bowers, AndrewX
2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 09/12] i40e: fix lookup table when RSS disabled/enabled Bimmy Pujari
2016-07-29 17:10   ` Bowers, AndrewX
2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 10/12] i40e: fix memory leak Bimmy Pujari
2016-07-29 17:17   ` Bowers, AndrewX
2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 11/12] i40e: Allow RSS Hash set with less than four parameters Bimmy Pujari
2016-07-29 17:26   ` Bowers, AndrewX
2016-07-27 19:02 ` [Intel-wired-lan] [next PATCH S40-V2 12/12] i40e/i40evf-Bump version from 1.6.11 to 1.6.12 Bimmy Pujari
2016-07-29 17:27   ` Bowers, AndrewX

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