Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

remoteproc: qcom: q6v5: Avoid handling handover twice

A remoteproc could theoretically signal handover twice. This is unexpected
and would break the reference counting for the handover resources (power
domains, clocks, regulators, etc), so add a check to prevent that from
happening.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
Link: https://lore.kernel.org/r/20250820-rproc-qcom-q6v5-fixes-v2-2-910b1a3aff71@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>

authored by

Stephan Gerhold and committed by
Bjorn Andersson
54898664 110be46f

+5
+5
drivers/remoteproc/qcom_q6v5.c
··· 164 164 { 165 165 struct qcom_q6v5 *q6v5 = data; 166 166 167 + if (q6v5->handover_issued) { 168 + dev_err(q6v5->dev, "Handover signaled, but it already happened\n"); 169 + return IRQ_HANDLED; 170 + } 171 + 167 172 if (q6v5->handover) 168 173 q6v5->handover(q6v5); 169 174