diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-12-16 18:53:52 +0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-12-16 18:53:52 +0400 |
commit | d09476018bee39495d6ece7a2e069de29a9c0ed5 (patch) | |
tree | 866fff4323f94681e6b423f269f0549df0a34066 /drivers/scsi/pm8001/pm8001_sas.c | |
parent | 337bb336b95bd7884fa3a194eafbdf52a0216b2e (diff) | |
parent | afdcd431cebe3498db9aa963c780fdd5099917ec (diff) | |
download | linux-d09476018bee39495d6ece7a2e069de29a9c0ed5.tar.xz |
Merge branch 'for-linus' into for-next
Diffstat (limited to 'drivers/scsi/pm8001/pm8001_sas.c')
-rw-r--r-- | drivers/scsi/pm8001/pm8001_sas.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/scsi/pm8001/pm8001_sas.c b/drivers/scsi/pm8001/pm8001_sas.c index f4eb18e51631..f50ac44b950e 100644 --- a/drivers/scsi/pm8001/pm8001_sas.c +++ b/drivers/scsi/pm8001/pm8001_sas.c @@ -1098,15 +1098,17 @@ int pm8001_lu_reset(struct domain_device *dev, u8 *lun) struct pm8001_tmf_task tmf_task; struct pm8001_device *pm8001_dev = dev->lldd_dev; struct pm8001_hba_info *pm8001_ha = pm8001_find_ha_by_dev(dev); + DECLARE_COMPLETION_ONSTACK(completion_setstate); if (dev_is_sata(dev)) { struct sas_phy *phy = sas_get_local_phy(dev); rc = pm8001_exec_internal_task_abort(pm8001_ha, pm8001_dev , dev, 1, 0); rc = sas_phy_reset(phy, 1); sas_put_local_phy(phy); + pm8001_dev->setds_completion = &completion_setstate; rc = PM8001_CHIP_DISP->set_dev_state_req(pm8001_ha, pm8001_dev, 0x01); - msleep(2000); + wait_for_completion(&completion_setstate); } else { tmf_task.tmf = TMF_LU_RESET; rc = pm8001_issue_ssp_tmf(dev, lun, &tmf_task); |