FROMGIT: firmware: arm_scmi: Free mailbox channels if probe fails
Mailbox channels for the base protocol are setup during probe.
There can be a scenario where probe fails to acquire the base
protocol due to a timeout leading to cleaning up of all device
managed memory including the scmi_mailbox structure setup during
mailbox_chan_setup function.
| arm-scmi soc:qcom,scmi: timed out in resp(caller: version_get+0x84/0x140)
| arm-scmi soc:qcom,scmi: unable to communicate with SCMI
| arm-scmi: probe of soc:qcom,scmi failed with error -110
Now when a message arrives at cpu slightly after the timeout, the mailbox
controller will try to call the rx_callback of the client and might end
up accessing freed memory.
| rx_callback+0x24/0x160
| mbox_chan_received_data+0x44/0x94
| __handle_irq_event_percpu+0xd4/0x240
This patch frees the mailbox channels setup during probe and adds some more
error handling in case the probe fails.
Link: https://lore.kernel.org/r/1628111999-21595-1-git-send-email-rishabhb@codeaurora.org
Tested-by:
Cristian Marussi <cristian.marussi@arm.com>
Reviewed-by:
Cristian Marussi <cristian.marussi@arm.com>
Signed-off-by:
Rishabh Bhatnagar <rishabhb@codeaurora.org>
Signed-off-by:
Sudeep Holla <sudeep.holla@arm.com>
Bug: 196063834
(cherry picked from commit 1e7cbfaa
git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux.git/
for-next/scmi)
Signed-off-by:
Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
Change-Id: I3502b0905dd5e21e6189c125f182fd1fb29eaba8
Loading
Please sign in to comment