From a1f10f798b7c917ff838f27eaa41bf3dd9b45db2 Mon Sep 17 00:00:00 2001 From: Bruce Levy Date: Tue, 6 Sep 2022 18:48:42 -0700 Subject: [PATCH] Revert "disp: msm: sde: bound event log traversal to allocated memory in coredump" This reverts commit 174c107f6a511f27fe6508da177244d2d467806e. Change-Id: I4ef0d4364623389159bc2c3ca950add4d500fa93 Signed-off-by: Bruce Levy --- msm/sde_dbg.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/msm/sde_dbg.c b/msm/sde_dbg.c index 7aef13e9..2eacf1f8 100644 --- a/msm/sde_dbg.c +++ b/msm/sde_dbg.c @@ -1191,6 +1191,7 @@ void sde_evtlog_dump_all(struct sde_dbg_evtlog *evtlog) char buf[SDE_EVTLOG_BUF_MAX]; bool update_last_entry = true; u32 in_log, in_mem, in_dump; + u32 log_size = 0; char *dump_addr = NULL; int i; @@ -1201,22 +1202,21 @@ void sde_evtlog_dump_all(struct sde_dbg_evtlog *evtlog) in_mem = evtlog->dump_mode & SDE_DBG_DUMP_IN_MEM; in_dump = evtlog->dump_mode & SDE_DBG_DUMP_IN_COREDUMP; - if (!evtlog->dumped_evtlog) { - evtlog->dumped_evtlog = kvzalloc((SDE_EVTLOG_ENTRY * SDE_EVTLOG_BUF_MAX), - GFP_KERNEL); - if (!evtlog->dumped_evtlog) - return; + log_size = sde_evtlog_count(evtlog); + if (!log_size) + return; - evtlog->log_size = SDE_EVTLOG_ENTRY; + if (!evtlog->dumped_evtlog) { + if (in_mem) + log_size = SDE_EVTLOG_ENTRY; + evtlog->dumped_evtlog = kvzalloc((log_size * SDE_EVTLOG_BUF_MAX), GFP_KERNEL); + evtlog->log_size = log_size; } dump_addr = evtlog->dumped_evtlog; if ((in_mem || in_dump) && dump_addr && (!sde_dbg_base.coredump_reading)) { - for (i = 0; i < evtlog->log_size; i++) { - if (!sde_evtlog_dump_to_buffer(evtlog, dump_addr, SDE_EVTLOG_BUF_MAX, - update_last_entry, true)) - break; - + while (sde_evtlog_dump_to_buffer(evtlog, dump_addr, SDE_EVTLOG_BUF_MAX, + update_last_entry, true)) { dump_addr += SDE_EVTLOG_BUF_MAX; update_last_entry = false; } @@ -1232,11 +1232,8 @@ void sde_evtlog_dump_all(struct sde_dbg_evtlog *evtlog) } if (in_log) { - for (i = 0; i < evtlog->log_size; i++) { - if (!sde_evtlog_dump_to_buffer(evtlog, buf, SDE_EVTLOG_BUF_MAX, - update_last_entry, false)) - break; - + while (sde_evtlog_dump_to_buffer(evtlog, buf, sizeof(buf), + update_last_entry, false)) { pr_info("%s\n", buf); update_last_entry = false; }