/* Identify the PHY or SFP module */
        ret_val = phy->ops.identify(hw);
+       if (ret_val == IXGBE_ERR_SFP_NOT_SUPPORTED ||
+           ret_val == IXGBE_ERR_PHY_ADDR_INVALID)
+               return ret_val;
 
        /* Setup function pointers based on detected hardware */
        ixgbe_init_mac_link_ops_X550em(hw);
        ixgbe_clear_tx_pending(hw);
 
        /* PHY ops must be identified and initialized prior to reset */
-
-       /* Identify PHY and related function pointers */
        status = hw->phy.ops.init(hw);
+       if (status == IXGBE_ERR_SFP_NOT_SUPPORTED ||
+           status == IXGBE_ERR_PHY_ADDR_INVALID)
+               return status;
 
        /* start the external PHY */
        if (hw->phy.type == ixgbe_phy_x550em_ext_t) {