提交 980ead31 编写于 作者: K Kashyap, Desai 提交者: James Bottomley

[SCSI] mpt2sas: Before removing sas_device search device in list for _scsih_sas_device_remove

Fix a oops in _scsih_sas_device_remove.  The driver was attempting to
delete a object from the sas_device link list when the object was not
present.

Added sanity check for sas_device NULL dereference.
before deleting sas_device now driver will search device in list then
only it will follow device removal.
Signed-off-by: NKashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
上级 130b958a
......@@ -537,10 +537,15 @@ _scsih_sas_device_remove(struct MPT2SAS_ADAPTER *ioc,
{
unsigned long flags;
if (!sas_device)
return;
spin_lock_irqsave(&ioc->sas_device_lock, flags);
list_del(&sas_device->list);
memset(sas_device, 0, sizeof(struct _sas_device));
kfree(sas_device);
if (mpt2sas_scsih_sas_device_find_by_sas_address(ioc,
sas_device->sas_address)) {
list_del(&sas_device->list);
kfree(sas_device);
}
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册