All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task
@ 2017-07-12  9:46 Alice Michael
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 02/11] i40e: use cpumask_copy instead of direct assignment Alice Michael
                   ` (10 more replies)
  0 siblings, 11 replies; 22+ messages in thread
From: Alice Michael @ 2017-07-12  9:46 UTC (permalink / raw)
  To: intel-wired-lan

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

If we're going to bother initializing a variable to reference it we might
as well use it.

Signed-off-by: Alan Brady <alan.brady@intel.com>
---
 drivers/net/ethernet/intel/i40evf/i40evf_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index 77d2835..ef55f71 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -1879,7 +1879,7 @@ static void i40evf_reset_task(struct work_struct *work)
 	}
 
 continue_reset:
-	if (netif_running(adapter->netdev)) {
+	if (netif_running(netdev)) {
 		netif_carrier_off(netdev);
 		netif_tx_stop_all_queues(netdev);
 		adapter->link_up = false;
@@ -1947,7 +1947,7 @@ static void i40evf_reset_task(struct work_struct *work)
 	return;
 reset_err:
 	dev_err(&adapter->pdev->dev, "failed to allocate resources during reinit\n");
-	i40evf_close(adapter->netdev);
+	i40evf_close(netdev);
 }
 
 /**
-- 
2.9.3


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

* [Intel-wired-lan] [next PATCH S75-V3 02/11] i40e: use cpumask_copy instead of direct assignment
  2017-07-12  9:46 [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task Alice Michael
@ 2017-07-12  9:46 ` Alice Michael
  2017-07-14 22:26   ` Bowers, AndrewX
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 03/11] i40e: prevent changing ITR if adaptive-rx/tx enabled Alice Michael
                   ` (9 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Alice Michael @ 2017-07-12  9:46 UTC (permalink / raw)
  To: intel-wired-lan

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

According to the header file cpumask.h, we shouldn't be directly copying
a cpumask_t, since its a bitmap and might not be copied correctly. Lets
use the provided cpumask_copy() function instead.

Signed-off-by: Jacob Keller <jacob.e.keller@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 998ad96..837d434 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -3450,7 +3450,7 @@ static void i40e_irq_affinity_notify(struct irq_affinity_notify *notify,
 	struct i40e_q_vector *q_vector =
 		container_of(notify, struct i40e_q_vector, affinity_notify);
 
-	q_vector->affinity_mask = *mask;
+	cpumask_copy(&q_vector->affinity_mask, mask);
 }
 
 /**
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index ef55f71..755f60f 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -520,7 +520,7 @@ static void i40evf_irq_affinity_notify(struct irq_affinity_notify *notify,
 	struct i40e_q_vector *q_vector =
 		container_of(notify, struct i40e_q_vector, affinity_notify);
 
-	q_vector->affinity_mask = *mask;
+	cpumask_copy(&q_vector->affinity_mask, mask);
 }
 
 /**
-- 
2.9.3


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

* [Intel-wired-lan] [next PATCH S75-V3 03/11] i40e: prevent changing ITR if adaptive-rx/tx enabled
  2017-07-12  9:46 [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task Alice Michael
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 02/11] i40e: use cpumask_copy instead of direct assignment Alice Michael
@ 2017-07-12  9:46 ` Alice Michael
  2017-07-14 22:33   ` Bowers, AndrewX
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 04/11] i40e: synchronize nvmupdate command and adminq subtask Alice Michael
                   ` (8 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Alice Michael @ 2017-07-12  9:46 UTC (permalink / raw)
  To: intel-wired-lan

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

Currently the driver allows the user to change (or even disable)
interrupt moderation if adaptive-rx/tx is enabled when this should
not be the case.

Adaptive RX/TX will not respect the user's ITR settings so
allowing the user to change it is weird.  This bug would also
allow the user to disable interrupt moderation with adaptive-rx/tx
enabled which doesn't make much sense either.

This patch makes it such that if adaptive-rx/tx is enabled, the user
cannot make any manual adjustments to interrupt moderation.  It also
makes it so that if ITR is disabled but adaptive-rx/tx is then
enabled, ITR will be re-enabled.

Signed-off-by: Alan Brady <alan.brady@intel.com>
---
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 61 +++++++++++++++++---------
 1 file changed, 41 insertions(+), 20 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index a868c8d..b273c24 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -2194,14 +2194,29 @@ static int __i40e_set_coalesce(struct net_device *netdev,
 			       int queue)
 {
 	struct i40e_netdev_priv *np = netdev_priv(netdev);
+	u16 intrl_reg, cur_rx_itr, cur_tx_itr;
 	struct i40e_vsi *vsi = np->vsi;
 	struct i40e_pf *pf = vsi->back;
-	u16 intrl_reg;
 	int i;
 
 	if (ec->tx_max_coalesced_frames_irq || ec->rx_max_coalesced_frames_irq)
 		vsi->work_limit = ec->tx_max_coalesced_frames_irq;
 
+	if (queue < 0) {
+		cur_rx_itr = vsi->rx_rings[0]->rx_itr_setting;
+		cur_tx_itr = vsi->tx_rings[0]->tx_itr_setting;
+	} else if (queue < vsi->num_queue_pairs) {
+		cur_rx_itr = vsi->rx_rings[queue]->rx_itr_setting;
+		cur_tx_itr = vsi->tx_rings[queue]->tx_itr_setting;
+	} else {
+		netif_info(pf, drv, netdev, "Invalid queue value, queue range is 0 - %d\n",
+			   vsi->num_queue_pairs - 1);
+		return -EINVAL;
+	}
+
+	cur_tx_itr &= ~I40E_ITR_DYNAMIC;
+	cur_rx_itr &= ~I40E_ITR_DYNAMIC;
+
 	/* tx_coalesce_usecs_high is ignored, use rx-usecs-high instead */
 	if (ec->tx_coalesce_usecs_high != vsi->int_rate_limit) {
 		netif_info(pf, drv, netdev, "tx-usecs-high is not used, please program rx-usecs-high\n");
@@ -2214,15 +2229,34 @@ static int __i40e_set_coalesce(struct net_device *netdev,
 		return -EINVAL;
 	}
 
-	if (ec->rx_coalesce_usecs == 0) {
-		if (ec->use_adaptive_rx_coalesce)
-			netif_info(pf, drv, netdev, "rx-usecs=0, need to disable adaptive-rx for a complete disable\n");
-	} else if ((ec->rx_coalesce_usecs < (I40E_MIN_ITR << 1)) ||
-		   (ec->rx_coalesce_usecs > (I40E_MAX_ITR << 1))) {
+	if (ec->rx_coalesce_usecs != cur_rx_itr &&
+	    ec->use_adaptive_rx_coalesce) {
+		netif_info(pf, drv, netdev, "RX interrupt moderation cannot be changed if adaptive-rx is enabled.\n");
+		return -EINVAL;
+	}
+
+	if (ec->rx_coalesce_usecs > (I40E_MAX_ITR << 1)) {
 			netif_info(pf, drv, netdev, "Invalid value, rx-usecs range is 0-8160\n");
 			return -EINVAL;
 	}
 
+	if (ec->tx_coalesce_usecs != cur_tx_itr &&
+	    ec->use_adaptive_tx_coalesce) {
+		netif_info(pf, drv, netdev, "TX interrupt moderation cannot be changed if adaptive-tx is enabled.\n");
+		return -EINVAL;
+	}
+
+	if (ec->tx_coalesce_usecs > (I40E_MAX_ITR << 1)) {
+		netif_info(pf, drv, netdev, "Invalid value, tx-usecs range is 0-8160\n");
+		return -EINVAL;
+	}
+
+	if (ec->use_adaptive_rx_coalesce && !cur_rx_itr)
+		ec->rx_coalesce_usecs = I40E_MIN_ITR << 1;
+
+	if (ec->use_adaptive_tx_coalesce && !cur_tx_itr)
+		ec->tx_coalesce_usecs = I40E_MIN_ITR << 1;
+
 	intrl_reg = i40e_intrl_usec_to_reg(ec->rx_coalesce_usecs_high);
 	vsi->int_rate_limit = INTRL_REG_TO_USEC(intrl_reg);
 	if (vsi->int_rate_limit != ec->rx_coalesce_usecs_high) {
@@ -2230,27 +2264,14 @@ static int __i40e_set_coalesce(struct net_device *netdev,
 			   vsi->int_rate_limit);
 	}
 
-	if (ec->tx_coalesce_usecs == 0) {
-		if (ec->use_adaptive_tx_coalesce)
-			netif_info(pf, drv, netdev, "tx-usecs=0, need to disable adaptive-tx for a complete disable\n");
-	} else if ((ec->tx_coalesce_usecs < (I40E_MIN_ITR << 1)) ||
-		   (ec->tx_coalesce_usecs > (I40E_MAX_ITR << 1))) {
-			netif_info(pf, drv, netdev, "Invalid value, tx-usecs range is 0-8160\n");
-			return -EINVAL;
-	}
-
 	/* rx and tx usecs has per queue value. If user doesn't specify the queue,
 	 * apply to all queues.
 	 */
 	if (queue < 0) {
 		for (i = 0; i < vsi->num_queue_pairs; i++)
 			i40e_set_itr_per_queue(vsi, ec, i);
-	} else if (queue < vsi->num_queue_pairs) {
-		i40e_set_itr_per_queue(vsi, ec, queue);
 	} else {
-		netif_info(pf, drv, netdev, "Invalid queue value, queue range is 0 - %d\n",
-			   vsi->num_queue_pairs - 1);
-		return -EINVAL;
+		i40e_set_itr_per_queue(vsi, ec, queue);
 	}
 
 	return 0;
-- 
2.9.3


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

* [Intel-wired-lan] [next PATCH S75-V3 04/11] i40e: synchronize nvmupdate command and adminq subtask
  2017-07-12  9:46 [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task Alice Michael
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 02/11] i40e: use cpumask_copy instead of direct assignment Alice Michael
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 03/11] i40e: prevent changing ITR if adaptive-rx/tx enabled Alice Michael
@ 2017-07-12  9:46 ` Alice Michael
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 05/11] i40e: Store the requested FEC information Alice Michael
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 22+ messages in thread
From: Alice Michael @ 2017-07-12  9:46 UTC (permalink / raw)
  To: intel-wired-lan

From: Sudheer Mogilappagari <sudheer.mogilappagari@intel.com>

During NVM update, state machine gets into unrecoverable state because
i40e_clean_adminq_subtask can get scheduled after the admin queue
command but before other state variables are updated. This causes
incorrect input to i40e_nvmupd_check_wait_event and state transitions
don't happen.

This issue existed before but surfaced after commit 373149fc99a0
("i40e: Decrease the scope of rtnl lock")

This fix adds locking around admin queue command and update of
state variables so that adminq_subtask will have accurate information
whenever it gets scheduled.

Signed-off-by: Sudheer Mogilappagari <sudheer.mogilappagari@intel.com>
---
 drivers/net/ethernet/intel/i40e/i40e_nvm.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_nvm.c b/drivers/net/ethernet/intel/i40e/i40e_nvm.c
index 17607a2..04f2192 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_nvm.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_nvm.c
@@ -753,6 +753,11 @@ i40e_status i40e_nvmupd_command(struct i40e_hw *hw,
 		hw->nvmupd_state = I40E_NVMUPD_STATE_INIT;
 	}
 
+	/* Acquire lock to prevent race condition where adminq_task
+	 * can execute after i40e_nvmupd_nvm_read/write but before state
+	 * variables (nvm_wait_opcode, nvm_release_on_done) are updated
+	 */
+	mutex_lock(&hw->aq.arq_mutex);
 	switch (hw->nvmupd_state) {
 	case I40E_NVMUPD_STATE_INIT:
 		status = i40e_nvmupd_state_init(hw, cmd, bytes, perrno);
@@ -788,6 +793,7 @@ i40e_status i40e_nvmupd_command(struct i40e_hw *hw,
 		*perrno = -ESRCH;
 		break;
 	}
+	mutex_unlock(&hw->aq.arq_mutex);
 	return status;
 }
 
-- 
2.9.3


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

* [Intel-wired-lan] [next PATCH S75-V3 05/11] i40e: Store the requested FEC information
  2017-07-12  9:46 [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task Alice Michael
                   ` (2 preceding siblings ...)
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 04/11] i40e: synchronize nvmupdate command and adminq subtask Alice Michael
@ 2017-07-12  9:46 ` Alice Michael
  2017-07-14 22:50   ` Bowers, AndrewX
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 06/11] i40e: prevent snprintf format specifier truncation Alice Michael
                   ` (6 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Alice Michael @ 2017-07-12  9:46 UTC (permalink / raw)
  To: intel-wired-lan

From: Mariusz Stachura <mariusz.stachura@intel.com>

Store information about FEC modes, that were requested. It will be used
in printing link status information function and this way there is no
need to call admin queue there.

Signed-off-by: Mariusz Stachura <mariusz.stachura@intel.com>
---
 drivers/net/ethernet/intel/i40e/i40e_common.c | 4 ++++
 drivers/net/ethernet/intel/i40e/i40e_type.h   | 1 +
 drivers/net/ethernet/intel/i40evf/i40e_type.h | 1 +
 3 files changed, 6 insertions(+)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c b/drivers/net/ethernet/intel/i40e/i40e_common.c
index 8e082a9..5c36a18 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_common.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_common.c
@@ -2529,6 +2529,10 @@ i40e_status i40e_update_link_info(struct i40e_hw *hw)
 		if (status)
 			return status;
 
+		hw->phy.link_info.req_fec_info =
+			abilities.fec_cfg_curr_mod_ext_info &
+			(I40E_AQ_REQUEST_FEC_KR | I40E_AQ_REQUEST_FEC_RS);
+
 		memcpy(hw->phy.link_info.module_type, &abilities.module_type,
 		       sizeof(hw->phy.link_info.module_type));
 	}
diff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h
index 3a18ed1..fd4bbdd 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_type.h
+++ b/drivers/net/ethernet/intel/i40e/i40e_type.h
@@ -185,6 +185,7 @@ struct i40e_link_status {
 	enum i40e_aq_link_speed link_speed;
 	u8 link_info;
 	u8 an_info;
+	u8 req_fec_info;
 	u8 fec_info;
 	u8 ext_info;
 	u8 loopback;
diff --git a/drivers/net/ethernet/intel/i40evf/i40e_type.h b/drivers/net/ethernet/intel/i40evf/i40e_type.h
index bde7f24..2ea919d 100644
--- a/drivers/net/ethernet/intel/i40evf/i40e_type.h
+++ b/drivers/net/ethernet/intel/i40evf/i40e_type.h
@@ -159,6 +159,7 @@ struct i40e_link_status {
 	enum i40e_aq_link_speed link_speed;
 	u8 link_info;
 	u8 an_info;
+	u8 req_fec_info;
 	u8 fec_info;
 	u8 ext_info;
 	u8 loopback;
-- 
2.9.3


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

* [Intel-wired-lan] [next PATCH S75-V3 06/11] i40e: prevent snprintf format specifier truncation
  2017-07-12  9:46 [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task Alice Michael
                   ` (3 preceding siblings ...)
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 05/11] i40e: Store the requested FEC information Alice Michael
@ 2017-07-12  9:46 ` Alice Michael
  2017-07-14 22:34   ` Bowers, AndrewX
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 07/11] i40e: Use correct flag to enable egress traffic for unicast promisc Alice Michael
                   ` (5 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Alice Michael @ 2017-07-12  9:46 UTC (permalink / raw)
  To: intel-wired-lan

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

Increase the size of the prefix buffer so that it can hold enough
characters for every possible input. Although 20 is enough for all
expected inputs, it is possible for the values to be larger than
expected, resulting in a possibly truncated string. Additionally, lets
use sizeof(prefix) in order to ensure we use the correct size if we need
to change the array length in the future.

New versions of GCC starting at 7 now include warnings to prevent
truncation unless you handle the return code. At most 27 bytes can be
written here, so lets just increase the buffer size even if for all
expected hw->bus.* values we only needed 20.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
---
 drivers/net/ethernet/intel/i40e/i40e_common.c   | 4 ++--
 drivers/net/ethernet/intel/i40evf/i40e_common.c | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c b/drivers/net/ethernet/intel/i40e/i40e_common.c
index 5c36a18..111426b 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_common.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_common.c
@@ -328,9 +328,9 @@ void i40e_debug_aq(struct i40e_hw *hw, enum i40e_debug_mask mask, void *desc,
 			len = buf_len;
 		/* write the full 16-byte chunks */
 		if (hw->debug_mask & mask) {
-			char prefix[20];
+			char prefix[27];
 
-			snprintf(prefix, 20,
+			snprintf(prefix, sizeof(prefix),
 				 "i40e %02x:%02x.%x: \t0x",
 				 hw->bus.bus_id,
 				 hw->bus.device,
diff --git a/drivers/net/ethernet/intel/i40evf/i40e_common.c b/drivers/net/ethernet/intel/i40evf/i40e_common.c
index 1dd1938..bfe9b516 100644
--- a/drivers/net/ethernet/intel/i40evf/i40e_common.c
+++ b/drivers/net/ethernet/intel/i40evf/i40e_common.c
@@ -333,9 +333,9 @@ void i40evf_debug_aq(struct i40e_hw *hw, enum i40e_debug_mask mask, void *desc,
 			len = buf_len;
 		/* write the full 16-byte chunks */
 		if (hw->debug_mask & mask) {
-			char prefix[20];
+			char prefix[27];
 
-			snprintf(prefix, 20,
+			snprintf(prefix, sizeof(prefix),
 				 "i40evf %02x:%02x.%x: \t0x",
 				 hw->bus.bus_id,
 				 hw->bus.device,
-- 
2.9.3


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

* [Intel-wired-lan] [next PATCH S75-V3 07/11] i40e: Use correct flag to enable egress traffic for unicast promisc
  2017-07-12  9:46 [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task Alice Michael
                   ` (4 preceding siblings ...)
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 06/11] i40e: prevent snprintf format specifier truncation Alice Michael
@ 2017-07-12  9:46 ` Alice Michael
  2017-07-17 18:16   ` Bowers, AndrewX
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 08/11] i40evf: fix possible snprintf truncation of q_vector->name Alice Michael
                   ` (4 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Alice Michael @ 2017-07-12  9:46 UTC (permalink / raw)
  To: intel-wired-lan

From: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>

Albeit, we usually set true promiscuous mode for both multicast and
unicast at the same time - however, it is possible to set it
individually, so using allmulti flag which is only for allmulticast might
caused unwanted behavior in mirroring egress traffic promiscuous for
unicast in VF.

Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>
---
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index 3ef67dc..aa8d30b 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -1758,7 +1758,7 @@ static int i40e_vc_config_promiscuous_mode_msg(struct i40e_vf *vf,
 		}
 	} else {
 		aq_ret = i40e_aq_set_vsi_unicast_promiscuous(hw, vsi->seid,
-							     allmulti, NULL,
+							     alluni, NULL,
 							     true);
 		aq_err = pf->hw.aq.asq_last_status;
 		if (aq_ret) {
-- 
2.9.3


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

* [Intel-wired-lan] [next PATCH S75-V3 08/11] i40evf: fix possible snprintf truncation of q_vector->name
  2017-07-12  9:46 [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task Alice Michael
                   ` (5 preceding siblings ...)
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 07/11] i40e: Use correct flag to enable egress traffic for unicast promisc Alice Michael
@ 2017-07-12  9:46 ` Alice Michael
  2017-07-14 22:35   ` Bowers, AndrewX
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 09/11] i40e: force VMDQ device name truncation Alice Michael
                   ` (3 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Alice Michael @ 2017-07-12  9:46 UTC (permalink / raw)
  To: intel-wired-lan

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

The q_vector names are based on the interface name with a driver prefix,
the type of q_vector setup, and the queue number. We previously set the
size of this variable to IFNAMSIZ + 9, which is incorrect, because we
actually include a minimum of 14 characters extra beyond the interface
name size.

New versions of GCC since 7 include a new warning that detects this
possible truncation and complains. We can fix this by increasing the
size incase our interface name is too large to avoid truncation. We
don't need to go beyond 14 because the compiler is smart enough to
realize our values can never exceed size of 1. We do go up to 15 here
because possible future changes may increase the number of queues beyond
one digit.

While we are here, also change some variables to be unsigned (since they
are never negative) and stop using an extra unnecessary %s format
specifier.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
---
 drivers/net/ethernet/intel/i40evf/i40evf.h      |  2 +-
 drivers/net/ethernet/intel/i40evf/i40evf_main.c | 21 +++++++++------------
 2 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40evf/i40evf.h b/drivers/net/ethernet/intel/i40evf/i40evf.h
index c89767e..f028c09 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf.h
+++ b/drivers/net/ethernet/intel/i40evf/i40evf.h
@@ -121,7 +121,7 @@ struct i40e_q_vector {
 #define ITR_COUNTDOWN_START 100
 	u8 itr_countdown;	/* when 0 or 1 update ITR */
 	int v_idx;	/* vector index in list */
-	char name[IFNAMSIZ + 9];
+	char name[IFNAMSIZ + 15];
 	bool arm_wb_state;
 	cpumask_t affinity_mask;
 	struct irq_affinity_notify affinity_notify;
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index 755f60f..a8bc1ed 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -543,9 +543,9 @@ static void i40evf_irq_affinity_release(struct kref *ref) {}
 static int
 i40evf_request_traffic_irqs(struct i40evf_adapter *adapter, char *basename)
 {
-	int vector, err, q_vectors;
-	int rx_int_idx = 0, tx_int_idx = 0;
-	int irq_num;
+	unsigned int vector, q_vectors;
+	unsigned int rx_int_idx = 0, tx_int_idx = 0;
+	int irq_num, err;
 
 	i40evf_irq_disable(adapter);
 	/* Decrement for Other and TCP Timer vectors */
@@ -556,18 +556,15 @@ i40evf_request_traffic_irqs(struct i40evf_adapter *adapter, char *basename)
 		irq_num = adapter->msix_entries[vector + NONQ_VECS].vector;
 
 		if (q_vector->tx.ring && q_vector->rx.ring) {
-			snprintf(q_vector->name, sizeof(q_vector->name) - 1,
-				 "i40evf-%s-%s-%d", basename,
-				 "TxRx", rx_int_idx++);
+			snprintf(q_vector->name, sizeof(q_vector->name),
+				 "i40evf-%s-TxRx-%d", basename, rx_int_idx++);
 			tx_int_idx++;
 		} else if (q_vector->rx.ring) {
-			snprintf(q_vector->name, sizeof(q_vector->name) - 1,
-				 "i40evf-%s-%s-%d", basename,
-				 "rx", rx_int_idx++);
+			snprintf(q_vector->name, sizeof(q_vector->name),
+				 "i40evf-%s-rx-%d", basename, rx_int_idx++);
 		} else if (q_vector->tx.ring) {
-			snprintf(q_vector->name, sizeof(q_vector->name) - 1,
-				 "i40evf-%s-%s-%d", basename,
-				 "tx", tx_int_idx++);
+			snprintf(q_vector->name, sizeof(q_vector->name),
+				 "i40evf-%s-tx-%d", basename, tx_int_idx++);
 		} else {
 			/* skip this unused q_vector */
 			continue;
-- 
2.9.3


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

* [Intel-wired-lan] [next PATCH S75-V3 09/11] i40e: force VMDQ device name truncation
  2017-07-12  9:46 [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task Alice Michael
                   ` (6 preceding siblings ...)
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 08/11] i40evf: fix possible snprintf truncation of q_vector->name Alice Michael
@ 2017-07-12  9:46 ` Alice Michael
  2017-07-17 18:22   ` Bowers, AndrewX
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 10/11] i40e/i40evf: support for VF VLAN tag stripping control Alice Michael
                   ` (2 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Alice Michael @ 2017-07-12  9:46 UTC (permalink / raw)
  To: intel-wired-lan

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

In new versions of GCC since 7.x a new warning exists which warns when
a string is truncated before all of the format can be completed.

When we setup VMDQ netdev names we are copying a pre-existing interface
name which could be up to 15 characters in length. Since we also add
4 bytes, v, the literal %, the d and a \0 null, we would overrun the
available size unless snprintf truncated for us.

The snprintf call will ofcourse truncate on the end, so lets instead
modify the code to force truncation of the copied netdev name by
4 characters, to create enough space for the 4 bytes we're adding.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
---
 drivers/net/ethernet/intel/i40e/i40e_main.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 837d434..0c8c07d 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -9690,8 +9690,13 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
 		i40e_add_mac_filter(vsi, mac_addr);
 		spin_unlock_bh(&vsi->mac_filter_hash_lock);
 	} else {
-		/* relate the VSI_VMDQ name to the VSI_MAIN name */
-		snprintf(netdev->name, IFNAMSIZ, "%sv%%d",
+		/* Relate the VSI_VMDQ name to the VSI_MAIN name. Note that we
+		 * are still limited by IFNAMSIZ, but we're adding 'v%d\0' to
+		 * the end, which is 4 bytes long, so force truncation of the
+		 * original name by IFNAMSIZ - 4
+		 */
+		snprintf(netdev->name, IFNAMSIZ, "%.*sv%%d",
+			 IFNAMSIZ - 4,
 			 pf->vsi[pf->lan_vsi]->netdev->name);
 		random_ether_addr(mac_addr);
 
-- 
2.9.3


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

* [Intel-wired-lan] [next PATCH S75-V3 10/11] i40e/i40evf: support for VF VLAN tag stripping control
  2017-07-12  9:46 [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task Alice Michael
                   ` (7 preceding siblings ...)
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 09/11] i40e: force VMDQ device name truncation Alice Michael
@ 2017-07-12  9:46 ` Alice Michael
  2017-07-13  5:14   ` kbuild test robot
  2017-07-13  8:46   ` kbuild test robot
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 11/11] i40e: 25G FEC status improvements Alice Michael
  2017-07-14 21:20 ` [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task Bowers, AndrewX
  10 siblings, 2 replies; 22+ messages in thread
From: Alice Michael @ 2017-07-12  9:46 UTC (permalink / raw)
  To: intel-wired-lan

From: Mariusz Stachura <mariusz.stachura@intel.com>

This patch gives VF capability to control VLAN tag stripping via
ethtool. As rx-vlan-offload was fixed before, now the VF is able to
change it using "ethtool --offload <IF> rxvlan on/off" settings.

Signed-off-by: Mariusz Stachura <mariusz.stachura@intel.com>
---
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 60 ++++++++++++++++++++++
 drivers/net/ethernet/intel/i40evf/i40evf.h         |  4 ++
 drivers/net/ethernet/intel/i40evf/i40evf_main.c    | 33 ++++++++++++
 .../net/ethernet/intel/i40evf/i40evf_virtchnl.c    | 40 +++++++++++++++
 4 files changed, 137 insertions(+)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index aa8d30b..d551f84 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -2530,6 +2530,60 @@ static int i40e_vc_set_rss_hena(struct i40e_vf *vf, u8 *msg, u16 msglen)
 }
 
 /**
+ * i40e_vc_enable_vlan_stripping
+ * @vf: pointer to the VF info
+ * @msg: pointer to the msg buffer
+ * @msglen: msg length
+ *
+ * Enable vlan header stripping for the VF
+ **/
+static int i40e_vc_enable_vlan_stripping(struct i40e_vf *vf, u8 *msg,
+					 u16 msglen)
+{
+	struct i40e_vsi *vsi = vf->pf->vsi[vf->lan_vsi_idx];
+	i40e_status aq_ret = 0;
+
+	if (!test_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states)) {
+		aq_ret = I40E_ERR_PARAM;
+		goto err;
+	}
+
+	i40e_vlan_stripping_enable(vsi);
+
+	/* send the response to the VF */
+err:
+	return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_ENABLE_VLAN_STRIPPING,
+				       aq_ret);
+}
+
+/**
+ * i40e_vc_disable_vlan_stripping
+ * @vf: pointer to the VF info
+ * @msg: pointer to the msg buffer
+ * @msglen: msg length
+ *
+ * Disable vlan header stripping for the VF
+ **/
+static int i40e_vc_disable_vlan_stripping(struct i40e_vf *vf, u8 *msg,
+					  u16 msglen)
+{
+	struct i40e_vsi *vsi = vf->pf->vsi[vf->lan_vsi_idx];
+	i40e_status aq_ret = 0;
+
+	if (!test_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states)) {
+		aq_ret = I40E_ERR_PARAM;
+		goto err;
+	}
+
+	i40e_vlan_stripping_disable(vsi);
+
+	/* send the response to the VF */
+err:
+	return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_DISABLE_VLAN_STRIPPING,
+				       aq_ret);
+}
+
+/**
  * i40e_vc_process_vf_msg
  * @pf: pointer to the PF structure
  * @vf_id: source VF id
@@ -2648,6 +2702,12 @@ int i40e_vc_process_vf_msg(struct i40e_pf *pf, s16 vf_id, u32 v_opcode,
 	case VIRTCHNL_OP_SET_RSS_HENA:
 		ret = i40e_vc_set_rss_hena(vf, msg, msglen);
 		break;
+	case VIRTCHNL_OP_ENABLE_VLAN_STRIPPING:
+		ret = i40e_vc_enable_vlan_stripping(vf, msg, msglen);
+		break;
+	case VIRTCHNL_OP_DISABLE_VLAN_STRIPPING:
+		ret = i40e_vc_disable_vlan_stripping(vf, msg, msglen);
+		break;
 
 	case VIRTCHNL_OP_UNKNOWN:
 	default:
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf.h b/drivers/net/ethernet/intel/i40evf/i40evf.h
index f028c09..b659358 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf.h
+++ b/drivers/net/ethernet/intel/i40evf/i40evf.h
@@ -261,6 +261,8 @@ struct i40evf_adapter {
 #define I40EVF_FLAG_AQ_RELEASE_PROMISC		BIT(16)
 #define I40EVF_FLAG_AQ_REQUEST_ALLMULTI		BIT(17)
 #define I40EVF_FLAG_AQ_RELEASE_ALLMULTI		BIT(18)
+#define I40EVF_FLAG_AQ_ENABLE_VLAN_STRIPPING	BIT(19)
+#define I40EVF_FLAG_AQ_DISABLE_VLAN_STRIPPING   BIT(20)
 
 	/* OS defined structs */
 	struct net_device *netdev;
