mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
media: venus: protect against spurious interrupts during probe
Make sure the interrupt handler is initialized before the interrupt is
registered.
If the IRQ is registered before hfi_create(), it's possible that an
interrupt fires before the handler setup is complete, leading to a NULL
dereference.
This error condition has been observed during system boot on Rb3Gen2.
Fixes: af2c3834c8 ("[media] media: venus: adding core part and helper functions")
Cc: stable@vger.kernel.org
Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez@oss.qualcomm.com>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Vikash Garodia <quic_vgarodia@quicinc.com>
Reviewed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
Tested-by: Dikshita Agarwal <quic_dikshita@quicinc.com> # RB5
Signed-off-by: Bryan O'Donoghue <bod@kernel.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
This commit is contained in:
parent
b179234b5e
commit
3200144a2f
|
|
@ -424,13 +424,13 @@ static int venus_probe(struct platform_device *pdev)
|
|||
INIT_DELAYED_WORK(&core->work, venus_sys_error_handler);
|
||||
init_waitqueue_head(&core->sys_err_done);
|
||||
|
||||
ret = devm_request_threaded_irq(dev, core->irq, hfi_isr, venus_isr_thread,
|
||||
IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
|
||||
"venus", core);
|
||||
ret = hfi_create(core, &venus_core_ops);
|
||||
if (ret)
|
||||
goto err_core_put;
|
||||
|
||||
ret = hfi_create(core, &venus_core_ops);
|
||||
ret = devm_request_threaded_irq(dev, core->irq, hfi_isr, venus_isr_thread,
|
||||
IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
|
||||
"venus", core);
|
||||
if (ret)
|
||||
goto err_core_put;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user