This is a note to let you know that I've just added the patch titled pstore/ram: Write new dumps to start of recycled zones to the 4.19-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: pstore-ram-write-new-dumps-to-start-of-recycled-zones.patch and it can be found in the queue-4.19 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 9e5f1c19800b808a37fb9815a26d382132c26c3d Mon Sep 17 00:00:00 2001 From: Aleksandr Yashkin <a.yashkin@xxxxxxxxxxxxxxxxxx> Date: Mon, 23 Dec 2019 18:38:16 +0500 Subject: pstore/ram: Write new dumps to start of recycled zones From: Aleksandr Yashkin <a.yashkin@xxxxxxxxxxxxxxxxxx> commit 9e5f1c19800b808a37fb9815a26d382132c26c3d upstream. The ram_core.c routines treat przs as circular buffers. When writing a new crash dump, the old buffer needs to be cleared so that the new dump doesn't end up in the wrong place (i.e. at the end). The solution to this problem is to reset the circular buffer state before writing a new Oops dump. Signed-off-by: Aleksandr Yashkin <a.yashkin@xxxxxxxxxxxxxxxxxx> Signed-off-by: Nikolay Merinov <n.merinov@xxxxxxxxxxxxxxxxxx> Signed-off-by: Ariel Gilman <a.gilman@xxxxxxxxxxxxxxxxxx> Link: https://lore.kernel.org/r/20191223133816.28155-1-n.merinov@xxxxxxxxxxxxxxxxxx Fixes: 896fc1f0c4c6 ("pstore/ram: Switch to persistent_ram routines") Cc: stable@xxxxxxxxxxxxxxx Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- fs/pstore/ram.c | 11 +++++++++++ 1 file changed, 11 insertions(+) --- a/fs/pstore/ram.c +++ b/fs/pstore/ram.c @@ -437,6 +437,17 @@ static int notrace ramoops_pstore_write( prz = cxt->dprzs[cxt->dump_write_cnt]; + /* + * Since this is a new crash dump, we need to reset the buffer in + * case it still has an old dump present. Without this, the new dump + * will get appended, which would seriously confuse anything trying + * to check dump file contents. Specifically, ramoops_read_kmsg_hdr() + * expects to find a dump header in the beginning of buffer data, so + * we must to reset the buffer values, in order to ensure that the + * header will be written to the beginning of the buffer. + */ + persistent_ram_zap(prz); + /* Build header and append record contents. */ hlen = ramoops_write_kmsg_hdr(prz, record); size = record->size; Patches currently in stable-queue which might be from a.yashkin@xxxxxxxxxxxxxxxxxx are queue-4.19/pstore-ram-write-new-dumps-to-start-of-recycled-zones.patch