@@ -358,6 +360,8 @@ void i40evf_get_hena(struct i40evf_adapter *adapter);
 void i40evf_set_hena(struct i40evf_adapter *adapter);
 void i40evf_set_rss_key(struct i40evf_adapter *adapter);
 void i40evf_set_rss_lut(struct i40evf_adapter *adapter);
+void i40evf_enable_vlan_stripping(struct i40evf_adapter *adapter);
+void i40evf_disable_vlan_stripping(struct i40evf_adapter *adapter);
 void i40evf_virtchnl_completion(struct i40evf_adapter *adapter,
 				enum virtchnl_ops v_opcode,
 				i40e_status v_retval, u8 *msg, u16 msglen);
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index a8bc1ed..ad4c833 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -1676,6 +1676,16 @@ static void i40evf_watchdog_task(struct work_struct *work)
 		goto watchdog_done;
 	}
 
+	if (adapter->aq_required & I40EVF_FLAG_AQ_ENABLE_VLAN_STRIPPING) {
+		i40evf_enable_vlan_stripping(adapter);
+		goto watchdog_done;
+	}
+
+	if (adapter->aq_required & I40EVF_FLAG_AQ_DISABLE_VLAN_STRIPPING) {
+		i40evf_disable_vlan_stripping(adapter);
+		goto watchdog_done;
+	}
+
 	if (adapter->aq_required & I40EVF_FLAG_AQ_CONFIGURE_QUEUES) {
 		i40evf_configure_queues(adapter);
 		goto watchdog_done;
@@ -2295,6 +2305,28 @@ static int i40evf_change_mtu(struct net_device *netdev, int new_mtu)
 }
 
 /**
+ * i40e_set_features - set the netdev feature flags
+ * @netdev: ptr to the netdev being adjusted
+ * @features: the feature set that the stack is suggesting
+ * Note: expects to be called while under rtnl_lock()
+ **/
+static int i40evf_set_features(struct net_device *netdev,
+			       netdev_features_t features)
+{
+	struct i40evf_adapter *adapter = netdev_priv(netdev);
+
+	if (!VLAN_ALLOWED(adapter))
+		return -EINVAL;
+
+	if (features & NETIF_F_HW_VLAN_CTAG_RX)
+		adapter->aq_required |= I40EVF_FLAG_AQ_ENABLE_VLAN_STRIPPING;
+	else
+		adapter->aq_required |= I40EVF_FLAG_AQ_DISABLE_VLAN_STRIPPING;
+
+	return 0;
+}
+
+/**
  * i40evf_features_check - Validate encapsulated packet conforms to limits
  * @skb: skb buff
  * @netdev: This physical port's netdev
@@ -2387,6 +2419,7 @@ static const struct net_device_ops i40evf_netdev_ops = {
 	.ndo_vlan_rx_kill_vid	= i40evf_vlan_rx_kill_vid,
 	.ndo_features_check	= i40evf_features_check,
 	.ndo_fix_features	= i40evf_fix_features,
+	.ndo_set_features	= i40evf_set_features,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 	.ndo_poll_controller	= i40evf_netpoll,
 #endif
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c b/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c
index 6c403bf..85876f4 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c
@@ -821,6 +821,46 @@ void i40evf_set_rss_lut(struct i40evf_adapter *adapter)
 }
 
 /**
+ * i40evf_enable_vlan_stripping
+ * @adapter: adapter structure
+ *
+ * Request VLAN header stripping to be enabled
+ **/
+void i40evf_enable_vlan_stripping(struct i40evf_adapter *adapter)
+{
+	if (adapter->current_op != VIRTCHNL_OP_UNKNOWN) {
+		/* bail because we already have a command pending */
+		dev_err(&adapter->pdev->dev, "Cannot enable stripping, command %d pending\n",
+			adapter->current_op);
+		return;
+	}
+	adapter->current_op = VIRTCHNL_OP_ENABLE_VLAN_STRIPPING;
+	adapter->aq_required &= ~I40EVF_FLAG_AQ_ENABLE_VLAN_STRIPPING;
+	i40evf_send_pf_msg(adapter, VIRTCHNL_OP_ENABLE_VLAN_STRIPPING,
+			   NULL, 0);
+}
+
+/**
+ * i40evf_disable_vlan_stripping
+ * @adapter: adapter structure
+ *
+ * Request VLAN header stripping to be disabled
+ **/
+void i40evf_disable_vlan_stripping(struct i40evf_adapter *adapter)
+{
+	if (adapter->current_op != VIRTCHNL_OP_UNKNOWN) {
+		/* bail because we already have a command pending */
+		dev_err(&adapter->pdev->dev, "Cannot disable stripping, command %d pending\n",
+			adapter->current_op);
+		return;
+	}
+	adapter->current_op = VIRTCHNL_OP_DISABLE_VLAN_STRIPPING;
+	adapter->aq_required &= ~I40EVF_FLAG_AQ_DISABLE_VLAN_STRIPPING;
+	i40evf_send_pf_msg(adapter, VIRTCHNL_OP_DISABLE_VLAN_STRIPPING,
+			   NULL, 0);
+}
+
+/**
  * i40evf_print_link_message - print link up or down
  * @adapter: adapter structure
  *
-- 
2.9.3


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

* [Intel-wired-lan] [next PATCH S75-V3 11/11] i40e: 25G FEC status improvements
  2017-07-12  9:46 [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task Alice Michael
                   ` (8 preceding siblings ...)
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 10/11] i40e/i40evf: support for VF VLAN tag stripping control Alice Michael
@ 2017-07-12  9:46 ` Alice Michael
  2017-07-19 18:56   ` Bowers, AndrewX
  2017-07-14 21:20 ` [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task Bowers, AndrewX
  10 siblings, 1 reply; 22+ messages in thread
From: Alice Michael @ 2017-07-12  9:46 UTC (permalink / raw)
  To: intel-wired-lan

From: Mariusz Stachura <mariusz.stachura@intel.com>

This patch improves the system log message. The log message will
be expanded to include the FEC mode the FW requested before link
was established.

Signed-off-by: Mariusz Stachura <mariusz.stachura@intel.com>
---
 drivers/net/ethernet/intel/i40e/i40e_main.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 0c8c07d..fa93c63 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -5355,6 +5355,7 @@ void i40e_print_link_message(struct i40e_vsi *vsi, bool isup)
 	char *speed = "Unknown";
 	char *fc = "Unknown";
 	char *fec = "";
+	char *req_fec = "";
 	char *an = "";
 
 	new_speed = vsi->back->hw.phy.link_info.link_speed;
@@ -5416,6 +5417,7 @@ void i40e_print_link_message(struct i40e_vsi *vsi, bool isup)
 	}
 
 	if (vsi->back->hw.phy.link_info.link_speed == I40E_LINK_SPEED_25GB) {
+		req_fec = ", Requested FEC: None";
 		fec = ", FEC: None";
 		an = ", Autoneg: False";
 
@@ -5428,10 +5430,22 @@ void i40e_print_link_message(struct i40e_vsi *vsi, bool isup)
 		else if (vsi->back->hw.phy.link_info.fec_info &
 			 I40E_AQ_CONFIG_FEC_RS_ENA)
 			fec = ", FEC: CL108 RS-FEC";
+
+		/* 'CL108 RS-FEC' should be displayed when RS is requested, or
+		 * both RS and FC are requested
+		 */
+		if (vsi->back->hw.phy.link_info.req_fec_info &
+		    (I40E_AQ_REQUEST_FEC_KR | I40E_AQ_REQUEST_FEC_RS)) {
+			if (vsi->back->hw.phy.link_info.req_fec_info &
+			    I40E_AQ_REQUEST_FEC_RS)
+				req_fec = ", Requested FEC: CL108 RS-FEC";
+			else
+				req_fec = ", Requested FEC: CL74 FC-FEC/BASE-R";
+		}
 	}
 
