diff options
| author | nagalakshmi.nandigama@lsi.com <nagalakshmi.nandigama@lsi.com> | 2011-12-01 07:43:58 +0530 | 
|---|---|---|
| committer | James Bottomley <JBottomley@Parallels.com> | 2011-12-15 10:57:32 +0400 | 
| commit | f01690d31d905d46aaf2df8021a33231a71cd744 (patch) | |
| tree | 05a0250988347c5a861cfbd10ff7a7129dde1080 /drivers/scsi/mpt2sas/mpt2sas_transport.c | |
| parent | 23edb6e71696a5da9c5f3987d22221e12370dbce (diff) | |
| download | olio-linux-3.10-f01690d31d905d46aaf2df8021a33231a71cd744.tar.xz olio-linux-3.10-f01690d31d905d46aaf2df8021a33231a71cd744.zip  | |
[SCSI] mpt2sas: Rearrange the the code so that the completion queues are initialized prior to sending the request to controller firmware
Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/mpt2sas/mpt2sas_transport.c')
| -rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_transport.c | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_transport.c b/drivers/scsi/mpt2sas/mpt2sas_transport.c index 230732241aa..831047466a5 100644 --- a/drivers/scsi/mpt2sas/mpt2sas_transport.c +++ b/drivers/scsi/mpt2sas/mpt2sas_transport.c @@ -398,8 +398,8 @@ _transport_expander_report_manufacture(struct MPT2SAS_ADAPTER *ioc,  	dtransportprintk(ioc, printk(MPT2SAS_INFO_FMT "report_manufacture - "  	    "send to sas_addr(0x%016llx)\n", ioc->name,  	    (unsigned long long)sas_address)); -	mpt2sas_base_put_smid_default(ioc, smid);  	init_completion(&ioc->transport_cmds.done); +	mpt2sas_base_put_smid_default(ioc, smid);  	timeleft = wait_for_completion_timeout(&ioc->transport_cmds.done,  	    10*HZ); @@ -1184,8 +1184,8 @@ _transport_get_expander_phy_error_log(struct MPT2SAS_ADAPTER *ioc,  	dtransportprintk(ioc, printk(MPT2SAS_INFO_FMT "phy_error_log - "  	    "send to sas_addr(0x%016llx), phy(%d)\n", ioc->name,  	    (unsigned long long)phy->identify.sas_address, phy->number)); -	mpt2sas_base_put_smid_default(ioc, smid);  	init_completion(&ioc->transport_cmds.done); +	mpt2sas_base_put_smid_default(ioc, smid);  	timeleft = wait_for_completion_timeout(&ioc->transport_cmds.done,  	    10*HZ); @@ -1509,8 +1509,9 @@ _transport_expander_phy_control(struct MPT2SAS_ADAPTER *ioc,  	    "send to sas_addr(0x%016llx), phy(%d), opcode(%d)\n", ioc->name,  	    (unsigned long long)phy->identify.sas_address, phy->number,  	    phy_operation)); -	mpt2sas_base_put_smid_default(ioc, smid); +  	init_completion(&ioc->transport_cmds.done); +	mpt2sas_base_put_smid_default(ioc, smid);  	timeleft = wait_for_completion_timeout(&ioc->transport_cmds.done,  	    10*HZ); @@ -1949,8 +1950,8 @@ _transport_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,  	dtransportprintk(ioc, printk(MPT2SAS_INFO_FMT "%s - "  	    "sending smp request\n", ioc->name, __func__)); -	mpt2sas_base_put_smid_default(ioc, smid);  	init_completion(&ioc->transport_cmds.done); +	mpt2sas_base_put_smid_default(ioc, smid);  	timeleft = wait_for_completion_timeout(&ioc->transport_cmds.done,  	    10*HZ);  |