Revert "disp: msm: sde: bound event log traversal to allocated memory in coredump"

This reverts commit 174c107f6a.

Change-Id: I4ef0d4364623389159bc2c3ca950add4d500fa93
Signed-off-by: Bruce Levy <quic_blevy@quicinc.com>
This commit is contained in:
Bruce Levy
2022-09-06 18:48:42 -07:00
parent dbeaf04922
commit a1f10f798b

View File

@@ -1191,6 +1191,7 @@ void sde_evtlog_dump_all(struct sde_dbg_evtlog *evtlog)
char buf[SDE_EVTLOG_BUF_MAX]; char buf[SDE_EVTLOG_BUF_MAX];
bool update_last_entry = true; bool update_last_entry = true;
u32 in_log, in_mem, in_dump; u32 in_log, in_mem, in_dump;
u32 log_size = 0;
char *dump_addr = NULL; char *dump_addr = NULL;
int i; 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_mem = evtlog->dump_mode & SDE_DBG_DUMP_IN_MEM;
in_dump = evtlog->dump_mode & SDE_DBG_DUMP_IN_COREDUMP; in_dump = evtlog->dump_mode & SDE_DBG_DUMP_IN_COREDUMP;
if (!evtlog->dumped_evtlog) { log_size = sde_evtlog_count(evtlog);
evtlog->dumped_evtlog = kvzalloc((SDE_EVTLOG_ENTRY * SDE_EVTLOG_BUF_MAX), if (!log_size)
GFP_KERNEL); return;
if (!evtlog->dumped_evtlog)
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; dump_addr = evtlog->dumped_evtlog;
if ((in_mem || in_dump) && dump_addr && (!sde_dbg_base.coredump_reading)) { if ((in_mem || in_dump) && dump_addr && (!sde_dbg_base.coredump_reading)) {
for (i = 0; i < evtlog->log_size; i++) { while (sde_evtlog_dump_to_buffer(evtlog, dump_addr, SDE_EVTLOG_BUF_MAX,
if (!sde_evtlog_dump_to_buffer(evtlog, dump_addr, SDE_EVTLOG_BUF_MAX, update_last_entry, true)) {
update_last_entry, true))
break;
dump_addr += SDE_EVTLOG_BUF_MAX; dump_addr += SDE_EVTLOG_BUF_MAX;
update_last_entry = false; update_last_entry = false;
} }
@@ -1232,11 +1232,8 @@ void sde_evtlog_dump_all(struct sde_dbg_evtlog *evtlog)
} }
if (in_log) { if (in_log) {
for (i = 0; i < evtlog->log_size; i++) { while (sde_evtlog_dump_to_buffer(evtlog, buf, sizeof(buf),
if (!sde_evtlog_dump_to_buffer(evtlog, buf, SDE_EVTLOG_BUF_MAX, update_last_entry, false)) {
update_last_entry, false))
break;
pr_info("%s\n", buf); pr_info("%s\n", buf);
update_last_entry = false; update_last_entry = false;
} }