-	netdev_info(vsi->netdev, "NIC Link is Up, %sbps Full Duplex%s%s, Flow Control: %s\n",
-		    speed, fec, an, fc);
+	netdev_info(vsi->netdev, "NIC Link is Up, %sbps Full Duplex%s%s%s, Flow Control: %s\n",
+		    speed, req_fec, fec, an, fc);
 }
 
 /**
-- 
2.9.3


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

* [Intel-wired-lan] [next PATCH S75-V3 10/11] i40e/i40evf: support for VF VLAN tag stripping control
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 10/11] i40e/i40evf: support for VF VLAN tag stripping control Alice Michael
@ 2017-07-13  5:14   ` kbuild test robot
  2017-07-13  8:46   ` kbuild test robot
  1 sibling, 0 replies; 22+ messages in thread
From: kbuild test robot @ 2017-07-13  5:14 UTC (permalink / raw)
  To: intel-wired-lan

Hi Mariusz,

[auto build test ERROR on jkirsher-next-queue/dev-queue]
[also build test ERROR on v4.12 next-20170712]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Alice-Michael/i40evf-use-netdev-variable-in-reset-task/20170713-123145
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git dev-queue
config: xtensa-allyesconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 4.9.0
reproduce:
        wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=xtensa 

All errors (new ones prefixed by >>):

   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c: In function 'i40e_vc_enable_vlan_stripping':
>> drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2555:37: error: 'VIRTCHNL_OP_ENABLE_VLAN_STRIPPING' undeclared (first use in this function)
     return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_ENABLE_VLAN_STRIPPING,
                                        ^
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2555:37: note: each undeclared identifier is reported only once for each function it appears in
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c: In function 'i40e_vc_disable_vlan_stripping':
>> drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2582:37: error: 'VIRTCHNL_OP_DISABLE_VLAN_STRIPPING' undeclared (first use in this function)
     return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_DISABLE_VLAN_STRIPPING,
                                        ^
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c: In function 'i40e_vc_process_vf_msg':
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2705:7: error: 'VIRTCHNL_OP_ENABLE_VLAN_STRIPPING' undeclared (first use in this function)
     case VIRTCHNL_OP_ENABLE_VLAN_STRIPPING:
          ^
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2708:7: error: 'VIRTCHNL_OP_DISABLE_VLAN_STRIPPING' undeclared (first use in this function)
     case VIRTCHNL_OP_DISABLE_VLAN_STRIPPING:
          ^
--
   drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c: In function 'i40evf_enable_vlan_stripping':
>> drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c:837:24: error: 'VIRTCHNL_OP_ENABLE_VLAN_STRIPPING' undeclared (first use in this function)
     adapter->current_op = VIRTCHNL_OP_ENABLE_VLAN_STRIPPING;
                           ^
   drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c:837:24: note: each undeclared identifier is reported only once for each function it appears in
   drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c: In function 'i40evf_disable_vlan_stripping':
>> drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c:857:24: error: 'VIRTCHNL_OP_DISABLE_VLAN_STRIPPING' undeclared (first use in this function)
     adapter->current_op = VIRTCHNL_OP_DISABLE_VLAN_STRIPPING;
                           ^

vim +/VIRTCHNL_OP_ENABLE_VLAN_STRIPPING +2555 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c

  2531	
  2532	/**
  2533	 * i40e_vc_enable_vlan_stripping
  2534	 * @vf: pointer to the VF info
  2535	 * @msg: pointer to the msg buffer
  2536	 * @msglen: msg length
  2537	 *
  2538	 * Enable vlan header stripping for the VF
  2539	 **/
  2540	static int i40e_vc_enable_vlan_stripping(struct i40e_vf *vf, u8 *msg,
  2541						 u16 msglen)
  2542	{
  2543		struct i40e_vsi *vsi = vf->pf->vsi[vf->lan_vsi_idx];
  2544		i40e_status aq_ret = 0;
  2545	
  2546		if (!test_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states)) {
  2547			aq_ret = I40E_ERR_PARAM;
  2548			goto err;
  2549		}
  2550	
  2551		i40e_vlan_stripping_enable(vsi);
  2552	
  2553		/* send the response to the VF */
  2554	err:
