• Tomas Henzl's avatar
    [SCSI] qla4xxx: a small loop fix · e1cd89c5
    Tomas Henzl authored
    When the qla4xxx_get_fwddb_entry returns QLA_ERROR
    the nex_idx is not updated,
          for (idx = 0; idx < max_ddbs; idx = next_idx) {
                    ret = qla4xxx_get_fwddb_entry(ha, idx, NULL, 0, NULL,
                                                  &next_idx, &state, &conn_err,
                                                    NULL, NULL);
                    if (ret == QLA_ERROR)
                            continue;
    
    This means there is a risk that the 'idx < max_ddbs' condition will never
    met and the loop will loop forever.
    Fix this by explicitly increasing the next_idx in the error condition.
    
    Maybe a break instead of continue is more appropriate, leaving the decision
    on the qlogic maintainer.
    Signed-off-by: default avatarTomas Henzl <thenzl@redhat.com>
    Signed-off-by: default avatarMike Christie <michaelc@cs.wisc.edu>
    Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
    e1cd89c5
ql4_init.c 31.2 KB