]> Pileus Git - ~andy/linux/commit
[SCSI] qla4xxx: a small loop fix
authorTomas Henzl <thenzl@redhat.com>
Fri, 2 Dec 2011 03:38:42 +0000 (21:38 -0600)
committerJames Bottomley <JBottomley@Parallels.com>
Wed, 14 Dec 2011 11:40:43 +0000 (15:40 +0400)
commite1cd89c507b41e4021ce6fb0d19d230f6a932ccd
treeba0d664e4eb08f3b8c59468e447f824fa6534142
parent13483730a13bef372894aefcf73760f5c6c297be
[SCSI] qla4xxx: a small loop fix

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: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/qla4xxx/ql4_init.c