> 2555		return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_ENABLE_VLAN_STRIPPING,
  2556					       aq_ret);
  2557	}
  2558	
  2559	/**
  2560	 * i40e_vc_disable_vlan_stripping
  2561	 * @vf: pointer to the VF info
  2562	 * @msg: pointer to the msg buffer
  2563	 * @msglen: msg length
  2564	 *
  2565	 * Disable vlan header stripping for the VF
  2566	 **/
  2567	static int i40e_vc_disable_vlan_stripping(struct i40e_vf *vf, u8 *msg,
  2568						  u16 msglen)
  2569	{
  2570		struct i40e_vsi *vsi = vf->pf->vsi[vf->lan_vsi_idx];
  2571		i40e_status aq_ret = 0;
  2572	
  2573		if (!test_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states)) {
  2574			aq_ret = I40E_ERR_PARAM;
  2575			goto err;
  2576		}
  2577	
  2578		i40e_vlan_stripping_disable(vsi);
  2579	
  2580		/* send the response to the VF */
  2581	err:
> 2582		return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_DISABLE_VLAN_STRIPPING,
  2583					       aq_ret);
  2584	}
  2585	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 50562 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20170713/3b171cb6/attachment-0001.bin>

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

* [Intel-wired-lan] [next PATCH S75-V3 10/11] i40e/i40evf: support for VF VLAN tag stripping control
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 10/11] i40e/i40evf: support for VF VLAN tag stripping control Alice Michael
  2017-07-13  5:14   ` kbuild test robot
@ 2017-07-13  8:46   ` kbuild test robot
  1 sibling, 0 replies; 22+ messages in thread
