On Fri Jul 31 03:31:42 2026 +0300, Dmitry Baryshkov wrote:
> core->hfi_sys_ops is populated only during core bring-up, once the
> firmware generation has been detected. iris_vpu_power_on() enables
> interrupts earlier than that, so an interrupt (for instance a spurious
> one) that fires in this window makes iris_hfi_isr_handler()
> unconditionally dereference a NULL core->hfi_sys_ops and panic.
>
> Skip the response handler when hfi_sys_ops has not been set up yet; the
> interrupt is still acknowledged and the line re-enabled.
>
> Fixes: d8a6a63372b8 ("media: qcom: iris: merge hfi_response_ops and
> hfi_command_ops")
> Assisted-by: Claude:claude-opus-4-8
> Reviewed-by: Konrad Dybcio <[email protected]>
> Signed-off-by: Dmitry Baryshkov <[email protected]>
> Signed-off-by: Bryan O'Donoghue <[email protected]>
Patch committed.
Thanks,
Bryan O'Donoghue
drivers/media/platform/qcom/iris/iris_hfi_common.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
---
diff --git a/drivers/media/platform/qcom/iris/iris_hfi_common.c
b/drivers/media/platform/qcom/iris/iris_hfi_common.c
index 8f04f3793d9a..dad906d03fdc 100644
--- a/drivers/media/platform/qcom/iris/iris_hfi_common.c
+++ b/drivers/media/platform/qcom/iris/iris_hfi_common.c
@@ -109,7 +109,8 @@ irqreturn_t iris_hfi_isr_handler(int irq, void *data)
iris_vpu_clear_interrupt(core);
mutex_unlock(&core->lock);
- core->hfi_sys_ops->sys_hfi_response_handler(core);
+ if (core->hfi_sys_ops)
+ core->hfi_sys_ops->sys_hfi_response_handler(core);
if (!iris_vpu_watchdog(core, core->intr_status))
enable_irq(irq);
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]