Commit 538f368612565f7c7672145c31e87f1d3d02d545
Committed by
Anthony Liguori
1 parent
ef768138
QEMU KVM: i386: Fix the cpu reset state
As per the IA32 processor manual, the accessed bit is set to 1 in the processor state after reset. qemu pc cpu_reset code was missing this accessed bit setting. Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing
1 changed file
with
12 additions
and
6 deletions
target-i386/helper.c
... | ... | @@ -496,17 +496,23 @@ void cpu_reset(CPUX86State *env) |
496 | 496 | env->tr.flags = DESC_P_MASK | (11 << DESC_TYPE_SHIFT); |
497 | 497 | |
498 | 498 | cpu_x86_load_seg_cache(env, R_CS, 0xf000, 0xffff0000, 0xffff, |
499 | - DESC_P_MASK | DESC_S_MASK | DESC_CS_MASK | DESC_R_MASK); | |
499 | + DESC_P_MASK | DESC_S_MASK | DESC_CS_MASK | | |
500 | + DESC_R_MASK | DESC_A_MASK); | |
500 | 501 | cpu_x86_load_seg_cache(env, R_DS, 0, 0, 0xffff, |
501 | - DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); | |
502 | + DESC_P_MASK | DESC_S_MASK | DESC_W_MASK | | |
503 | + DESC_A_MASK); | |
502 | 504 | cpu_x86_load_seg_cache(env, R_ES, 0, 0, 0xffff, |
503 | - DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); | |
505 | + DESC_P_MASK | DESC_S_MASK | DESC_W_MASK | | |
506 | + DESC_A_MASK); | |
504 | 507 | cpu_x86_load_seg_cache(env, R_SS, 0, 0, 0xffff, |
505 | - DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); | |
508 | + DESC_P_MASK | DESC_S_MASK | DESC_W_MASK | | |
509 | + DESC_A_MASK); | |
506 | 510 | cpu_x86_load_seg_cache(env, R_FS, 0, 0, 0xffff, |
507 | - DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); | |
511 | + DESC_P_MASK | DESC_S_MASK | DESC_W_MASK | | |
512 | + DESC_A_MASK); | |
508 | 513 | cpu_x86_load_seg_cache(env, R_GS, 0, 0, 0xffff, |
509 | - DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); | |
514 | + DESC_P_MASK | DESC_S_MASK | DESC_W_MASK | | |
515 | + DESC_A_MASK); | |
510 | 516 | |
511 | 517 | env->eip = 0xfff0; |
512 | 518 | env->regs[R_EDX] = env->cpuid_version; | ... | ... |