From: kbuild test robot @ 2017-07-13  8:46 UTC (permalink / raw)
  To: intel-wired-lan

Hi Mariusz,

[auto build test WARNING on jkirsher-next-queue/dev-queue]
[also build test WARNING on v4.12 next-20170712]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Alice-Michael/i40evf-use-netdev-variable-in-reset-task/20170713-123145
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git dev-queue
reproduce:
        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

   include/linux/compiler.h:260:8: sparse: attribute 'no_sanitize_address': unknown attribute
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2555:44: sparse: undefined identifier 'VIRTCHNL_OP_ENABLE_VLAN_STRIPPING'
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2582:44: sparse: undefined identifier 'VIRTCHNL_OP_DISABLE_VLAN_STRIPPING'
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2705:14: sparse: undefined identifier 'VIRTCHNL_OP_ENABLE_VLAN_STRIPPING'
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2708:14: sparse: undefined identifier 'VIRTCHNL_OP_DISABLE_VLAN_STRIPPING'
>> drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2705:14: sparse: incompatible types for 'case' statement
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2708:14: sparse: incompatible types for 'case' statement
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2705:14: sparse: Expected constant expression in case statement
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2708:14: sparse: Expected constant expression in case statement
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c: In function 'i40e_vc_enable_vlan_stripping':
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2555:37: error: 'VIRTCHNL_OP_ENABLE_VLAN_STRIPPING' undeclared (first use in this function)
     return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_ENABLE_VLAN_STRIPPING,
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2555:37: note: each undeclared identifier is reported only once for each function it appears in
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c: In function 'i40e_vc_disable_vlan_stripping':
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2582:37: error: 'VIRTCHNL_OP_DISABLE_VLAN_STRIPPING' undeclared (first use in this function)
     return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_DISABLE_VLAN_STRIPPING,
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c: In function 'i40e_vc_process_vf_msg':
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2705:7: error: 'VIRTCHNL_OP_ENABLE_VLAN_STRIPPING' undeclared (first use in this function)
     case VIRTCHNL_OP_ENABLE_VLAN_STRIPPING:
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:2708:7: error: 'VIRTCHNL_OP_DISABLE_VLAN_STRIPPING' undeclared (first use in this function)
     case VIRTCHNL_OP_DISABLE_VLAN_STRIPPING:
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

