On 04/30/15 11:23, Paolo Bonzini wrote: > > > On 30/04/2015 17:15, Don Slutz wrote: >> That is a possibility. It did not look simple to access CPUX86State >> where I needed to check HF2_VMPORT_HACK_MASK. Instead of the >> save/restore I could add it both places. > > Why not? This: > > @@ -2566,6 +2566,12 @@ static inline void check_io(CPUX86State *env, int > addr, int size) > { > int io_offset, val, mask; > > + /* vmport hack: skip iopl checking for VMware port 0x5658 (see > + * vmport_realizefn()) */ > + if ((env->hflags2 & HF2_VMPORT_HACK_MASK) && (addr == 0x5658)) { > + return; > + } > + > > could simply be "if (addr == 0x5658 && env->allow_vmport_ring3)" if you > add it to CPUX86State. Alternatively, and probably better, you can add > it to X86CPU and do: > > if (addr == 0x5658) { > X86CPU *cpu = x86_env_get_cpu(env); > if (cpu->allow_vmport_ring3) { > return; > } > } >
I guess I was too focused on stuff in env. This way does work fine. v5 will be sent soon. -Don Slutz > Paolo >