[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <DM6PR04MB6575A579B58313D1F0BF046CFC6E9@DM6PR04MB6575.namprd04.prod.outlook.com>
Date: Mon, 1 May 2023 07:53:52 +0000
From: Avri Altman <Avri.Altman@....com>
To: "keosung.park@...sung.com" <keosung.park@...sung.com>,
ALIM AKHTAR <alim.akhtar@...sung.com>,
"bvanassche@....org" <bvanassche@....org>,
"jejb@...ux.ibm.com" <jejb@...ux.ibm.com>,
"martin.petersen@...cle.com" <martin.petersen@...cle.com>,
"beanhuo@...ron.com" <beanhuo@...ron.com>,
"stanley.chu@...iatek.com" <stanley.chu@...iatek.com>,
"quic_asutoshd@...cinc.com" <quic_asutoshd@...cinc.com>,
"adrian.hunter@...el.com" <adrian.hunter@...el.com>,
"quic_cang@...cinc.com" <quic_cang@...cinc.com>,
"linux-scsi@...r.kernel.org" <linux-scsi@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH] scsi: ufs: core: Fix IO hang that occurs when BKOPS fails
in W-LUN suspend
> Even when urgent BKOPS fails, the consumer will get stuck in runtime
> suspend status. Like commit 1a5665fc8d7a ("scsi: ufs: core: WLUN suspend
> SSU/enter hibern8 fail recovery"), trigger the error handler and return
> -EBUSY to break the suspend.
>
> Fixes: b294ff3e3449 ("scsi: ufs: core: Enable power management for wlun")
> Signed-off-by: Keoseong Park <keosung.park@...sung.com>
Reviewed-by: Avri Altman <avri.altman@....com>
Thanks,
Avri
> ---
> drivers/ufs/core/ufshcd.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> index 9434328ba323..24966e9af720 100644
> --- a/drivers/ufs/core/ufshcd.c
> +++ b/drivers/ufs/core/ufshcd.c
> @@ -9457,8 +9457,16 @@ static int __ufshcd_wl_suspend(struct ufs_hba
> *hba, enum ufs_pm_op pm_op)
> * that performance might be impacted.
> */
> ret = ufshcd_urgent_bkops(hba);
> - if (ret)
> + if (ret) {
> + /*
> + * If return err in suspend flow, IO will hang.
> + * Trigger error handler and break suspend for
> + * error recovery.
> + */
> + ufshcd_force_error_recovery(hba);
> + ret = -EBUSY;
> goto enable_scaling;
> + }
> } else {
> /* make sure that auto bkops is disabled */
> ufshcd_disable_auto_bkops(hba);
> --
> 2.17.1
Powered by blists - more mailing lists