mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
scsi: ufs: core: Avoid IRQ thread wakeup during active UIC command
Only return IRQ_WAKE_THREAD when MCQ and ESI are not enabled and no UIC command is active. The default UIC command timeout is 500ms, Using threaded IRQs during an active UIC command increases the risk of timeout due to possible preemption by other system IRQs. Signed-off-by: Peter Wang <peter.wang@mediatek.com> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Link: https://patch.msgid.link/20260306054419.3816557-1-peter.wang@mediatek.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
committed by
Martin K. Petersen
parent
b5e21a29fe
commit
6475cfb81f
@@ -7221,8 +7221,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);
|
||||
|
||||
Reference in New Issue
Block a user