diff options
Diffstat (limited to 'drivers/message/fusion')
| -rw-r--r-- | drivers/message/fusion/mptscsih.c | 13 | 
1 files changed, 8 insertions, 5 deletions
| diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c index a5ef9faf71c7..e7f0d4ae0f96 100644 --- a/drivers/message/fusion/mptscsih.c +++ b/drivers/message/fusion/mptscsih.c @@ -1176,8 +1176,10 @@ mptscsih_remove(struct pci_dev *pdev)  	MPT_SCSI_HOST		*hd;  	int sz1; -	if((hd = shost_priv(host)) == NULL) -		return; +	if (host == NULL) +		hd = NULL; +	else +		hd = shost_priv(host);  	mptscsih_shutdown(pdev); @@ -1193,14 +1195,15 @@ mptscsih_remove(struct pci_dev *pdev)  	    "Free'd ScsiLookup (%d) memory\n",  	    ioc->name, sz1)); -	kfree(hd->info_kbuf); +	if (hd) +		kfree(hd->info_kbuf);  	/* NULL the Scsi_Host pointer  	 */  	ioc->sh = NULL; -	scsi_host_put(host); - +	if (host) +		scsi_host_put(host);  	mpt_detach(pdev);  } |