if (phy->autoneg_wait_to_complete) {
                hw_dbg("Waiting for forced speed/duplex link on IGP phy.\n");
 
-               ret_val = igb_phy_has_link(hw, PHY_FORCE_LIMIT, 100000, &link);
+               ret_val = igb_phy_has_link(hw, PHY_FORCE_LIMIT, 10000, &link);
                if (ret_val)
                        goto out;
 
                        hw_dbg("Link taking longer than expected.\n");
 
                /* Try once more */
-               ret_val = igb_phy_has_link(hw, PHY_FORCE_LIMIT, 100000, &link);
+               ret_val = igb_phy_has_link(hw, PHY_FORCE_LIMIT, 10000, &link);
                if (ret_val)
                        goto out;
        }
                 * it across the board.
                 */
                ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status);
-               if (ret_val) {
+               if (ret_val && usec_interval > 0) {
                        /* If the first read fails, another entity may have
                         * ownership of the resources, wait and try again to
                         * see if they have relinquished the resources yet.