vim +/case +2705 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c

  2531	
  2532	/**
  2533	 * i40e_vc_enable_vlan_stripping
  2534	 * @vf: pointer to the VF info
  2535	 * @msg: pointer to the msg buffer
  2536	 * @msglen: msg length
  2537	 *
  2538	 * Enable vlan header stripping for the VF
  2539	 **/
  2540	static int i40e_vc_enable_vlan_stripping(struct i40e_vf *vf, u8 *msg,
  2541						 u16 msglen)
  2542	{
  2543		struct i40e_vsi *vsi = vf->pf->vsi[vf->lan_vsi_idx];
  2544		i40e_status aq_ret = 0;
  2545	
  2546		if (!test_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states)) {
  2547			aq_ret = I40E_ERR_PARAM;
  2548			goto err;
  2549		}
  2550	
  2551		i40e_vlan_stripping_enable(vsi);
  2552	
  2553		/* send the response to the VF */
  2554	err:
> 2555		return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_ENABLE_VLAN_STRIPPING,
  2556					       aq_ret);
  2557	}
  2558	
  2559	/**
  2560	 * i40e_vc_disable_vlan_stripping
  2561	 * @vf: pointer to the VF info
  2562	 * @msg: pointer to the msg buffer
  2563	 * @msglen: msg length
  2564	 *
  2565	 * Disable vlan header stripping for the VF
  2566	 **/
  2567	static int i40e_vc_disable_vlan_stripping(struct i40e_vf *vf, u8 *msg,
  2568						  u16 msglen)
  2569	{
  2570		struct i40e_vsi *vsi = vf->pf->vsi[vf->lan_vsi_idx];
  2571		i40e_status aq_ret = 0;
  2572	
  2573		if (!test_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states)) {
  2574			aq_ret = I40E_ERR_PARAM;
  2575			goto err;
  2576		}
  2577	
  2578		i40e_vlan_stripping_disable(vsi);
  2579	
  2580		/* send the response to the VF */
  2581	err:
  2582		return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_DISABLE_VLAN_STRIPPING,
  2583					       aq_ret);
  2584	}
  2585	
  2586	/**
  2587	 * i40e_vc_process_vf_msg
  2588	 * @pf: pointer to the PF structure
  2589	 * @vf_id: source VF id
  2590	 * @msg: pointer to the msg buffer
  2591	 * @msglen: msg length
  2592	 * @msghndl: msg handle
  2593	 *
  2594	 * called from the common aeq/arq handler to
  2595	 * process request from VF
  2596	 **/
  2597	int i40e_vc_process_vf_msg(struct i40e_pf *pf, s16 vf_id, u32 v_opcode,
  2598				   u32 v_retval, u8 *msg, u16 msglen)
  2599	{
  2600		struct i40e_hw *hw = &pf->hw;
  2601		int local_vf_id = vf_id - (s16)hw->func_caps.vf_base_id;
  2602		struct i40e_vf *vf;
  2603		int ret;
  2604	
  2605		pf->vf_aq_requests++;
  2606		if (local_vf_id >= pf->num_alloc_vfs)
  2607			return -EINVAL;
  2608		vf = &(pf->vf[local_vf_id]);
  2609	
  2610		/* Check if VF is disabled. */
  2611		if (test_bit(I40E_VF_STATE_DISABLED, &vf->vf_states))
  2612			return I40E_ERR_PARAM;
  2613	
  2614		/* perform basic checks on the msg */
  2615		ret = virtchnl_vc_validate_vf_msg(&vf->vf_ver, v_opcode, msg, msglen);
  2616	
  2617		/* perform additional checks specific to this driver */
  2618		if (v_opcode == VIRTCHNL_OP_CONFIG_RSS_KEY) {
  2619			struct virtchnl_rss_key *vrk = (struct virtchnl_rss_key *)msg;
  2620	
  2621			if (vrk->key_len != I40E_HKEY_ARRAY_SIZE)
  2622				ret = -EINVAL;
  2623		} else if (v_opcode == VIRTCHNL_OP_CONFIG_RSS_LUT) {
  2624			struct virtchnl_rss_lut *vrl = (struct virtchnl_rss_lut *)msg;
  2625	
  2626			if (vrl->lut_entries != I40E_VF_HLUT_ARRAY_SIZE)
  2627				ret = -EINVAL;
  2628		}
  2629	
  2630		if (ret) {
  2631			i40e_vc_send_resp_to_vf(vf, v_opcode, I40E_ERR_PARAM);
  2632			dev_err(&pf->pdev->dev, "Invalid message from VF %d, opcode %d, len %d\n",
  2633				local_vf_id, v_opcode, msglen);
  2634			switch (ret) {
  2635			case VIRTCHNL_ERR_PARAM:
  2636				return -EPERM;
  2637			default:
  2638				return -EINVAL;
  2639			}
  2640		}
  2641	
  2642		switch (v_opcode) {
  2643		case VIRTCHNL_OP_VERSION:
  2644			ret = i40e_vc_get_version_msg(vf, msg);
  2645			break;
  2646		case VIRTCHNL_OP_GET_VF_RESOURCES:
  2647			ret = i40e_vc_get_vf_resources_msg(vf, msg);
  2648			break;
  2649		case VIRTCHNL_OP_RESET_VF:
  2650			i40e_vc_reset_vf_msg(vf);
  2651			ret = 0;
  2652			break;
  2653		case VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE:
  2654			ret = i40e_vc_config_promiscuous_mode_msg(vf, msg, msglen);
  2655			break;
  2656		case VIRTCHNL_OP_CONFIG_VSI_QUEUES:
  2657			ret = i40e_vc_config_queues_msg(vf, msg, msglen);
  2658			break;
  2659		case VIRTCHNL_OP_CONFIG_IRQ_MAP:
  2660			ret = i40e_vc_config_irq_map_msg(vf, msg, msglen);
  2661			break;
  2662		case VIRTCHNL_OP_ENABLE_QUEUES:
  2663			ret = i40e_vc_enable_queues_msg(vf, msg, msglen);
  2664			i40e_vc_notify_vf_link_state(vf);
  2665			break;
  2666		case VIRTCHNL_OP_DISABLE_QUEUES:
  2667			ret = i40e_vc_disable_queues_msg(vf, msg, msglen);
  2668			break;
  2669		case VIRTCHNL_OP_ADD_ETH_ADDR:
  2670			ret = i40e_vc_add_mac_addr_msg(vf, msg, msglen);
  2671			break;
  2672		case VIRTCHNL_OP_DEL_ETH_ADDR:
  2673			ret = i40e_vc_del_mac_addr_msg(vf, msg, msglen);
  2674			break;
  2675		case VIRTCHNL_OP_ADD_VLAN:
  2676			ret = i40e_vc_add_vlan_msg(vf, msg, msglen);
  2677			break;
  2678		case VIRTCHNL_OP_DEL_VLAN:
  2679			ret = i40e_vc_remove_vlan_msg(vf, msg, msglen);
  2680			break;
  2681		case VIRTCHNL_OP_GET_STATS:
  2682			ret = i40e_vc_get_stats_msg(vf, msg, msglen);
  2683			break;
  2684		case VIRTCHNL_OP_IWARP:
  2685			ret = i40e_vc_iwarp_msg(vf, msg, msglen);
  2686			break;
  2687		case VIRTCHNL_OP_CONFIG_IWARP_IRQ_MAP:
  2688			ret = i40e_vc_iwarp_qvmap_msg(vf, msg, msglen, true);
  2689			break;
  2690		case VIRTCHNL_OP_RELEASE_IWARP_IRQ_MAP:
  2691			ret = i40e_vc_iwarp_qvmap_msg(vf, msg, msglen, false);
  2692			break;
  2693		case VIRTCHNL_OP_CONFIG_RSS_KEY:
  2694			ret = i40e_vc_config_rss_key(vf, msg, msglen);
  2695			break;
  2696		case VIRTCHNL_OP_CONFIG_RSS_LUT:
  2697			ret = i40e_vc_config_rss_lut(vf, msg, msglen);
  2698			break;
  2699		case VIRTCHNL_OP_GET_RSS_HENA_CAPS:
  2700			ret = i40e_vc_get_rss_hena(vf, msg, msglen);
  2701			break;
  2702		case VIRTCHNL_OP_SET_RSS_HENA:
  2703			ret = i40e_vc_set_rss_hena(vf, msg, msglen);
  2704			break;
> 2705		case VIRTCHNL_OP_ENABLE_VLAN_STRIPPING:
  2706			ret = i40e_vc_enable_vlan_stripping(vf, msg, msglen);
  2707			break;
  2708		case VIRTCHNL_OP_DISABLE_VLAN_STRIPPING:
  2709			ret = i40e_vc_disable_vlan_stripping(vf, msg, msglen);
  2710			break;
  2711	
  2712		case VIRTCHNL_OP_UNKNOWN:
  2713		default:
  2714			dev_err(&pf->pdev->dev, "Unsupported opcode %d from VF %d\n",
  2715				v_opcode, local_vf_id);
  2716			ret = i40e_vc_send_resp_to_vf(vf, v_opcode,
  2717						      I40E_ERR_NOT_IMPLEMENTED);
  2718			break;
  2719		}
  2720	
  2721		return ret;
  2722	}
  2723	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

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

