pm80xx: Fix for direct attached device.
Subsystems (2)
PATCH v2 2/4 pm80xx: Fix for direct attached device.
Quoted 1 line
From
a2c4711582a7932a90bd68f7da96c2312c3436bcMon Sep 17 00:00:00 2001
From: Nikith Ganigarakoppal <[email protected]>
Date: Wed, 30 Oct 2013 16:13:22 +0530
Subject: [PATCH V2 2/4] pm80xx: Fix for direct attached device.
In case of direct attached SATA device delay is not enough. It will give crash for set device state command response and wait_for_completion is the best solution for this.
Signed-off-by [email protected]
Signed-off-by [email protected]
Reviewed-by Jack Wang <[email protected]>
--- drivers/scsi/pm8001/pm8001_sas.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
drivers/scsi/pm8001/pm8001_sas.c +3 -1
@@ -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);
Signature · 1 line
1.7.1