On 04/05/2023 17:21, Krzysztof Kozlowski wrote: >>> >>>> + ret = qcom_minidump_init_apss_subsystem(md); >>>> + if (ret) { >>>> + dev_err(&pdev->dev, "apss minidump initialization failed: %d\n", ret); >>>> + goto unlock; >>>> + } >>>> + >>>> + __md = md; >>> >>> No. This is a platform device, so it can have multiple instances. >> >> It can have only one instance that is created from SMEM driver probe. > > Anyone can instantiate more of them.... how did you solve it? To clarify - sprinkling more of singletons makes everything tightly coupled, difficult to debug and non-portable. You cannot have two instances, you have to control concurrent initialization by yourself in each of such singletons. I understand sometimes they are unavoidable, for example when this does not map to hardware property. However here you have the parent - smem - which can return you valid instance. Thus you avoid entire problem of file-scope variables. Best regards, Krzysztof