[SCSI] mptfusion: sanity check for vdevice pointer is added
Added sanity checks before accessing vdevice and added vdevice->deleted setting for mptfc. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:

committed by
James Bottomley

parent
f8c23bde85
commit
08f5c5c23d
@@ -1329,6 +1329,8 @@ mptctl_getiocinfo (unsigned long arg, unsigned int data_size)
|
||||
if (ioc->sh) {
|
||||
shost_for_each_device(sdev, ioc->sh) {
|
||||
vdevice = sdev->hostdata;
|
||||
if (vdevice == NULL || vdevice->vtarget == NULL)
|
||||
continue;
|
||||
if (vdevice->vtarget->tflags &
|
||||
MPT_TARGET_FLAGS_RAID_COMPONENT)
|
||||
continue;
|
||||
@@ -1450,6 +1452,8 @@ mptctl_gettargetinfo (unsigned long arg)
|
||||
if (!maxWordsLeft)
|
||||
continue;
|
||||
vdevice = sdev->hostdata;
|
||||
if (vdevice == NULL || vdevice->vtarget == NULL)
|
||||
continue;
|
||||
if (vdevice->vtarget->tflags &
|
||||
MPT_TARGET_FLAGS_RAID_COMPONENT)
|
||||
continue;
|
||||
@@ -1978,6 +1982,9 @@ mptctl_do_mpt_command (struct mpt_ioctl_command karg, void __user *mfPtr)
|
||||
struct scsi_target *starget = scsi_target(sdev);
|
||||
VirtTarget *vtarget = starget->hostdata;
|
||||
|
||||
if (vtarget == NULL)
|
||||
continue;
|
||||
|
||||
if ((pScsiReq->TargetID == vtarget->id) &&
|
||||
(pScsiReq->Bus == vtarget->channel) &&
|
||||
(vtarget->tflags & MPT_TARGET_FLAGS_Q_YES))
|
||||
|
Reference in New Issue
Block a user