* [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task
  2017-07-12  9:46 [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task Alice Michael
                   ` (9 preceding siblings ...)
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 11/11] i40e: 25G FEC status improvements Alice Michael
@ 2017-07-14 21:20 ` Bowers, AndrewX
  10 siblings, 0 replies; 22+ messages in thread
From: Bowers, AndrewX @ 2017-07-14 21:20 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On
> Behalf Of Alice Michael
> Sent: Wednesday, July 12, 2017 2:46 AM
> To: Michael, Alice <alice.michael@intel.com>; intel-wired-
> lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev
> variable in reset task
> 
> From: Alan Brady <alan.brady@intel.com>
> 
> If we're going to bother initializing a variable to reference it we might as well
> use it.
> 
> Signed-off-by: Alan Brady <alan.brady@intel.com>
> ---
>  drivers/net/ethernet/intel/i40evf/i40evf_main.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

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



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

* [Intel-wired-lan] [next PATCH S75-V3 02/11] i40e: use cpumask_copy instead of direct assignment
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 02/11] i40e: use cpumask_copy instead of direct assignment Alice Michael
@ 2017-07-14 22:26   ` Bowers, AndrewX
  0 siblings, 0 replies; 22+ messages in thread
From: Bowers, AndrewX @ 2017-07-14 22:26 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On
> Behalf Of Alice Michael
> Sent: Wednesday, July 12, 2017 2:46 AM
> To: Michael, Alice <alice.michael@intel.com>; intel-wired-
> lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S75-V3 02/11] i40e: use
> cpumask_copy instead of direct assignment
> 
> From: Jacob Keller <jacob.e.keller@intel.com>
> 
> According to the header file cpumask.h, we shouldn't be directly copying a
> cpumask_t, since its a bitmap and might not be copied correctly. Lets use the
> provided cpumask_copy() function instead.
> 
> Signed-off-by: Jacob Keller <jacob.e.keller@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>



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

* [Intel-wired-lan] [next PATCH S75-V3 03/11] i40e: prevent changing ITR if adaptive-rx/tx enabled
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 03/11] i40e: prevent changing ITR if adaptive-rx/tx enabled Alice Michael
@ 2017-07-14 22:33   ` Bowers, AndrewX
  0 siblings, 0 replies; 22+ messages in thread
From: Bowers, AndrewX @ 2017-07-14 22:33 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On
> Behalf Of Alice Michael
> Sent: Wednesday, July 12, 2017 2:46 AM
> To: Michael, Alice <alice.michael@intel.com>; intel-wired-
> lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S75-V3 03/11] i40e: prevent changing
> ITR if adaptive-rx/tx enabled
> 
> From: Alan Brady <alan.brady@intel.com>
> 
> Currently the driver allows the user to change (or even disable) interrupt
> moderation if adaptive-rx/tx is enabled when this should not be the case.
> 
> Adaptive RX/TX will not respect the user's ITR settings so allowing the user to
> change it is weird.  This bug would also allow the user to disable interrupt
> moderation with adaptive-rx/tx enabled which doesn't make much sense
> either.
> 
> This patch makes it such that if adaptive-rx/tx is enabled, the user cannot
> make any manual adjustments to interrupt moderation.  It also makes it so
> that if ITR is disabled but adaptive-rx/tx is then enabled, ITR will be re-
> enabled.
> 
> Signed-off-by: Alan Brady <alan.brady@intel.com>
> ---
>  drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 61 +++++++++++++++++--
> -------
>  1 file changed, 41 insertions(+), 20 deletions(-)

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



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

* [Intel-wired-lan] [next PATCH S75-V3 06/11] i40e: prevent snprintf format specifier truncation
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 06/11] i40e: prevent snprintf format specifier truncation Alice Michael
@ 2017-07-14 22:34   ` Bowers, AndrewX
  0 siblings, 0 replies; 22+ messages in thread
From: Bowers, AndrewX @ 2017-07-14 22:34 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On
> Behalf Of Alice Michael
> Sent: Wednesday, July 12, 2017 2:46 AM
> To: Michael, Alice <alice.michael@intel.com>; intel-wired-
> lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S75-V3 06/11] i40e: prevent snprintf
> format specifier truncation
> 
> From: Jacob Keller <jacob.e.keller@intel.com>
> 
> Increase the size of the prefix buffer so that it can hold enough characters for
> every possible input. Although 20 is enough for all expected inputs, it is
> possible for the values to be larger than expected, resulting in a possibly
> truncated string. Additionally, lets use sizeof(prefix) in order to ensure we
> use the correct size if we need to change the array length in the future.
> 
> New versions of GCC starting at 7 now include warnings to prevent
> truncation unless you handle the return code. At most 27 bytes can be
> written here, so lets just increase the buffer size even if for all expected hw-
> >bus.* values we only needed 20.
> 
> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
> ---
>  drivers/net/ethernet/intel/i40e/i40e_common.c   | 4 ++--
>  drivers/net/ethernet/intel/i40evf/i40e_common.c | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)

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



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

* [Intel-wired-lan] [next PATCH S75-V3 08/11] i40evf: fix possible snprintf truncation of q_vector->name
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 08/11] i40evf: fix possible snprintf truncation of q_vector->name Alice Michael
@ 2017-07-14 22:35   ` Bowers, AndrewX
  0 siblings, 0 replies; 22+ messages in thread
