From b4714026ebe98ca31337b56f0e056b8194acd315 Mon Sep 17 00:00:00 2001 From: Huang Yiwei Date: Fri, 6 Nov 2020 15:26:33 +0800 Subject: [PATCH] soc: qcom: Add rodata section dump in minidump Since ro_after_init section content is changed during init, dump this section also in minidump to provide more debug info. Change-Id: I7fba1271ac4b6930bfde7bc3aafd43936d81c5ae Signed-off-by: Huang Yiwei --- drivers/soc/qcom/minidump_log.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/soc/qcom/minidump_log.c b/drivers/soc/qcom/minidump_log.c index 4aaa5b894334..f722bfa7826b 100644 --- a/drivers/soc/qcom/minidump_log.c +++ b/drivers/soc/qcom/minidump_log.c @@ -189,6 +189,7 @@ static void __init register_kernel_sections(void) { struct md_region ksec_entry; char *data_name = "KDATABSS"; + char *rodata_name = "KROAIDATA"; const size_t static_size = __per_cpu_end - __per_cpu_start; void __percpu *base = (void __percpu *)__per_cpu_start; unsigned int cpu; @@ -200,6 +201,13 @@ static void __init register_kernel_sections(void) if (msm_minidump_add_region(&ksec_entry) < 0) pr_err("Failed to add data section in Minidump\n"); + strlcpy(ksec_entry.name, rodata_name, sizeof(ksec_entry.name)); + ksec_entry.virt_addr = (uintptr_t)__start_ro_after_init; + ksec_entry.phys_addr = virt_to_phys(__start_ro_after_init); + ksec_entry.size = roundup((__end_ro_after_init - __start_ro_after_init), 4); + if (msm_minidump_add_region(&ksec_entry) < 0) + pr_err("Failed to add rodata section in Minidump\n"); + /* Add percpu static sections */ for_each_possible_cpu(cpu) { void *start = per_cpu_ptr(base, cpu);