Re: [PATCH v3 04/18] soc: qcom: Add Qualcomm minidump kernel driver

From: Krzysztof Kozlowski
Date: Thu May 04 2023 - 12:34:54 EST


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