lkml.org 
[lkml]   [2021]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 143/289] scsi: ufs: core: Narrow down fast path in system suspend path
    Date
    From: Can Guo <cang@codeaurora.org>

    [ Upstream commit ce4f62f9dd8cf43ac044045ed598a0b80ef33890 ]

    If spm_lvl is set to 0 or 1, when system suspend kicks start and HBA is
    runtime active, system suspend may just bail without doing anything (the
    fast path), leaving other contexts still running, e.g., clock gating and
    clock scaling. When system resume kicks start, concurrency can happen
    between ufshcd_resume() and these contexts, leading to various stability
    issues.

    Add a check against HBA's runtime state and allowing fast path only if HBA
    is runtime suspended, otherwise let system suspend go ahead call
    ufshcd_suspend(). This will guarantee that these contexts are stopped by
    either runtime suspend or system suspend.

    Link: https://lore.kernel.org/r/1619408921-30426-4-git-send-email-cang@codeaurora.org
    Fixes: 0b257734344a ("scsi: ufs: optimize system suspend handling")
    Reviewed-by: Daejun Park <daejun7.park@samsung.com>
    Signed-off-by: Can Guo <cang@codeaurora.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/scsi/ufs/ufshcd.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
    index 96f9c81d42b2..08d4d40c510e 100644
    --- a/drivers/scsi/ufs/ufshcd.c
    +++ b/drivers/scsi/ufs/ufshcd.c
    @@ -8825,6 +8825,7 @@ int ufshcd_system_suspend(struct ufs_hba *hba)
    hba->curr_dev_pwr_mode) &&
    (ufs_get_pm_lvl_to_link_pwr_state(hba->spm_lvl) ==
    hba->uic_link_state) &&
    + pm_runtime_suspended(hba->dev) &&
    !hba->dev_info.b_rpm_dev_flush_capable)
    goto out;

    --
    2.30.2


    \
     
     \ /
      Last update: 2021-05-17 17:50    [W:4.034 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site