[PATCH v2] ufs: core: Avoid IRQ thread wakeup during active UIC command
Bart Van Assche
bvanassche at acm.org
Fri Mar 6 08:34:28 PST 2026
On 3/5/26 11:43 PM, peter.wang at mediatek.com wrote:
> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> index 9908375b2f98..6554e1db3343 100644
> --- a/drivers/ufs/core/ufshcd.c
> +++ b/drivers/ufs/core/ufshcd.c
> @@ -7200,8 +7200,12 @@ static irqreturn_t ufshcd_intr(int irq, void *__hba)
> struct ufs_hba *hba = __hba;
> u32 intr_status, enabled_intr_status;
>
> - /* Move interrupt handling to thread when MCQ & ESI are not enabled */
> - if (!hba->mcq_enabled || !hba->mcq_esi_enabled)
> + /*
> + * Handle interrupt in thread if MCQ or ESI is disabled,
> + * and no active UIC command.
> + */
> + if ((!hba->mcq_enabled || !hba->mcq_esi_enabled) &&
> + !hba->active_uic_cmd)
> return IRQ_WAKE_THREAD;
>
> intr_status = ufshcd_readl(hba, REG_INTERRUPT_STATUS);
Reviewed-by: Bart Van Assche <bvanassche at acm.org>
More information about the Linux-mediatek
mailing list