Skip to content

Commit 6a4c9ab

Browse files
Sai Prakash Ranjankees
authored andcommitted
pstore/ram: Fix console ramoops to show the previous boot logs
commit b05c950 ("pstore/ram: Simplify ramoops_get_next_prz() arguments") changed update assignment in getting next persistent ram zone by adding a check for record type. But the check always returns true since the record type is assigned 0. And this breaks console ramoops by showing current console log instead of previous log on warm reset and hard reset (actually hard reset should not be showing any logs). Fix this by having persistent ram zone type check instead of record type check. Tested this on SDM845 MTP and dragonboard 410c. Reproducing this issue is simple as below: 1. Trigger hard reset and mount pstore. Will see console-ramoops record in the mounted location which is the current log. 2. Trigger warm reset and mount pstore. Will see the current console-ramoops record instead of previous record. Fixes: b05c950 ("pstore/ram: Simplify ramoops_get_next_prz() arguments") Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> Acked-by: Joel Fernandes (Google) <joel@joelfernandes.org> [kees: dropped local variable usage] Signed-off-by: Kees Cook <keescook@chromium.org>
1 parent 1c7fc5c commit 6a4c9ab

File tree

1 file changed

+1
-2
lines changed

1 file changed

+1
-2
lines changed

fs/pstore/ram.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,6 @@ ramoops_get_next_prz(struct persistent_ram_zone *przs[], int id,
128128
struct pstore_record *record)
129129
{
130130
struct persistent_ram_zone *prz;
131-
bool update = (record->type == PSTORE_TYPE_DMESG);
132131

133132
/* Give up if we never existed or have hit the end. */
134133
if (!przs)
@@ -139,7 +138,7 @@ ramoops_get_next_prz(struct persistent_ram_zone *przs[], int id,
139138
return NULL;
140139

141140
/* Update old/shadowed buffer. */
142-
if (update)
141+
if (prz->type == PSTORE_TYPE_DMESG)
143142
persistent_ram_save_old(prz);
144143

145144
if (!persistent_ram_old_size(prz))

0 commit comments

Comments
 (0)