* [net-next 01/17] ixgbe: disable LRO by default
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
@ 2015-10-15 9:39 ` Jeff Kirsher
2015-10-15 9:39 ` [net-next 02/17] ixgbe: Fix CS4227-related semaphore error on reset failure Jeff Kirsher
` (16 subsequent siblings)
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:39 UTC (permalink / raw)
To: davem; +Cc: Emil Tantilov, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Emil Tantilov <emil.s.tantilov@intel.com>
This patch disables LRO by default in favor of GRO.
LRO is incompatible with forwarding and is disabled when forwarding
is turned on which makes the default offloads of the driver
inconsistent. LRO can still be enabled via ethtool.
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Darin Miller <darin.j.miller@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index c4608f8..1b2ad39 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -5307,7 +5307,6 @@ static int ixgbe_sw_init(struct ixgbe_adapter *adapter)
rss = min_t(int, ixgbe_max_rss_indices(adapter), num_online_cpus());
adapter->ring_feature[RING_F_RSS].limit = rss;
adapter->flags2 |= IXGBE_FLAG2_RSC_CAPABLE;
- adapter->flags2 |= IXGBE_FLAG2_RSC_ENABLED;
adapter->max_q_vectors = MAX_Q_VECTORS_82599;
adapter->atr_sample_rate = 20;
fdir = min_t(int, IXGBE_MAX_FDIR_INDICES, num_online_cpus());
@@ -5333,7 +5332,6 @@ static int ixgbe_sw_init(struct ixgbe_adapter *adapter)
switch (hw->mac.type) {
case ixgbe_mac_82598EB:
adapter->flags2 &= ~IXGBE_FLAG2_RSC_CAPABLE;
- adapter->flags2 &= ~IXGBE_FLAG2_RSC_ENABLED;
if (hw->device_id == IXGBE_DEV_ID_82598AT)
adapter->flags |= IXGBE_FLAG_FAN_FAIL_CAPABLE;
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 02/17] ixgbe: Fix CS4227-related semaphore error on reset failure
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
2015-10-15 9:39 ` [net-next 01/17] ixgbe: disable LRO by default Jeff Kirsher
@ 2015-10-15 9:39 ` Jeff Kirsher
2015-10-15 9:39 ` [net-next 03/17] i40e: Add missing parameter comment to ndo_bridge_setlink Jeff Kirsher
` (15 subsequent siblings)
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:39 UTC (permalink / raw)
To: davem; +Cc: Mark Rustad, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Mark Rustad <mark.d.rustad@intel.com>
If the reset never completes, it is necessary to retake the
semaphore before returning, because the caller will release
the semaphore.
Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Darin Miller <darin.j.miller@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
index ed7b289..06b15edd 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
@@ -198,6 +198,7 @@ static s32 ixgbe_write_pe(struct ixgbe_hw *hw, u8 reg, u8 value)
* ixgbe_reset_cs4227 - Reset CS4227 using port expander
* @hw: pointer to hardware structure
*
+ * This function assumes that the caller has acquired the proper semaphore.
* Returns error code
*/
static s32 ixgbe_reset_cs4227(struct ixgbe_hw *hw)
@@ -296,6 +297,14 @@ static void ixgbe_check_cs4227(struct ixgbe_hw *hw)
hw->mac.ops.release_swfw_sync(hw, swfw_mask);
msleep(IXGBE_CS4227_CHECK_DELAY);
}
+ /* If still pending, assume other instance failed. */
+ if (retry == IXGBE_CS4227_RETRIES) {
+ status = hw->mac.ops.acquire_swfw_sync(hw, swfw_mask);
+ if (status) {
+ hw_err(hw, "semaphore failed with %d\n", status);
+ return;
+ }
+ }
/* Reset the CS4227. */
status = ixgbe_reset_cs4227(hw);
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 03/17] i40e: Add missing parameter comment to ndo_bridge_setlink
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
2015-10-15 9:39 ` [net-next 01/17] ixgbe: disable LRO by default Jeff Kirsher
2015-10-15 9:39 ` [net-next 02/17] ixgbe: Fix CS4227-related semaphore error on reset failure Jeff Kirsher
@ 2015-10-15 9:39 ` Jeff Kirsher
2015-10-15 9:39 ` [net-next 04/17] i40e: use priv flags to control flow director Jeff Kirsher
` (14 subsequent siblings)
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:39 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
Add nlflags to the function comment for ndo_bridge_setlink.
Change-ID: I34c704f307f2a3f7bac3ca4b44e2a094d3d082d6
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 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 f728140..10662f6 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -8330,6 +8330,7 @@ static int i40e_ndo_bridge_setlink(struct net_device *dev,
* @seq: RTNL message seq #
* @dev: the netdev being configured
* @filter_mask: unused
+ * @nlflags: netlink flags passed in
*
* Return the mode in which the hardware bridge is operating in
* i.e VEB or VEPA.
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 04/17] i40e: use priv flags to control flow director
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (2 preceding siblings ...)
2015-10-15 9:39 ` [net-next 03/17] i40e: Add missing parameter comment to ndo_bridge_setlink Jeff Kirsher
@ 2015-10-15 9:39 ` Jeff Kirsher
2015-10-15 9:39 ` [net-next 05/17] i40e: Change some messages from info to debug only Jeff Kirsher
` (13 subsequent siblings)
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:39 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
Some customers wish to be able to control our hardware specific
feature called flow director, at runtime. This patch enables
ethtool priv flags to control this driver/hardware specific feature.
ethtool --set-priv-flags ethX flow-director-atr off
NOTE: the ethtool ntuple interface controls the flow-director
sideband rules.
Change-ID: Iba156350b07fa2ce66f53ded51739f9a3781fe0e
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 14 ++++++++++++++
2 files changed, 15 insertions(+)
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index cfe8f83..c8591b9 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -102,6 +102,7 @@
/* Ethtool Private Flags */
#define I40E_PRIV_FLAGS_NPAR_FLAG BIT(0)
#define I40E_PRIV_FLAGS_LINKPOLL_FLAG BIT(1)
+#define I40E_PRIV_FLAGS_FD_ATR BIT(2)
#define I40E_NVM_VERSION_LO_SHIFT 0
#define I40E_NVM_VERSION_LO_MASK (0xff << I40E_NVM_VERSION_LO_SHIFT)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index 831f971..185ac91 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -231,6 +231,7 @@ static const char i40e_gstrings_test[][ETH_GSTRING_LEN] = {
static const char i40e_priv_flags_strings[][ETH_GSTRING_LEN] = {
"NPAR",
"LinkPolling",
+ "flow-director-atr",
};
#define I40E_PRIV_FLAGS_STR_LEN ARRAY_SIZE(i40e_priv_flags_strings)
@@ -2666,6 +2667,8 @@ static u32 i40e_get_priv_flags(struct net_device *dev)
I40E_PRIV_FLAGS_NPAR_FLAG : 0;
ret_flags |= pf->flags & I40E_FLAG_LINK_POLLING_ENABLED ?
I40E_PRIV_FLAGS_LINKPOLL_FLAG : 0;
+ ret_flags |= pf->flags & I40E_FLAG_FD_ATR_ENABLED ?
+ I40E_PRIV_FLAGS_FD_ATR : 0;
return ret_flags;
}
@@ -2686,6 +2689,17 @@ static int i40e_set_priv_flags(struct net_device *dev, u32 flags)
else
pf->flags &= ~I40E_FLAG_LINK_POLLING_ENABLED;
+ /* allow the user to control the state of the Flow
+ * Director ATR (Application Targeted Routing) feature
+ * of the driver
+ */
+ if (flags & I40E_PRIV_FLAGS_FD_ATR) {
+ pf->flags |= I40E_FLAG_FD_ATR_ENABLED;
+ } else {
+ pf->flags &= ~I40E_FLAG_FD_ATR_ENABLED;
+ pf->auto_disable_flags |= I40E_FLAG_FD_ATR_ENABLED;
+ }
+
return 0;
}
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 05/17] i40e: Change some messages from info to debug only
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (3 preceding siblings ...)
2015-10-15 9:39 ` [net-next 04/17] i40e: use priv flags to control flow director Jeff Kirsher
@ 2015-10-15 9:39 ` Jeff Kirsher
2015-10-15 9:54 ` Joe Perches
2015-10-15 9:39 ` [net-next 06/17] i40e: Remove 100M SGMII unless hw is X722 Jeff Kirsher
` (12 subsequent siblings)
17 siblings, 1 reply; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:39 UTC (permalink / raw)
To: davem
Cc: Neerav Parikh, netdev, nhorman, sassmann, jogreene,
Catherine Sullivan, Shannon Nelson, Jeff Kirsher
From: Neerav Parikh <neerav.parikh@intel.com>
There are several error messages that have been printing when there is
no functional issue. These messages should be available at debug message
level only.
Change-ID: Id91e47bf942c483563995f30d8705fa53acd5aa3
Signed-off-by: Neerav Parikh <neerav.parikh@intel.com>
Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com>
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c | 7 +++----
drivers/net/ethernet/intel/i40e/i40e_fcoe.c | 2 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 21 +++++++++++++--------
3 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c b/drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c
index 7c42d13..886e667 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c
@@ -240,10 +240,9 @@ static void i40e_dcbnl_del_app(struct i40e_pf *pf,
for (v = 0; v < pf->num_alloc_vsi; v++) {
if (pf->vsi[v] && pf->vsi[v]->netdev) {
err = i40e_dcbnl_vsi_del_app(pf->vsi[v], app);
- if (err)
- dev_info(&pf->pdev->dev, "Failed deleting app for VSI seid=%d err=%d sel=%d proto=0x%x prio=%d\n",
- pf->vsi[v]->seid, err, app->selector,
- app->protocolid, app->priority);
+ dev_dbg(&pf->pdev->dev, "Deleting app for VSI seid=%d err=%d sel=%d proto=0x%x prio=%d\n",
+ pf->vsi[v]->seid, err, app->selector,
+ app->protocolid, app->priority);
}
}
}
diff --git a/drivers/net/ethernet/intel/i40e/i40e_fcoe.c b/drivers/net/ethernet/intel/i40e/i40e_fcoe.c
index eaedc1f..2ec2411 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_fcoe.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_fcoe.c
@@ -284,7 +284,7 @@ void i40e_init_pf_fcoe(struct i40e_pf *pf)
pf->fcoe_hmc_filt_num = 0;
if (!pf->hw.func_caps.fcoe) {
- dev_info(&pf->pdev->dev, "FCoE capability is disabled\n");
+ dev_dbg(&pf->pdev->dev, "FCoE capability is disabled\n");
return;
}
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 10662f6..7c4add8 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -6593,9 +6593,9 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit)
/* make sure our flow control settings are restored */
ret = i40e_set_fc(&pf->hw, &set_fc_aq_fail, true);
if (ret)
- dev_info(&pf->pdev->dev, "set fc fail, err %s aq_err %s\n",
- i40e_stat_str(&pf->hw, ret),
- i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));
+ dev_dbg(&pf->pdev->dev, "setting flow control: ret = %s last_status = %s\n",
+ i40e_stat_str(&pf->hw, ret),
+ i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));
/* Rebuild the VSIs and VEBs that existed before reset.
* They are still in our local switch element arrays, so only
@@ -9847,8 +9847,14 @@ static void i40e_determine_queue_usage(struct i40e_pf *pf)
}
pf->queues_left = queues_left;
+ dev_dbg(&pf->pdev->dev,
+ "qs_avail=%d FD SB=%d lan_qs=%d lan_tc0=%d vf=%d*%d vmdq=%d*%d, remaining=%d\n",
+ pf->hw.func_caps.num_tx_qp,
+ !!(pf->flags & I40E_FLAG_FD_SB_ENABLED),
+ pf->num_lan_qps, pf->rss_size, pf->num_req_vfs, pf->num_vf_qps,
+ pf->num_vmdq_vsis, pf->num_vmdq_qps, queues_left);
#ifdef I40E_FCOE
- dev_info(&pf->pdev->dev, "fcoe queues = %d\n", pf->num_fcoe_qps);
+ dev_dbg(&pf->pdev->dev, "fcoe queues = %d\n", pf->num_fcoe_qps);
#endif
}
@@ -10333,10 +10339,9 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
/* get the requested speeds from the fw */
err = i40e_aq_get_phy_capabilities(hw, false, false, &abilities, NULL);
if (err)
- dev_info(&pf->pdev->dev,
- "get phy capabilities failed, err %s aq_err %s, advertised speed settings may not be correct\n",
- i40e_stat_str(&pf->hw, err),
- i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));
+ dev_dbg(&pf->pdev->dev, "get requested speeds ret = %s last_status = %s\n",
+ i40e_stat_str(&pf->hw, err),
+ i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));
pf->hw.phy.link_info.requested_speeds = abilities.link_speed;
/* get the supported phy types from the fw */
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* Re: [net-next 05/17] i40e: Change some messages from info to debug only
2015-10-15 9:39 ` [net-next 05/17] i40e: Change some messages from info to debug only Jeff Kirsher
@ 2015-10-15 9:54 ` Joe Perches
2015-10-15 16:49 ` Sullivan, Catherine
0 siblings, 1 reply; 21+ messages in thread
From: Joe Perches @ 2015-10-15 9:54 UTC (permalink / raw)
To: Jeff Kirsher
Cc: davem, Neerav Parikh, netdev, nhorman, sassmann, jogreene,
Catherine Sullivan, Shannon Nelson
On Thu, 2015-10-15 at 02:39 -0700, Jeff Kirsher wrote:
> From: Neerav Parikh <neerav.parikh@intel.com>
>
> There are several error messages that have been printing when there is
> no functional issue. These messages should be available at debug message
> level only.
[]
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
[]
> @@ -6593,9 +6593,9 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit)
> /* make sure our flow control settings are restored */
> ret = i40e_set_fc(&pf->hw, &set_fc_aq_fail, true);
> if (ret)
> - dev_info(&pf->pdev->dev, "set fc fail, err %s aq_err %s\n",
> - i40e_stat_str(&pf->hw, ret),
> - i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));
> + dev_dbg(&pf->pdev->dev, "setting flow control: ret = %s last_status = %s\n",
> + i40e_stat_str(&pf->hw, ret),
> + i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));
[]
> @@ -10333,10 +10339,9 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> /* get the requested speeds from the fw */
> err = i40e_aq_get_phy_capabilities(hw, false, false, &abilities, NULL);
> if (err)
> - dev_info(&pf->pdev->dev,
> - "get phy capabilities failed, err %s aq_err %s, advertised speed settings may not be correct\n",
> - i40e_stat_str(&pf->hw, err),
> - i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));
> + dev_dbg(&pf->pdev->dev, "get requested speeds ret = %s last_status = %s\n",
> + i40e_stat_str(&pf->hw, err),
> + i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));
> pf->hw.phy.link_info.requested_speeds = abilities.link_speed;
>
> /* get the supported phy types from the fw */
Perhaps these 2 are functional issues and should remain
dev_info or maybe upgraded to notice or err
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [net-next 05/17] i40e: Change some messages from info to debug only
2015-10-15 9:54 ` Joe Perches
@ 2015-10-15 16:49 ` Sullivan, Catherine
0 siblings, 0 replies; 21+ messages in thread
From: Sullivan, Catherine @ 2015-10-15 16:49 UTC (permalink / raw)
To: Joe Perches, Kirsher, Jeffrey T
Cc: davem@davemloft.net, Parikh, Neerav, netdev@vger.kernel.org,
nhorman@redhat.com, sassmann@redhat.com, jogreene@redhat.com,
Nelson, Shannon
> From: Joe Perches [mailto:joe@perches.com]
> Sent: Thursday, October 15, 2015 2:55 AM
>
> On Thu, 2015-10-15 at 02:39 -0700, Jeff Kirsher wrote:
> > From: Neerav Parikh <neerav.parikh@intel.com>
> >
> > There are several error messages that have been printing when there is
> > no functional issue. These messages should be available at debug
> > message level only.
> []
> > diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c
> > b/drivers/net/ethernet/intel/i40e/i40e_main.c
> []
> > @@ -6593,9 +6593,9 @@ static void i40e_reset_and_rebuild(struct i40e_pf
> *pf, bool reinit)
> > /* make sure our flow control settings are restored */
> > ret = i40e_set_fc(&pf->hw, &set_fc_aq_fail, true);
> > if (ret)
> > - dev_info(&pf->pdev->dev, "set fc fail, err %s aq_err %s\n",
> > - i40e_stat_str(&pf->hw, ret),
> > - i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));
> > + dev_dbg(&pf->pdev->dev, "setting flow control: ret = %s
> last_status = %s\n",
> > + i40e_stat_str(&pf->hw, ret),
> > + i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));
> []
> > @@ -10333,10 +10339,9 @@ static int i40e_probe(struct pci_dev *pdev,
> const struct pci_device_id *ent)
> > /* get the requested speeds from the fw */
> > err = i40e_aq_get_phy_capabilities(hw, false, false, &abilities, NULL);
> > if (err)
> > - dev_info(&pf->pdev->dev,
> > - "get phy capabilities failed, err %s aq_err %s,
> advertised speed settings may not be correct\n",
> > - i40e_stat_str(&pf->hw, err),
> > - i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));
> > + dev_dbg(&pf->pdev->dev, "get requested speeds ret = %s
> last_status = %s\n",
> > + i40e_stat_str(&pf->hw, err),
> > + i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));
> > pf->hw.phy.link_info.requested_speeds = abilities.link_speed;
> >
> > /* get the supported phy types from the fw */
>
>
> Perhaps these 2 are functional issues and should remain dev_info or maybe
> upgraded to notice or err
>
>
They aren't functional issues right now. Both of these are actually failures from the get_phy_capabilities call, so the only problem would be the phy information the driver has stored being slightly out of date, and in this case it is out of date for such a short period of time that it doesn't have an effect. We don't want to alarm people with an error message that has no functional impact right now, but we wanted to leave it in at the debug level in case it does have a functional impact in the future we still have a way to see the problem.
^ permalink raw reply [flat|nested] 21+ messages in thread
* [net-next 06/17] i40e: Remove 100M SGMII unless hw is X722
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (4 preceding siblings ...)
2015-10-15 9:39 ` [net-next 05/17] i40e: Change some messages from info to debug only Jeff Kirsher
@ 2015-10-15 9:39 ` Jeff Kirsher
2015-10-15 9:39 ` [net-next 07/17] i40e/i40evf: Add WB_ON_ITR offload support Jeff Kirsher
` (11 subsequent siblings)
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:39 UTC (permalink / raw)
To: davem
Cc: Catherine Sullivan, netdev, nhorman, sassmann, jogreene,
Shannon Nelson, Jeff Kirsher
From: Catherine Sullivan <catherine.sullivan@intel.com>
Only the X722 device now supports 100M SGMII, and nothing supports
100M on 1000Base_T.
Change-ID: I6f44dcd818944edd40041410e6de380f4a359a0c
Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com>
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 42 ++++++++++++++++----------
1 file changed, 26 insertions(+), 16 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index 185ac91..b311391 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -255,7 +255,8 @@ static void i40e_partition_setting_complaint(struct i40e_pf *pf)
**/
static void i40e_get_settings_link_up(struct i40e_hw *hw,
struct ethtool_cmd *ecmd,
- struct net_device *netdev)
+ struct net_device *netdev,
+ struct i40e_pf *pf)
{
struct i40e_link_status *hw_link_info = &hw->phy.link_info;
u32 link_speed = hw_link_info->link_speed;
@@ -299,16 +300,18 @@ static void i40e_get_settings_link_up(struct i40e_hw *hw,
break;
case I40E_PHY_TYPE_10GBASE_T:
case I40E_PHY_TYPE_1000BASE_T:
- case I40E_PHY_TYPE_100BASE_TX:
ecmd->supported = SUPPORTED_Autoneg |
SUPPORTED_10000baseT_Full |
- SUPPORTED_1000baseT_Full |
- SUPPORTED_100baseT_Full;
+ SUPPORTED_1000baseT_Full;
ecmd->advertising = ADVERTISED_Autoneg;
if (hw_link_info->requested_speeds & I40E_LINK_SPEED_10GB)
ecmd->advertising |= ADVERTISED_10000baseT_Full;
if (hw_link_info->requested_speeds & I40E_LINK_SPEED_1GB)
ecmd->advertising |= ADVERTISED_1000baseT_Full;
+ break;
+ case I40E_PHY_TYPE_100BASE_TX:
+ ecmd->supported = SUPPORTED_Autoneg |
+ SUPPORTED_100baseT_Full;
if (hw_link_info->requested_speeds & I40E_LINK_SPEED_100MB)
ecmd->advertising |= ADVERTISED_100baseT_Full;
break;
@@ -328,12 +331,15 @@ static void i40e_get_settings_link_up(struct i40e_hw *hw,
break;
case I40E_PHY_TYPE_SGMII:
ecmd->supported = SUPPORTED_Autoneg |
- SUPPORTED_1000baseT_Full |
- SUPPORTED_100baseT_Full;
+ SUPPORTED_1000baseT_Full;
if (hw_link_info->requested_speeds & I40E_LINK_SPEED_1GB)
ecmd->advertising |= ADVERTISED_1000baseT_Full;
- if (hw_link_info->requested_speeds & I40E_LINK_SPEED_100MB)
- ecmd->advertising |= ADVERTISED_100baseT_Full;
+ if (pf->hw.mac.type == I40E_MAC_X722) {
+ ecmd->supported |= SUPPORTED_100baseT_Full;
+ if (hw_link_info->requested_speeds &
+ I40E_LINK_SPEED_100MB)
+ ecmd->advertising |= ADVERTISED_100baseT_Full;
+ }
break;
/* Backplane is set based on supported phy types in get_settings
* so don't set anything here but don't warn either
@@ -381,7 +387,8 @@ static void i40e_get_settings_link_up(struct i40e_hw *hw,
* Reports link settings that can be determined when link is down
**/
static void i40e_get_settings_link_down(struct i40e_hw *hw,
- struct ethtool_cmd *ecmd)
+ struct ethtool_cmd *ecmd,
+ struct i40e_pf *pf)
{
enum i40e_aq_capabilities_phy_type phy_types = hw->phy.phy_types;
@@ -392,11 +399,13 @@ static void i40e_get_settings_link_down(struct i40e_hw *hw,
ecmd->advertising = 0x0;
if (phy_types & I40E_CAP_PHY_TYPE_SGMII) {
ecmd->supported |= SUPPORTED_Autoneg |
- SUPPORTED_1000baseT_Full |
- SUPPORTED_100baseT_Full;
+ SUPPORTED_1000baseT_Full;
ecmd->advertising |= ADVERTISED_Autoneg |
- ADVERTISED_1000baseT_Full |
- ADVERTISED_100baseT_Full;
+ ADVERTISED_1000baseT_Full;
+ if (pf->hw.mac.type == I40E_MAC_X722) {
+ ecmd->supported |= SUPPORTED_100baseT_Full;
+ ecmd->advertising |= ADVERTISED_100baseT_Full;
+ }
}
if (phy_types & I40E_CAP_PHY_TYPE_XAUI ||
phy_types & I40E_CAP_PHY_TYPE_XFI ||
@@ -425,7 +434,8 @@ static void i40e_get_settings_link_down(struct i40e_hw *hw,
ecmd->advertising |= ADVERTISED_Autoneg |
ADVERTISED_40000baseCR4_Full;
}
- if (phy_types & I40E_CAP_PHY_TYPE_100BASE_TX) {
+ if ((phy_types & I40E_CAP_PHY_TYPE_100BASE_TX) &&
+ !(phy_types & I40E_CAP_PHY_TYPE_1000BASE_T)) {
ecmd->supported |= SUPPORTED_Autoneg |
SUPPORTED_100baseT_Full;
ecmd->advertising |= ADVERTISED_Autoneg |
@@ -467,9 +477,9 @@ static int i40e_get_settings(struct net_device *netdev,
bool link_up = hw_link_info->link_info & I40E_AQ_LINK_UP;
if (link_up)
- i40e_get_settings_link_up(hw, ecmd, netdev);
+ i40e_get_settings_link_up(hw, ecmd, netdev, pf);
else
- i40e_get_settings_link_down(hw, ecmd);
+ i40e_get_settings_link_down(hw, ecmd, pf);
/* Now set the settings that don't rely on link being up/down */
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 07/17] i40e/i40evf: Add WB_ON_ITR offload support
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (5 preceding siblings ...)
2015-10-15 9:39 ` [net-next 06/17] i40e: Remove 100M SGMII unless hw is X722 Jeff Kirsher
@ 2015-10-15 9:39 ` Jeff Kirsher
2015-10-15 9:39 ` [net-next 08/17] i40e: remove obsolete version check Jeff Kirsher
` (10 subsequent siblings)
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:39 UTC (permalink / raw)
To: davem
Cc: Anjali Singhai Jain, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Anjali Singhai Jain <anjali.singhai@intel.com>
X722 has a way to work around the descriptor WB issue,
this offload helps turn that feature on.
Change-ID: I7ffa67622426bfca5a651417b63e3afcfeb60412
Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_virtchnl.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 4 ++++
drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h | 1 +
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 5 +++++
drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c | 3 ++-
5 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl.h b/drivers/net/ethernet/intel/i40e/i40e_virtchnl.h
index 95d0f8c..ae87982 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl.h
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl.h
@@ -150,6 +150,7 @@ struct i40e_virtchnl_vsi_resource {
#define I40E_VIRTCHNL_VF_OFFLOAD_FCOE 0x00000004
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_AQ 0x00000008
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_REG 0x00000010
+#define I40E_VIRTCHNL_VF_OFFLOAD_WB_ON_ITR 0x00000020
#define I40E_VIRTCHNL_VF_OFFLOAD_VLAN 0x00010000
#define I40E_VIRTCHNL_VF_OFFLOAD_RX_POLLING 0x00020000
diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index ae7548a..fd99cd2 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -1203,6 +1203,10 @@ static int i40e_vc_get_vf_resources_msg(struct i40e_vf *vf, u8 *msg)
} else {
vfres->vf_offload_flags |= I40E_VIRTCHNL_VF_OFFLOAD_RSS_REG;
}
+
+ if (vf->driver_caps & I40E_VIRTCHNL_VF_OFFLOAD_RX_POLLING)
+ vfres->vf_offload_flags |= I40E_VIRTCHNL_VF_OFFLOAD_RX_POLLING;
+
vfres->num_vsis = num_vsis;
vfres->num_queue_pairs = vf->num_queue_pairs;
vfres->max_vectors = pf->hw.func_caps.num_msix_vectors_vf;
diff --git a/drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h b/drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h
index cadda64..9f7b279 100644
--- a/drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h
+++ b/drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h
@@ -150,6 +150,7 @@ struct i40e_virtchnl_vsi_resource {
#define I40E_VIRTCHNL_VF_OFFLOAD_FCOE 0x00000004
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_AQ 0x00000008
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_REG 0x00000010
+#define I40E_VIRTCHNL_VF_OFFLOAD_WB_ON_ITR 0x00000020
#define I40E_VIRTCHNL_VF_OFFLOAD_VLAN 0x00010000
#define I40E_VIRTCHNL_VF_OFFLOAD_RX_POLLING 0x00020000
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index 69767c0..feb9ad5 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -1123,6 +1123,8 @@ static int i40evf_alloc_queues(struct i40evf_adapter *adapter)
tx_ring->netdev = adapter->netdev;
tx_ring->dev = &adapter->pdev->dev;
tx_ring->count = adapter->tx_desc_count;
+ if (adapter->flags & I40E_FLAG_WB_ON_ITR_CAPABLE)
+ tx_ring->flags |= I40E_TXR_FLAGS_WB_ON_ITR;
adapter->tx_rings[i] = tx_ring;
rx_ring = &tx_ring[1];
@@ -2275,6 +2277,9 @@ static void i40evf_init_task(struct work_struct *work)
if (err)
goto err_sw_init;
i40evf_map_rings_to_vectors(adapter);
+ if (adapter->vf_res->vf_offload_flags &
+ I40E_VIRTCHNL_VF_OFFLOAD_WB_ON_ITR)
+ adapter->flags |= I40EVF_FLAG_WB_ON_ITR_CAPABLE;
if (!RSS_AQ(adapter))
i40evf_configure_rss(adapter);
err = i40evf_request_misc_irq(adapter);
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c b/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c
index 4f056ef..32e620e 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c
@@ -156,7 +156,8 @@ int i40evf_send_vf_config_msg(struct i40evf_adapter *adapter)
caps = I40E_VIRTCHNL_VF_OFFLOAD_L2 |
I40E_VIRTCHNL_VF_OFFLOAD_RSS_AQ |
I40E_VIRTCHNL_VF_OFFLOAD_RSS_REG |
- I40E_VIRTCHNL_VF_OFFLOAD_VLAN;
+ I40E_VIRTCHNL_VF_OFFLOAD_VLAN |
+ I40E_VIRTCHNL_VF_OFFLOAD_WB_ON_ITR;
adapter->current_op = I40E_VIRTCHNL_OP_GET_VF_RESOURCES;
adapter->aq_required &= ~I40EVF_FLAG_AQ_GET_CONFIG;
if (PF_IS_V11(adapter))
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 08/17] i40e: remove obsolete version check
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (6 preceding siblings ...)
2015-10-15 9:39 ` [net-next 07/17] i40e/i40evf: Add WB_ON_ITR offload support Jeff Kirsher
@ 2015-10-15 9:39 ` Jeff Kirsher
2015-10-15 9:39 ` [net-next 09/17] i40e: allow FD SB if MFP mode only has 1 partition Jeff Kirsher
` (9 subsequent siblings)
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:39 UTC (permalink / raw)
To: davem; +Cc: Mitch Williams, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Mitch Williams <mitch.a.williams@intel.com>
This version check only applies to very, very old firmware,
that only ran on A0 hardware, which we never shipped and don't
support in this driver anyway. Remove it, before somebody
gets hurt.
Change-ID: I3752d090ff488acf98ee76b075af961e9c968ee4
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 7c4add8..c4f26eb 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -6353,12 +6353,6 @@ static int i40e_get_capabilities(struct i40e_pf *pf)
}
} while (err);
- if (((pf->hw.aq.fw_maj_ver == 2) && (pf->hw.aq.fw_min_ver < 22)) ||
- (pf->hw.aq.fw_maj_ver < 2)) {
- pf->hw.func_caps.num_msix_vectors++;
- pf->hw.func_caps.num_msix_vectors_vf++;
- }
-
if (pf->hw.debug_mask & I40E_DEBUG_USER)
dev_info(&pf->pdev->dev,
"pf=%d, num_vfs=%d, msix_pf=%d, msix_vf=%d, fd_g=%d, fd_b=%d, pf_max_q=%d num_vsi=%d\n",
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 09/17] i40e: allow FD SB if MFP mode only has 1 partition
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (7 preceding siblings ...)
2015-10-15 9:39 ` [net-next 08/17] i40e: remove obsolete version check Jeff Kirsher
@ 2015-10-15 9:39 ` Jeff Kirsher
2015-10-15 9:39 ` [net-next 10/17] i40e: remove FD atr control from debugfs Jeff Kirsher
` (8 subsequent siblings)
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:39 UTC (permalink / raw)
To: davem; +Cc: Shannon Nelson, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
Even though the device might be in MFP mode, if there's only one partition
enabled, then we still have plenty of interrupts for managing the Flow
Directory Sideband activity. This patch enables FD SB in this case.
This patch also reverses the sense of the conditional in order to remove
the negative logic.
Change-ID: I9edf211a6219fc8d159b4be9964f9fd7f4e00bc0
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index c4f26eb..0f8ab65 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -7949,12 +7949,12 @@ static int i40e_sw_init(struct i40e_pf *pf)
(pf->hw.func_caps.fd_filters_best_effort > 0)) {
pf->flags |= I40E_FLAG_FD_ATR_ENABLED;
pf->atr_sample_rate = I40E_DEFAULT_ATR_SAMPLE_RATE;
- if (!(pf->flags & I40E_FLAG_MFP_ENABLED)) {
- pf->flags |= I40E_FLAG_FD_SB_ENABLED;
- } else {
+ if (pf->flags & I40E_FLAG_MFP_ENABLED &&
+ pf->hw.num_partitions > 1)
dev_info(&pf->pdev->dev,
"Flow Director Sideband mode Disabled in MFP mode\n");
- }
+ else
+ pf->flags |= I40E_FLAG_FD_SB_ENABLED;
pf->fdir_pf_filter_count =
pf->hw.func_caps.fd_filters_guaranteed;
pf->hw.fdir_shared_filter_count =
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 10/17] i40e: remove FD atr control from debugfs
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (8 preceding siblings ...)
2015-10-15 9:39 ` [net-next 09/17] i40e: allow FD SB if MFP mode only has 1 partition Jeff Kirsher
@ 2015-10-15 9:39 ` Jeff Kirsher
2015-10-15 9:39 ` [net-next 11/17] i40e/i40evf: remove redundant declarations of a variable and a function Jeff Kirsher
` (7 subsequent siblings)
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:39 UTC (permalink / raw)
To: davem; +Cc: Shannon Nelson, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
Since the flow-director-atr priv flag was added to our ethtool interface,
we don't need the on/off control in debugfs.
Change-ID: Ib3b599916434ab30ccd40074e71d7a81609b5bb5
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 24 ------------------------
1 file changed, 24 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index c1dd248..d15bd62 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -953,24 +953,6 @@ static void i40e_dbg_dump_veb_all(struct i40e_pf *pf)
}
}
-/**
- * i40e_dbg_cmd_fd_ctrl - Enable/disable FD sideband/ATR
- * @pf: the PF that would be altered
- * @flag: flag that needs enabling or disabling
- * @enable: Enable/disable FD SD/ATR
- **/
-static void i40e_dbg_cmd_fd_ctrl(struct i40e_pf *pf, u64 flag, bool enable)
-{
- if (enable) {
- pf->flags |= flag;
- } else {
- pf->flags &= ~flag;
- pf->auto_disable_flags |= flag;
- }
- dev_info(&pf->pdev->dev, "requesting a PF reset\n");
- i40e_do_reset_safe(pf, BIT(__I40E_PF_RESET_REQUESTED));
-}
-
#define I40E_MAX_DEBUG_OUT_BUFFER (4096*4)
/**
* i40e_dbg_command_write - write into command datum
@@ -1759,10 +1741,6 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
raw_packet = NULL;
kfree(asc_packet);
asc_packet = NULL;
- } else if (strncmp(cmd_buf, "fd-atr off", 10) == 0) {
- i40e_dbg_cmd_fd_ctrl(pf, I40E_FLAG_FD_ATR_ENABLED, false);
- } else if (strncmp(cmd_buf, "fd-atr on", 9) == 0) {
- i40e_dbg_cmd_fd_ctrl(pf, I40E_FLAG_FD_ATR_ENABLED, true);
} else if (strncmp(cmd_buf, "fd current cnt", 14) == 0) {
dev_info(&pf->pdev->dev, "FD current total filter count for this interface: %d\n",
i40e_get_current_fd_count(pf));
@@ -1989,8 +1967,6 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
dev_info(&pf->pdev->dev, " send indirect aq_cmd <flags> <opcode> <datalen> <retval> <cookie_h> <cookie_l> <param0> <param1> <param2> <param3> <buffer_len>\n");
dev_info(&pf->pdev->dev, " add fd_filter <dest q_index> <flex_off> <pctype> <dest_vsi> <dest_ctl> <fd_status> <cnt_index> <fd_id> <packet_len> <packet>\n");
dev_info(&pf->pdev->dev, " rem fd_filter <dest q_index> <flex_off> <pctype> <dest_vsi> <dest_ctl> <fd_status> <cnt_index> <fd_id> <packet_len> <packet>\n");
- dev_info(&pf->pdev->dev, " fd-atr off\n");
- dev_info(&pf->pdev->dev, " fd-atr on\n");
dev_info(&pf->pdev->dev, " fd current cnt");
dev_info(&pf->pdev->dev, " lldp start\n");
dev_info(&pf->pdev->dev, " lldp stop\n");
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 11/17] i40e/i40evf: remove redundant declarations of a variable and a function
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (9 preceding siblings ...)
2015-10-15 9:39 ` [net-next 10/17] i40e: remove FD atr control from debugfs Jeff Kirsher
@ 2015-10-15 9:39 ` Jeff Kirsher
2015-10-15 9:39 ` [net-next 12/17] i40e: Store off PHY capabilities Jeff Kirsher
` (6 subsequent siblings)
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:39 UTC (permalink / raw)
To: davem; +Cc: Shannon Nelson, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
Remove a variable declaration inside an if block hiding an existing
declaration at the start of the function.
Also remove a forward function declaration that is no longer needed due
to code re-organization.
Change-ID: I12954668b722718074949c93d74cd20eaacd93e4
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 3 ---
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +-
2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index b311391..ed70a3f 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -90,9 +90,6 @@ static const struct i40e_stats i40e_gstrings_misc_stats[] = {
I40E_VSI_STAT("tx_linearize", tx_linearize),
};
-static int i40e_add_fdir_ethtool(struct i40e_vsi *vsi,
- struct ethtool_rxnfc *cmd);
-
/* These PF_STATs might look like duplicates of some NETDEV_STATs,
* but they are separate. This device supports Virtualization, and
* as such might have several netdevs supporting VMDq and FCoE going
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index feb9ad5..f156226 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -1628,7 +1628,7 @@ static void i40evf_reset_task(struct work_struct *work)
/* extra wait to make sure minimum wait is met */
msleep(I40EVF_RESET_WAIT_MS);
if (i == I40EVF_RESET_WAIT_COUNT) {
- struct i40evf_mac_filter *f, *ftmp;
+ struct i40evf_mac_filter *ftmp;
struct i40evf_vlan_filter *fv, *fvtmp;
/* reset never finished */
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 12/17] i40e: Store off PHY capabilities
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (10 preceding siblings ...)
2015-10-15 9:39 ` [net-next 11/17] i40e/i40evf: remove redundant declarations of a variable and a function Jeff Kirsher
@ 2015-10-15 9:39 ` Jeff Kirsher
2015-10-15 9:40 ` [net-next 13/17] i40e: X722 is on the IOSF bus and does not report the PCI bus info Jeff Kirsher
` (5 subsequent siblings)
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:39 UTC (permalink / raw)
To: davem; +Cc: Kevin Scott, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Kevin Scott <kevin.c.scott@intel.com>
Store off reported PHY capabilities in link_info structure.
Change-ID: Ife0f037c26983ca985dbf79abf33f8f8791369e8
Signed-off-by: Kevin Scott <kevin.c.scott@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_common.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c b/drivers/net/ethernet/intel/i40e/i40e_common.c
index ffd1cd0..d1ee174 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_common.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_common.c
@@ -1617,6 +1617,9 @@ i40e_status i40e_aq_get_phy_capabilities(struct i40e_hw *hw,
if (hw->aq.asq_last_status == I40E_AQ_RC_EIO)
status = I40E_ERR_UNKNOWN_PHY;
+ if (report_init)
+ hw->phy.phy_types = le32_to_cpu(abilities->phy_type);
+
return status;
}
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 13/17] i40e: X722 is on the IOSF bus and does not report the PCI bus info
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (11 preceding siblings ...)
2015-10-15 9:39 ` [net-next 12/17] i40e: Store off PHY capabilities Jeff Kirsher
@ 2015-10-15 9:40 ` Jeff Kirsher
2015-10-15 9:40 ` [net-next 14/17] i40e: remove unnecessary string copy operations Jeff Kirsher
` (4 subsequent siblings)
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:40 UTC (permalink / raw)
To: davem
Cc: Anjali Singhai Jain, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Anjali Singhai Jain <anjali.singhai@intel.com>
X722 will report Gen 1x1 in the PCI config space as it is on
IOSF bus, so skip the PCI bus link/speed check.
Change-ID: Icd5f5751dc7fb00dccf0d5dc5a0a644948e7062e
Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_main.c | 69 ++++++++++++++++++++---------
2 files changed, 50 insertions(+), 20 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index c8591b9..d587a05 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -333,6 +333,7 @@ struct i40e_pf {
#define I40E_FLAG_MULTIPLE_TCP_UDP_RSS_PCTYPE BIT_ULL(38)
#define I40E_FLAG_LINK_POLLING_ENABLED BIT_ULL(39)
#define I40E_FLAG_VEB_MODE_ENABLED BIT_ULL(40)
+#define I40E_FLAG_NO_PCI_LINK_CHECK BIT_ULL(42)
/* tracks features that get auto disabled by errors */
u64 auto_disable_flags;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 0f8ab65..2217078 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -10308,26 +10308,55 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
i40e_fcoe_vsi_setup(pf);
#endif
- /* Get the negotiated link width and speed from PCI config space */
- pcie_capability_read_word(pf->pdev, PCI_EXP_LNKSTA, &link_status);
-
- i40e_set_pci_config_data(hw, link_status);
-
- dev_info(&pdev->dev, "PCI-Express: %s %s\n",
- (hw->bus.speed == i40e_bus_speed_8000 ? "Speed 8.0GT/s" :
- hw->bus.speed == i40e_bus_speed_5000 ? "Speed 5.0GT/s" :
- hw->bus.speed == i40e_bus_speed_2500 ? "Speed 2.5GT/s" :
- "Unknown"),
- (hw->bus.width == i40e_bus_width_pcie_x8 ? "Width x8" :
- hw->bus.width == i40e_bus_width_pcie_x4 ? "Width x4" :
- hw->bus.width == i40e_bus_width_pcie_x2 ? "Width x2" :
- hw->bus.width == i40e_bus_width_pcie_x1 ? "Width x1" :
- "Unknown"));
-
- if (hw->bus.width < i40e_bus_width_pcie_x8 ||
- hw->bus.speed < i40e_bus_speed_8000) {
- dev_warn(&pdev->dev, "PCI-Express bandwidth available for this device may be insufficient for optimal performance.\n");
- dev_warn(&pdev->dev, "Please move the device to a different PCI-e link with more lanes and/or higher transfer rate.\n");
+#define PCI_SPEED_SIZE 8
+#define PCI_WIDTH_SIZE 8
+ /* Devices on the IOSF bus do not have this information
+ * and will report PCI Gen 1 x 1 by default so don't bother
+ * checking them.
+ */
+ if (!(pf->flags & I40E_FLAG_NO_PCI_LINK_CHECK)) {
+ char speed[PCI_SPEED_SIZE] = "Unknown";
+ char width[PCI_WIDTH_SIZE] = "Unknown";
+
+ /* Get the negotiated link width and speed from PCI config
+ * space
+ */
+ pcie_capability_read_word(pf->pdev, PCI_EXP_LNKSTA,
+ &link_status);
+
+ i40e_set_pci_config_data(hw, link_status);
+
+ switch (hw->bus.speed) {
+ case i40e_bus_speed_8000:
+ strncpy(speed, "8.0", PCI_SPEED_SIZE); break;
+ case i40e_bus_speed_5000:
+ strncpy(speed, "5.0", PCI_SPEED_SIZE); break;
+ case i40e_bus_speed_2500:
+ strncpy(speed, "2.5", PCI_SPEED_SIZE); break;
+ default:
+ break;
+ }
+ switch (hw->bus.width) {
+ case i40e_bus_width_pcie_x8:
+ strncpy(width, "8", PCI_WIDTH_SIZE); break;
+ case i40e_bus_width_pcie_x4:
+ strncpy(width, "4", PCI_WIDTH_SIZE); break;
+ case i40e_bus_width_pcie_x2:
+ strncpy(width, "2", PCI_WIDTH_SIZE); break;
+ case i40e_bus_width_pcie_x1:
+ strncpy(width, "1", PCI_WIDTH_SIZE); break;
+ default:
+ break;
+ }
+
+ dev_info(&pdev->dev, "PCI-Express: Speed %sGT/s Width x%s\n",
+ speed, width);
+
+ if (hw->bus.width < i40e_bus_width_pcie_x8 ||
+ hw->bus.speed < i40e_bus_speed_8000) {
+ dev_warn(&pdev->dev, "PCI-Express bandwidth available for this device may be insufficient for optimal performance.\n");
+ dev_warn(&pdev->dev, "Please move the device to a different PCI-e link with more lanes and/or higher transfer rate.\n");
+ }
}
/* get the requested speeds from the fw */
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 14/17] i40e: remove unnecessary string copy operations
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (12 preceding siblings ...)
2015-10-15 9:40 ` [net-next 13/17] i40e: X722 is on the IOSF bus and does not report the PCI bus info Jeff Kirsher
@ 2015-10-15 9:40 ` Jeff Kirsher
2015-10-15 9:40 ` [net-next 15/17] i40evf: speed up init Jeff Kirsher
` (3 subsequent siblings)
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:40 UTC (permalink / raw)
To: davem; +Cc: Shannon Nelson, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
Save a little stack space and remove unnecessary strncpy() with a little
string pointer.
Change-ID: Id2719d34710bfc273d3bb445fec085cd04276e88
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 2217078..e090c9c 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -4844,8 +4844,8 @@ out:
*/
void i40e_print_link_message(struct i40e_vsi *vsi, bool isup)
{
- char speed[SPEED_SIZE] = "Unknown";
- char fc[FC_SIZE] = "RX/TX";
+ char *speed = "Unknown";
+ char *fc = "Unknown";
if (vsi->current_isup == isup)
return;
@@ -4866,19 +4866,19 @@ void i40e_print_link_message(struct i40e_vsi *vsi, bool isup)
switch (vsi->back->hw.phy.link_info.link_speed) {
case I40E_LINK_SPEED_40GB:
- strlcpy(speed, "40 Gbps", SPEED_SIZE);
+ speed = "40 G";
break;
case I40E_LINK_SPEED_20GB:
- strncpy(speed, "20 Gbps", SPEED_SIZE);
+ speed = "20 G";
break;
case I40E_LINK_SPEED_10GB:
- strlcpy(speed, "10 Gbps", SPEED_SIZE);
+ speed = "10 G";
break;
case I40E_LINK_SPEED_1GB:
- strlcpy(speed, "1000 Mbps", SPEED_SIZE);
+ speed = "1000 M";
break;
case I40E_LINK_SPEED_100MB:
- strncpy(speed, "100 Mbps", SPEED_SIZE);
+ speed = "100 M";
break;
default:
break;
@@ -4886,20 +4886,20 @@ void i40e_print_link_message(struct i40e_vsi *vsi, bool isup)
switch (vsi->back->hw.fc.current_mode) {
case I40E_FC_FULL:
- strlcpy(fc, "RX/TX", FC_SIZE);
+ fc = "RX/TX";
break;
case I40E_FC_TX_PAUSE:
- strlcpy(fc, "TX", FC_SIZE);
+ fc = "TX";
break;
case I40E_FC_RX_PAUSE:
- strlcpy(fc, "RX", FC_SIZE);
+ fc = "RX";
break;
default:
- strlcpy(fc, "None", FC_SIZE);
+ fc = "None";
break;
}
- netdev_info(vsi->netdev, "NIC Link is Up %s Full Duplex, Flow Control: %s\n",
+ netdev_info(vsi->netdev, "NIC Link is Up %sbps Full Duplex, Flow Control: %s\n",
speed, fc);
}
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 15/17] i40evf: speed up init
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (13 preceding siblings ...)
2015-10-15 9:40 ` [net-next 14/17] i40e: remove unnecessary string copy operations Jeff Kirsher
@ 2015-10-15 9:40 ` Jeff Kirsher
2015-10-15 9:40 ` [net-next 16/17] i40e/i40evf: Bump i40e version to 1.3.28 and i40evf to 1.3.19 Jeff Kirsher
` (2 subsequent siblings)
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:40 UTC (permalink / raw)
To: davem; +Cc: Mitch Williams, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Mitch Williams <mitch.a.williams@intel.com>
Shorten up the delays in the init task, allowing the VF driver to
initialize faster. This aids performance in load/unload tests and
mitigates DMAR errors in VF enable/disable tests with absurdly short
delays. In the real world, the VF driver will come up more quickly.
The original values were set conservatively based on what we expected
from the firmware in terms of performance. Now that the driver is in use
and we know how well firmware responds to our requests, we can shorten
these delays.
Change-ID: Ibead77d34b19e8170e667c3f58bc14748bbc5bc9
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/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 f156226..bccca50 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -2315,7 +2315,7 @@ static void i40evf_init_task(struct work_struct *work)
}
return;
restart:
- schedule_delayed_work(&adapter->init_task, msecs_to_jiffies(30));
+ schedule_delayed_work(&adapter->init_task, msecs_to_jiffies(20));
return;
err_register:
@@ -2332,7 +2332,7 @@ err:
adapter->flags |= I40EVF_FLAG_PF_COMMS_FAILED;
return; /* do not reschedule */
}
- schedule_delayed_work(&adapter->init_task, HZ * 3);
+ schedule_delayed_work(&adapter->init_task, HZ / 2);
}
/**
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 16/17] i40e/i40evf: Bump i40e version to 1.3.28 and i40evf to 1.3.19
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (14 preceding siblings ...)
2015-10-15 9:40 ` [net-next 15/17] i40evf: speed up init Jeff Kirsher
@ 2015-10-15 9:40 ` Jeff Kirsher
2015-10-15 9:40 ` [net-next 17/17] ixgbe: Check for setup_internal_link method Jeff Kirsher
2015-10-15 12:56 ` [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 David Miller
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:40 UTC (permalink / raw)
To: davem; +Cc: Catherine Sullivan, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Catherine Sullivan <catherine.sullivan@intel.com>
Bump.
Change-ID: I8d9a99f320af43960deba8718eee2d6de50eaf46
Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +-
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index e090c9c..5ed844b 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -39,7 +39,7 @@ static const char i40e_driver_string[] =
#define DRV_VERSION_MAJOR 1
#define DRV_VERSION_MINOR 3
-#define DRV_VERSION_BUILD 25
+#define DRV_VERSION_BUILD 28
#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 bccca50..429a46c 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -34,7 +34,7 @@ char i40evf_driver_name[] = "i40evf";
static const char i40evf_driver_string[] =
"Intel(R) XL710/X710 Virtual Function Network Driver";
-#define DRV_VERSION "1.3.17"
+#define DRV_VERSION "1.3.19"
const char i40evf_driver_version[] = DRV_VERSION;
static const char i40evf_copyright[] =
"Copyright (c) 2013 - 2015 Intel Corporation.";
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* [net-next 17/17] ixgbe: Check for setup_internal_link method
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (15 preceding siblings ...)
2015-10-15 9:40 ` [net-next 16/17] i40e/i40evf: Bump i40e version to 1.3.28 and i40evf to 1.3.19 Jeff Kirsher
@ 2015-10-15 9:40 ` Jeff Kirsher
2015-10-15 12:56 ` [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 David Miller
17 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2015-10-15 9:40 UTC (permalink / raw)
To: davem; +Cc: Mark Rustad, netdev, nhorman, sassmann, jogreene, Jeff Kirsher
From: Mark Rustad <mark.d.rustad@intel.com>
Only call the internal_setup_link method when it is provided. This
check is required for newer version parts.
Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Darin Miller <darin.j.miller@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
index 06b15edd..ebe0ac9 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
@@ -1617,7 +1617,7 @@ static s32 ixgbe_handle_lasi_ext_t_x550em(struct ixgbe_hw *hw)
if (status)
return status;
- if (lsc)
+ if (lsc && phy->ops.setup_internal_link)
return phy->ops.setup_internal_link(hw);
return 0;
--
2.4.3
^ permalink raw reply related [flat|nested] 21+ messages in thread* Re: [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15
2015-10-15 9:39 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
` (16 preceding siblings ...)
2015-10-15 9:40 ` [net-next 17/17] ixgbe: Check for setup_internal_link method Jeff Kirsher
@ 2015-10-15 12:56 ` David Miller
17 siblings, 0 replies; 21+ messages in thread
From: David Miller @ 2015-10-15 12:56 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, nhorman, sassmann, jogreene, john.ronciak
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Thu, 15 Oct 2015 02:39:47 -0700
> This series contains updates to i40e, i40evf and ixgbe.
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 21+ messages in thread