From: Bowers, AndrewX @ 2017-07-14 22:35 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On
> Behalf Of Alice Michael
> Sent: Wednesday, July 12, 2017 2:46 AM
> To: Michael, Alice <alice.michael@intel.com>; intel-wired-
> lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S75-V3 08/11] i40evf: fix possible
> snprintf truncation of q_vector->name
> 
> From: Jacob Keller <jacob.e.keller@intel.com>
> 
> The q_vector names are based on the interface name with a driver prefix,
> the type of q_vector setup, and the queue number. We previously set the
> size of this variable to IFNAMSIZ + 9, which is incorrect, because we actually
> include a minimum of 14 characters extra beyond the interface name size.
> 
> New versions of GCC since 7 include a new warning that detects this possible
> truncation and complains. We can fix this by increasing the size incase our
> interface name is too large to avoid truncation. We don't need to go beyond
> 14 because the compiler is smart enough to realize our values can never
> exceed size of 1. We do go up to 15 here because possible future changes
> may increase the number of queues beyond one digit.
> 
> While we are here, also change some variables to be unsigned (since they
> are never negative) and stop using an extra unnecessary %s format specifier.
> 
> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
> ---
>  drivers/net/ethernet/intel/i40evf/i40evf.h      |  2 +-
>  drivers/net/ethernet/intel/i40evf/i40evf_main.c | 21 +++++++++------------
>  2 files changed, 10 insertions(+), 13 deletions(-)

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



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

* [Intel-wired-lan] [next PATCH S75-V3 05/11] i40e: Store the requested FEC information
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 05/11] i40e: Store the requested FEC information Alice Michael
@ 2017-07-14 22:50   ` Bowers, AndrewX
  0 siblings, 0 replies; 22+ messages in thread
From: Bowers, AndrewX @ 2017-07-14 22:50 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On
> Behalf Of Alice Michael
> Sent: Wednesday, July 12, 2017 2:46 AM
> To: Michael, Alice <alice.michael@intel.com>; intel-wired-
> lan at lists.osuosl.org
> Cc: Stachura, Mariusz <mariusz.stachura@intel.com>
> Subject: [Intel-wired-lan] [next PATCH S75-V3 05/11] i40e: Store the
> requested FEC information
> 
> From: Mariusz Stachura <mariusz.stachura@intel.com>
> 
> Store information about FEC modes, that were requested. It will be used in
> printing link status information function and this way there is no need to call
> admin queue there.
> 
> Signed-off-by: Mariusz Stachura <mariusz.stachura@intel.com>
> ---
>  drivers/net/ethernet/intel/i40e/i40e_common.c | 4 ++++
>  drivers/net/ethernet/intel/i40e/i40e_type.h   | 1 +
>  drivers/net/ethernet/intel/i40evf/i40e_type.h | 1 +
>  3 files changed, 6 insertions(+)

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



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

* [Intel-wired-lan] [next PATCH S75-V3 07/11] i40e: Use correct flag to enable egress traffic for unicast promisc
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 07/11] i40e: Use correct flag to enable egress traffic for unicast promisc Alice Michael
@ 2017-07-17 18:16   ` Bowers, AndrewX
  0 siblings, 0 replies; 22+ messages in thread
From: Bowers, AndrewX @ 2017-07-17 18:16 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On
> Behalf Of Alice Michael
> Sent: Wednesday, July 12, 2017 2:46 AM
> To: Michael, Alice <alice.michael@intel.com>; intel-wired-
> lan at lists.osuosl.org
> Cc: Abodunrin, Akeem G <akeem.g.abodunrin@intel.com>
> Subject: [Intel-wired-lan] [next PATCH S75-V3 07/11] i40e: Use correct flag to
> enable egress traffic for unicast promisc
> 
> From: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>
> 
> Albeit, we usually set true promiscuous mode for both multicast and unicast
> at the same time - however, it is possible to set it individually, so using
> allmulti flag which is only for allmulticast might caused unwanted behavior in
> mirroring egress traffic promiscuous for unicast in VF.
> 
> Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>
> ---
>  drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

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



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

* [Intel-wired-lan] [next PATCH S75-V3 09/11] i40e: force VMDQ device name truncation
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 09/11] i40e: force VMDQ device name truncation Alice Michael
@ 2017-07-17 18:22   ` Bowers, AndrewX
  0 siblings, 0 replies; 22+ messages in thread
From: Bowers, AndrewX @ 2017-07-17 18:22 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On
> Behalf Of Alice Michael
> Sent: Wednesday, July 12, 2017 2:46 AM
> To: Michael, Alice <alice.michael@intel.com>; intel-wired-
> lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next PATCH S75-V3 09/11] i40e: force VMDQ
> device name truncation
> 
> From: Jacob Keller <jacob.e.keller@intel.com>
> 
> In new versions of GCC since 7.x a new warning exists which warns when a
> string is truncated before all of the format can be completed.
> 
> When we setup VMDQ netdev names we are copying a pre-existing
> interface name which could be up to 15 characters in length. Since we also
> add
> 4 bytes, v, the literal %, the d and a \0 null, we would overrun the available
> size unless snprintf truncated for us.
> 
> The snprintf call will ofcourse truncate on the end, so lets instead modify the
> code to force truncation of the copied netdev name by
> 4 characters, to create enough space for the 4 bytes we're adding.
> 
> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
> ---
>  drivers/net/ethernet/intel/i40e/i40e_main.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)

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



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

* [Intel-wired-lan] [next PATCH S75-V3 11/11] i40e: 25G FEC status improvements
  2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 11/11] i40e: 25G FEC status improvements Alice Michael
@ 2017-07-19 18:56   ` Bowers, AndrewX
  0 siblings, 0 replies; 22+ messages in thread
From: Bowers, AndrewX @ 2017-07-19 18:56 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On
> Behalf Of Alice Michael
> Sent: Wednesday, July 12, 2017 2:46 AM
> To: Michael, Alice <alice.michael@intel.com>; intel-wired-
> lan at lists.osuosl.org
> Cc: Stachura, Mariusz <mariusz.stachura@intel.com>
> Subject: [Intel-wired-lan] [next PATCH S75-V3 11/11] i40e: 25G FEC status
> improvements
> 
> From: Mariusz Stachura <mariusz.stachura@intel.com>
> 
> This patch improves the system log message. The log message will be
> expanded to include the FEC mode the FW requested before link was
> established.
> 
> Signed-off-by: Mariusz Stachura <mariusz.stachura@intel.com>
> ---
>  drivers/net/ethernet/intel/i40e/i40e_main.c | 18 ++++++++++++++++--
>  1 file changed, 16 insertions(+), 2 deletions(-)

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



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

end of thread, other threads:[~2017-07-19 18:56 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-12  9:46 [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task Alice Michael
2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 02/11] i40e: use cpumask_copy instead of direct assignment Alice Michael
2017-07-14 22:26   ` Bowers, AndrewX
2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 03/11] i40e: prevent changing ITR if adaptive-rx/tx enabled Alice Michael
2017-07-14 22:33   ` Bowers, AndrewX
2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 04/11] i40e: synchronize nvmupdate command and adminq subtask Alice Michael
2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 05/11] i40e: Store the requested FEC information Alice Michael
2017-07-14 22:50   ` Bowers, AndrewX
2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 06/11] i40e: prevent snprintf format specifier truncation Alice Michael
2017-07-14 22:34   ` Bowers, AndrewX
2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 07/11] i40e: Use correct flag to enable egress traffic for unicast promisc Alice Michael
2017-07-17 18:16   ` Bowers, AndrewX
2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 08/11] i40evf: fix possible snprintf truncation of q_vector->name Alice Michael
2017-07-14 22:35   ` Bowers, AndrewX
2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 09/11] i40e: force VMDQ device name truncation Alice Michael
2017-07-17 18:22   ` Bowers, AndrewX
2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 10/11] i40e/i40evf: support for VF VLAN tag stripping control Alice Michael
2017-07-13  5:14   ` kbuild test robot
2017-07-13  8:46   ` kbuild test robot
2017-07-12  9:46 ` [Intel-wired-lan] [next PATCH S75-V3 11/11] i40e: 25G FEC status improvements Alice Michael
2017-07-19 18:56   ` Bowers, AndrewX
2017-07-14 21:20 ` [Intel-wired-lan] [next PATCH S75-V3 01/11] i40evf: use netdev variable in reset task 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.