Commit 5f8cc355 authored by Henry Tieman's avatar Henry Tieman Committed by Jeff Kirsher

ice: avoid setting features during reset

Certain subsystems behave very badly when called during reset (core
dump). This patch returns -EBUSY when reconfiguring some subsystems
during reset. With this patch some ethtool functions will not core
dump during reset.
Signed-off-by: default avatarHenry Tieman <henry.w.tieman@intel.com>
Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent b94b013e
...@@ -3776,6 +3776,7 @@ ice_set_features(struct net_device *netdev, netdev_features_t features) ...@@ -3776,6 +3776,7 @@ ice_set_features(struct net_device *netdev, netdev_features_t features)
{ {
struct ice_netdev_priv *np = netdev_priv(netdev); struct ice_netdev_priv *np = netdev_priv(netdev);
struct ice_vsi *vsi = np->vsi; struct ice_vsi *vsi = np->vsi;
struct ice_pf *pf = vsi->back;
int ret = 0; int ret = 0;
/* Don't set any netdev advanced features with device in Safe Mode */ /* Don't set any netdev advanced features with device in Safe Mode */
...@@ -3785,6 +3786,13 @@ ice_set_features(struct net_device *netdev, netdev_features_t features) ...@@ -3785,6 +3786,13 @@ ice_set_features(struct net_device *netdev, netdev_features_t features)
return ret; return ret;
} }
/* Do not change setting during reset */
if (ice_is_reset_in_progress(pf->state)) {
dev_err(&vsi->back->pdev->dev,
"Device is resetting, changing advanced netdev features temporarily unavailable.\n");
return -EBUSY;
}
/* Multiple features can be changed in one call so keep features in /* Multiple features can be changed in one call so keep features in
* separate if/else statements to guarantee each feature is checked * separate if/else statements to guarantee each feature is checked
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment