Patch "m68k: Process bootinfo records before saving them" has been added to the 6.0-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    m68k: Process bootinfo records before saving them

to the 6.0-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:
     m68k-process-bootinfo-records-before-saving-them.patch
and it can be found in the queue-6.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 8222dae4451abc1d5b3ff74e4efc132e2390f393
Author: Jason A. Donenfeld <Jason@xxxxxxxxx>
Date:   Tue Sep 27 15:08:34 2022 +0200

    m68k: Process bootinfo records before saving them
    
    [ Upstream commit 7c236d93c6764dcaca7ab66d76768a044647876d ]
    
    The RNG seed boot record is memzeroed after processing, in order to
    preserve forward secrecy. By saving the bootinfo for procfs prior to
    that, forward secrecy is violated, since it becomes possible to recover
    past states. So, save the bootinfo block only after first processing
    them.
    
    Fixes: a1ee38ab1a75 ("m68k: virt: Use RNG seed from bootinfo block")
    Signed-off-by: Jason A. Donenfeld <Jason@xxxxxxxxx>
    Link: https://lore.kernel.org/r/20220927130835.1629806-1-Jason@xxxxxxxxx
    Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/m68k/kernel/setup_mm.c b/arch/m68k/kernel/setup_mm.c
index e62fa8f2149b..7e7ef67cff8b 100644
--- a/arch/m68k/kernel/setup_mm.c
+++ b/arch/m68k/kernel/setup_mm.c
@@ -109,10 +109,9 @@ extern void paging_init(void);
 
 static void __init m68k_parse_bootinfo(const struct bi_record *record)
 {
+	const struct bi_record *first_record = record;
 	uint16_t tag;
 
-	save_bootinfo(record);
-
 	while ((tag = be16_to_cpu(record->tag)) != BI_LAST) {
 		int unknown = 0;
 		const void *data = record->data;
@@ -182,6 +181,8 @@ static void __init m68k_parse_bootinfo(const struct bi_record *record)
 		record = (struct bi_record *)((unsigned long)record + size);
 	}
 
+	save_bootinfo(first_record);
+
 	m68k_realnum_memory = m68k_num_memory;
 #ifdef CONFIG_SINGLE_MEMORY_CHUNK
 	if (m68k_num_memory > 1) {



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux