diff --git a/drivers/soc/qcom/minidump_log.c b/drivers/soc/qcom/minidump_log.c index f96355cba02e..06a5b438b40e 100644 --- a/drivers/soc/qcom/minidump_log.c +++ b/drivers/soc/qcom/minidump_log.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -830,10 +831,14 @@ static void md_dump_data(unsigned long addr, int nbytes, const char *name) for (j = 0; j < 8; j++) { u32 data; - if (probe_kernel_address(p, data)) - seq_buf_printf(md_cntxt_seq_buf, " ********"); + if (__is_lm_address(p) && + kern_addr_valid((unsigned long)p) && + page_accessible(page_to_pfn(virt_to_page(p))) && + !probe_kernel_address(p, data)) + seq_buf_printf(md_cntxt_seq_buf, " %08x", + data); else - seq_buf_printf(md_cntxt_seq_buf, " %08x", data); + seq_buf_printf(md_cntxt_seq_buf, " ********"); ++p; } seq_buf_printf(md_cntxt_seq_buf, "\n");