[SCSI] qla2xxx: Fix incorrect test after list_for_each_entry() exits.
authorJoe Carnuccio <joe.carnuccio@qlogic.com>
Tue, 27 Aug 2013 05:37:29 +0000 (01:37 -0400)
committerJames Bottomley <JBottomley@Parallels.com>
Tue, 3 Sep 2013 14:28:00 +0000 (07:28 -0700)
list_for_each_entry() never leaves the iterator pointing to null.

Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/qla2xxx/qla_bsg.c

index ffcad26af96894bd36e74b3fa81bf8c6441de45d..fb5bd6e17e8a620d631eefb7f2a2b7cec15c77ae 100644 (file)
@@ -1266,6 +1266,7 @@ qla24xx_iidma(struct fc_bsg_job *bsg_job)
        int rval = 0;
        struct qla_port_param *port_param = NULL;
        fc_port_t *fcport = NULL;
+       int found = 0;
        uint16_t mb[MAILBOX_REGISTER_COUNT];
        uint8_t *rsp_ptr = NULL;
 
@@ -1288,10 +1289,12 @@ qla24xx_iidma(struct fc_bsg_job *bsg_job)
                if (memcmp(port_param->fc_scsi_addr.dest_addr.wwpn,
                        fcport->port_name, sizeof(fcport->port_name)))
                        continue;
+
+               found = 1;
                break;
        }
 
-       if (!fcport) {
+       if (!found) {
                ql_log(ql_log_warn, vha, 0x7049,
                    "Failed to find port.\n");
                return -EINVAL;