On 5/5/2025 8:58 PM, Kuldeep Singh wrote:
On 4/29/2025 11:36 AM, Amirreza Zarrabi wrote:
shm_bridge create/delete functions always use the scm device. There is no need to pass it as an argument.
Signed-off-by: Amirreza Zarrabi amirreza.zarrabi@oss.qualcomm.com
There are 2 type of APIs exposed by tzmem driver for pool creation. devm_qcom_tzmem_pool_new and qcom_tzmem_pool_new.
Device managed pool is created with devm_qcom_tzmem_pool_new but currently qcom_scm is using it's own dev to create/delete bridge which is problamatic here.
https://elixir.bootlin.com/linux/v6.14.5/source/drivers/firmware/qcom/qcom_s...
If pool is device managed, same dev should be used in qcom_scm to create/delete bridge rather than using qcom_scm dev. The dev passed as an argument to function should be used instead of __scm->dev. https://elixir.bootlin.com/linux/v6.14.5/source/drivers/firmware/qcom/qcom_s...
To summarize, I believe correct solution should be to pass corresponding dev to bridge create/delete APIs instead of always assuming to be qcom_scm dev for devm_qcom_tzmem_pool_new scenarios. For qcom_tzmem_pool_new, qcom_scm/qcom_tzmem_dev can be used.
Bartosz/Amirreza, please share your thoughts as well.
It is not true. Why should shmbridge need to have access to random devices, while the resources are obtained from the scm device, if any?
- Amir