int qla2x00_fdmi_register(scsi_qla_host_t *vha) { int rval; struct qla_hw_data *ha = vha->hw; if (IS_QLA2100(ha) || IS_QLA2200(ha)) return QLA_FUNCTION_FAILED; rval = qla2x00_mgmt_svr_login(vha); if (rval) return rval; rval = qla2x00_fdmi_rhba(vha); if (rval) { if (rval != QLA_ALREADY_REGISTERED) return rval; rval = qla2x00_fdmi_dhba(vha); if (rval) return rval; rval = qla2x00_fdmi_rhba(vha); if (rval) return rval; } rval = qla2x00_fdmi_rpa(vha); return rval; }
/** * qla2x00_fdmi_register() - * @ha: HA context * * Returns 0 on success. */ int qla2x00_fdmi_register(scsi_qla_host_t *ha) { int rval; rval = qla2x00_mgmt_svr_login(ha); if (rval) return rval; rval = qla2x00_fdmi_rhba(ha); if (rval) { if (rval != QLA_ALREADY_REGISTERED) return rval; rval = qla2x00_fdmi_dhba(ha); if (rval) return rval; rval = qla2x00_fdmi_rhba(ha); if (rval) return rval; } rval = qla2x00_fdmi_rpa(ha); return rval; }