RE: [PATCH] scsi: ufs: Reduce the power mode change timeout

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> The current power mode change timeout (180 s) is so large that it can
> cause a watchdog timer to fire. Reduce the power mode change timeout to
> 10 seconds.
Maybe also worth noting that it was invented 20 years ago for scsi ioctl,
And is less applicable for nowadays ufs devices

> 
> Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx>
> ---
>  drivers/ufs/core/ufshcd.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> index e32b6b834b7f..2dd355a5da54 100644
> --- a/drivers/ufs/core/ufshcd.c
> +++ b/drivers/ufs/core/ufshcd.c
> @@ -8776,6 +8776,8 @@ static int ufshcd_set_dev_pwr_mode(struct
> ufs_hba *hba,
>         struct scsi_device *sdp;
>         unsigned long flags;
>         int ret, retries;
> +       unsigned long deadline;
> +       int32_t remaining;
Maybe use ktime api, like its done throughout the driver?

Thanks,
Avri

> 
>         spin_lock_irqsave(hba->host->host_lock, flags);
>         sdp = hba->ufs_device_wlun;
> @@ -8808,9 +8810,14 @@ static int ufshcd_set_dev_pwr_mode(struct
> ufs_hba *hba,
>          * callbacks hence set the RQF_PM flag so that it doesn't resume the
>          * already suspended childs.
>          */
> +       deadline = jiffies + 10 * HZ;
>         for (retries = 3; retries > 0; --retries) {
> +               ret = -ETIMEDOUT;
> +               remaining = deadline - jiffies;
> +               if (remaining <= 0)
> +                       break;
>                 ret = scsi_execute(sdp, cmd, DMA_NONE, NULL, 0, NULL, &sshdr,
> -                               START_STOP_TIMEOUT, 0, 0, RQF_PM, NULL);
> +                                  remaining / HZ, 0, 0, RQF_PM, NULL);
>                 if (!scsi_status_is_check_condition(ret) ||
>                                 !scsi_sense_valid(&sshdr) ||
>                                 sshdr.sense_key != UNIT_ATTENTION)




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux