Message ID | 20221014021653.1461512-7-Jason@zx2c4.com |
---|---|
State | New |
Headers | show |
Series | rerandomize RNG seeds on reboot and handle record&replay | expand |
Hi Jason, On Thu, Oct 13, 2022 at 08:16:51PM -0600, Jason A. Donenfeld wrote: > When the system reboots, the rng-seed that the FDT has should be > re-randomized, so that the new boot gets a new seed. Since the FDT is in > the ROM region at this point, we add a hook right after the ROM has been > added, so that we have a pointer to that copy of the FDT. This looks good to me. Acked-by: Stafford Horne <shorne@gmail.com> > Cc: Stafford Horne <shorne@gmail.com> > Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> > --- > hw/openrisc/boot.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/hw/openrisc/boot.c b/hw/openrisc/boot.c > index 128ccbcba2..007e80cd5a 100644 > --- a/hw/openrisc/boot.c > +++ b/hw/openrisc/boot.c > @@ -14,6 +14,7 @@ > #include "hw/openrisc/boot.h" > #include "sysemu/device_tree.h" > #include "sysemu/qtest.h" > +#include "sysemu/reset.h" > > #include <libfdt.h> > > @@ -111,6 +112,8 @@ uint32_t openrisc_load_fdt(void *fdt, hwaddr load_start, > > rom_add_blob_fixed_as("fdt", fdt, fdtsize, fdt_addr, > &address_space_memory); > + qemu_register_reset_nosnapshotload(qemu_fdt_randomize_seeds, > + rom_ptr_for_as(&address_space_memory, fdt_addr, fdtsize)); > > return fdt_addr; > } > -- > 2.37.3 >
diff --git a/hw/openrisc/boot.c b/hw/openrisc/boot.c index 128ccbcba2..007e80cd5a 100644 --- a/hw/openrisc/boot.c +++ b/hw/openrisc/boot.c @@ -14,6 +14,7 @@ #include "hw/openrisc/boot.h" #include "sysemu/device_tree.h" #include "sysemu/qtest.h" +#include "sysemu/reset.h" #include <libfdt.h> @@ -111,6 +112,8 @@ uint32_t openrisc_load_fdt(void *fdt, hwaddr load_start, rom_add_blob_fixed_as("fdt", fdt, fdtsize, fdt_addr, &address_space_memory); + qemu_register_reset_nosnapshotload(qemu_fdt_randomize_seeds, + rom_ptr_for_as(&address_space_memory, fdt_addr, fdtsize)); return fdt_addr; }
When the system reboots, the rng-seed that the FDT has should be re-randomized, so that the new boot gets a new seed. Since the FDT is in the ROM region at this point, we add a hook right after the ROM has been added, so that we have a pointer to that copy of the FDT. Cc: Stafford Horne <shorne@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> --- hw/openrisc/boot.c | 3 +++ 1 file changed, 3 insertions(+)