diff options
| author | Hongyan Xu <getshell@seu.edu.cn> | 2026-08-06 14:05:40 +0800 |
|---|---|---|
| committer | Bjorn Andersson <andersson@kernel.org> | 2026-10-05 09:10:43 +0200 |
| commit | bb5c846a74ca119679fdc3241888a3de179d02c2 (patch) | |
| tree | e907894a9d06c5bfce5358b57b2e09ad10815033 /tools/perf/scripts/python/task-analyzer.py | |
| parent | f3c95a76d2ee9c17034e9d96917b37d194dd9f91 (diff) | |
soc: qcom: apr: clean up failed service registrations
apr_add_device() publishes a service in svcs_idr before parsing the
optional protection domain and registering the device. If device
registration fails, put_device() frees the apr_device while its service
remains in the IDR. A received packet can then dereference that stale
entry. The property error path also leaves the service and allocation
behind.
Split device_register() into device_initialize() and device_add() so every
pre-registration error can safely drop the device reference. Remove the
service from the IDR on all failures after publication, then drain the RX
workqueue before dropping the device reference. This prevents an in-flight
lookup from outliving the device.
Fixes: 6adba21eb434 ("soc: qcom: Add APR bus driver")
Signed-off-by: Hongyan Xu <getshell@seu.edu.cn>
Link: https://lore.kernel.org/r/20260806060541.820-1-getshell@seu.edu.cn
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/task-analyzer.py')
0 files changed, 0 insertions, 0 deletions
