mpt2sas: Before removing sas_device search device in list for _scsih_sas_device_remove
PATCH 2/3 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 Kashyap Desai <[email protected]>
---
drivers/scsi/mpt2sas/mpt2sas_scsih.c +8 -3
@@ -536,10 +536,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); }