drivers/message/fusion/mptscsih.c: inconsequent NULL checking
The Coverity checker spotted the following inconsequent NULL checking in drivers/message/fusion/mptscsih.c:
<-- snip -->
...
intmptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *)) {
...
if (vdev
&& (vdev->vtarget->tflags & MPT_TARGET_FLAGS_Q_YES)
&& (SCpnt->device->tagged_supported)) {
scsictl = scsidir | MPI_SCSIIO_CONTROL_SIMPLEQ;
} else {
scsictl = scsidir | MPI_SCSIIO_CONTROL_UNTAGGED;
}
/* Use the above information to set up the message frame
*/
pScsiReq->TargetID = (u8) vdev->vtarget->id;...
<-- snip -->
vdev is first checked but later dereferenced unconditionally.
cu
Adrian
Signature · 4 lines
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed