On 12/09/2023 11:26, Mukesh Ojha wrote:
>>
>>> +           return -EINVAL;
>>> +   }
>>> +
>>> +   mutex_init(&md->md_lock);
>>> +   ret = qcom_apss_md_table_init(md, 
>>> &mdgtoc->subsystems[MINIDUMP_APSS_DESC]);
>>> +   if (ret) {
>>> +           dev_err(md->dev, "apss minidump initialization failed: %d\n", 
>>> ret);
>>> +           return ret;
>>> +   }
>>> +
>>> +   /* First entry would be ELF header */
>>> +   ret = qcom_md_add_elfheader(md);
>>> +   if (ret) {
>>> +           dev_err(md->dev, "Failed to add elf header: %d\n", ret);
>>> +           memset(md->apss_data->md_ss_toc, 0, sizeof(struct 
>>> minidump_subsystem));
>>
>> Why do you need it?
> 
> Earlier, i got comment about clearing the SS TOC(subsystem table of 
> content) which is shared with other SS and it will have stale values.

OK, but then the entire code is poorly readable. First, any cleanup of
qcom_apss_md_table_init() should be named similarly, e.g.
qcom_apss_md_table_clean() or qcom_apss_md_table_exit() or whatever
seems feasible.

Second, shouldn't writing to shared memory be the last step? Step which
cannot fail and there is no cleanup afterwards (like
platform_set_drvdata)? I don't enjoy looking at this interface...



Best regards,
Krzysztof

Reply via email to