ice: Fix link_down_on_close message
authorKatarzyna Wieczerzycka <katarzyna.wieczerzycka@intel.com>
Fri, 15 Dec 2023 11:01:56 +0000 (12:01 +0100)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Wed, 27 Dec 2023 18:07:11 +0000 (10:07 -0800)
The driver should not report an error message when for a medialess port
the link_down_on_close flag is enabled and the physical link cannot be
set down.

Fixes: 8ac7132704f3 ("ice: Fix interface being down after reset with link-down-on-close flag on")
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: Katarzyna Wieczerzycka <katarzyna.wieczerzycka@intel.com>
Signed-off-by: Wojciech Drewek <wojciech.drewek@intel.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_main.c

index fb9c93f37e84f7f0e9e1d960522aaae1601f98ca..270d68b69c59a65355b2f9bb34675002bd935dff 100644 (file)
@@ -2146,7 +2146,7 @@ static int ice_configure_phy(struct ice_vsi *vsi)
 
        /* Ensure we have media as we cannot configure a medialess port */
        if (!(phy->link_info.link_info & ICE_AQ_MEDIA_AVAILABLE))
-               return -EPERM;
+               return -ENOMEDIUM;
 
        ice_print_topo_conflict(vsi);
 
@@ -9187,8 +9187,12 @@ int ice_stop(struct net_device *netdev)
                int link_err = ice_force_phys_link_state(vsi, false);
 
                if (link_err) {
-                       netdev_err(vsi->netdev, "Failed to set physical link down, VSI %d error %d\n",
-                                  vsi->vsi_num, link_err);
+                       if (link_err == -ENOMEDIUM)
+                               netdev_info(vsi->netdev, "Skipping link reconfig - no media attached, VSI %d\n",
+                                           vsi->vsi_num);
+                       else
+                               netdev_err(vsi->netdev, "Failed to set physical link down, VSI %d error %d\n",
+                                          vsi->vsi_num, link_err);
                        return -EIO;
                }
        }