On 24 July 2017 at 19:27, Philippe Mathieu-Daudé <f4...@amsat.org> wrote: > In a ARM multicore system, write_secondary_boot() only initializes fixups for > FIXUP_GIC_CPU_IF and FIXUP_BOOTREG, while smpboot[] also uses FIXUP_DSB. > This results in write_bootloader() using uninitialized fixupcontext[FIXUP_DSB] > instruction in the bootloader code...
Hmm? The code does: if (arm_feature(&cpu->env, ARM_FEATURE_V7)) { fixupcontext[FIXUP_DSB] = DSB_INSN; } else { fixupcontext[FIXUP_DSB] = CP15_DSB_INSN; } so fixupcontext[FIXUP_DSB] is guaranteed initialized, as are FIXUP_GIC_CPU_IF and FIXUP_BOOTREG, which are the only fixups that the smpboot[] code uses. thanks -- PMM