lpfc: call lpfc_sli_validate_fcp_iocb() with the hbalock held
Call lpfc_sli_validate_fcp_iocb() with the hbalock held, as the pointer to iocbq is not guaranteed to still be valid after looking it up. Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> Reviewed-by: Laurence Oberman <loberman@redhat.com> Acked-by: James Smart <james.smart@broadcom.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
fcbefc3b2b
commit
31979008fd
|
@ -10203,6 +10203,7 @@ lpfc_sli_sum_iocb(struct lpfc_vport *vport, uint16_t tgt_id, uint64_t lun_id,
|
||||||
struct lpfc_iocbq *iocbq;
|
struct lpfc_iocbq *iocbq;
|
||||||
int sum, i;
|
int sum, i;
|
||||||
|
|
||||||
|
spin_lock_irq(&phba->hbalock);
|
||||||
for (i = 1, sum = 0; i <= phba->sli.last_iotag; i++) {
|
for (i = 1, sum = 0; i <= phba->sli.last_iotag; i++) {
|
||||||
iocbq = phba->sli.iocbq_lookup[i];
|
iocbq = phba->sli.iocbq_lookup[i];
|
||||||
|
|
||||||
|
@ -10210,6 +10211,7 @@ lpfc_sli_sum_iocb(struct lpfc_vport *vport, uint16_t tgt_id, uint64_t lun_id,
|
||||||
ctx_cmd) == 0)
|
ctx_cmd) == 0)
|
||||||
sum++;
|
sum++;
|
||||||
}
|
}
|
||||||
|
spin_unlock_irq(&phba->hbalock);
|
||||||
|
|
||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue