target-i386: Add a marker to end of the region zeroed on reset
Instead of using cpuid_level, use an empty struct as a marker (like we already did with {start,end}_init_save). This will avoid accidentaly resetting the wrong fields if we change the field ordering on CPUX86State. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
0456441b5e
commit
5e992a8e33
@ -2714,7 +2714,7 @@ static void x86_cpu_reset(CPUState *s)
|
||||
|
||||
xcc->parent_reset(s);
|
||||
|
||||
memset(env, 0, offsetof(CPUX86State, cpuid_level));
|
||||
memset(env, 0, offsetof(CPUX86State, end_reset_fields));
|
||||
|
||||
tlb_flush(s, 1);
|
||||
|
||||
|
@ -1108,6 +1108,7 @@ typedef struct CPUX86State {
|
||||
CPU_COMMON
|
||||
|
||||
/* Fields from here on are preserved across CPU reset. */
|
||||
struct {} end_reset_fields;
|
||||
|
||||
/* processor features (e.g. for CPUID insn) */
|
||||
uint32_t cpuid_level;
|
||||
|
Loading…
Reference in New Issue
Block a user