Commit 538f368612565f7c7672145c31e87f1d3d02d545

Authored by Nitin A Kamble
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;
... ...