mirror of https://gitee.com/openkylin/linux.git
ice: Do autoneg based on VSI state
If VSI state is up, we should do autoneg with link up, otherwise with link down. Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@intel.com> Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
b1a2004841
commit
d38b08834f
|
@ -1392,17 +1392,17 @@ static int ice_nway_reset(struct net_device *netdev)
|
||||||
{
|
{
|
||||||
/* restart autonegotiation */
|
/* restart autonegotiation */
|
||||||
struct ice_netdev_priv *np = netdev_priv(netdev);
|
struct ice_netdev_priv *np = netdev_priv(netdev);
|
||||||
struct ice_link_status *hw_link_info;
|
|
||||||
struct ice_vsi *vsi = np->vsi;
|
struct ice_vsi *vsi = np->vsi;
|
||||||
struct ice_port_info *pi;
|
struct ice_port_info *pi;
|
||||||
enum ice_status status;
|
enum ice_status status;
|
||||||
bool link_up;
|
|
||||||
|
|
||||||
pi = vsi->port_info;
|
pi = vsi->port_info;
|
||||||
hw_link_info = &pi->phy.link_info;
|
/* If VSI state is up, then restart autoneg with link up */
|
||||||
link_up = hw_link_info->link_info & ICE_AQ_LINK_UP;
|
if (!test_bit(__ICE_DOWN, vsi->back->state))
|
||||||
|
status = ice_aq_set_link_restart_an(pi, true, NULL);
|
||||||
|
else
|
||||||
|
status = ice_aq_set_link_restart_an(pi, false, NULL);
|
||||||
|
|
||||||
status = ice_aq_set_link_restart_an(pi, link_up, NULL);
|
|
||||||
if (status) {
|
if (status) {
|
||||||
netdev_info(netdev, "link restart failed, err %d aq_err %d\n",
|
netdev_info(netdev, "link restart failed, err %d aq_err %d\n",
|
||||||
status, pi->hw->adminq.sq_last_status);
|
status, pi->hw->adminq.sq_last_status);
|
||||||
|
|
Loading…
Reference in New Issue