accel/nvmm: Replace @dirty field by generic CPUState::vcpu_dirty field
No need for accel-specific @dirty field when we have a generic one in CPUState. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com> Reviewed-by: Zhao Liu <zhao1.liu@intel.com> Message-Id: <20250703173248.44995-20-philmd@linaro.org>
This commit is contained in:
parent
93bbbcb8d6
commit
2098164a6b
1 changed files with 10 additions and 11 deletions
|
|
@ -30,7 +30,6 @@ struct AccelCPUState {
|
|||
struct nvmm_vcpu vcpu;
|
||||
uint8_t tpr;
|
||||
bool stop;
|
||||
bool dirty;
|
||||
|
||||
/* Window-exiting for INTs/NMIs. */
|
||||
bool int_window_exit;
|
||||
|
|
@ -508,7 +507,7 @@ nvmm_io_callback(struct nvmm_io *io)
|
|||
}
|
||||
|
||||
/* Needed, otherwise infinite loop. */
|
||||
current_cpu->accel->dirty = false;
|
||||
current_cpu->vcpu_dirty = false;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -517,7 +516,7 @@ nvmm_mem_callback(struct nvmm_mem *mem)
|
|||
cpu_physical_memory_rw(mem->gpa, mem->data, mem->size, mem->write);
|
||||
|
||||
/* Needed, otherwise infinite loop. */
|
||||
current_cpu->accel->dirty = false;
|
||||
current_cpu->vcpu_dirty = false;
|
||||
}
|
||||
|
||||
static struct nvmm_assist_callbacks nvmm_callbacks = {
|
||||
|
|
@ -727,9 +726,9 @@ nvmm_vcpu_loop(CPUState *cpu)
|
|||
* Inner VCPU loop.
|
||||
*/
|
||||
do {
|
||||
if (cpu->accel->dirty) {
|
||||
if (cpu->vcpu_dirty) {
|
||||
nvmm_set_registers(cpu);
|
||||
cpu->accel->dirty = false;
|
||||
cpu->vcpu_dirty = false;
|
||||
}
|
||||
|
||||
if (qcpu->stop) {
|
||||
|
|
@ -827,32 +826,32 @@ static void
|
|||
do_nvmm_cpu_synchronize_state(CPUState *cpu, run_on_cpu_data arg)
|
||||
{
|
||||
nvmm_get_registers(cpu);
|
||||
cpu->accel->dirty = true;
|
||||
cpu->vcpu_dirty = true;
|
||||
}
|
||||
|
||||
static void
|
||||
do_nvmm_cpu_synchronize_post_reset(CPUState *cpu, run_on_cpu_data arg)
|
||||
{
|
||||
nvmm_set_registers(cpu);
|
||||
cpu->accel->dirty = false;
|
||||
cpu->vcpu_dirty = false;
|
||||
}
|
||||
|
||||
static void
|
||||
do_nvmm_cpu_synchronize_post_init(CPUState *cpu, run_on_cpu_data arg)
|
||||
{
|
||||
nvmm_set_registers(cpu);
|
||||
cpu->accel->dirty = false;
|
||||
cpu->vcpu_dirty = false;
|
||||
}
|
||||
|
||||
static void
|
||||
do_nvmm_cpu_synchronize_pre_loadvm(CPUState *cpu, run_on_cpu_data arg)
|
||||
{
|
||||
cpu->accel->dirty = true;
|
||||
cpu->vcpu_dirty = true;
|
||||
}
|
||||
|
||||
void nvmm_cpu_synchronize_state(CPUState *cpu)
|
||||
{
|
||||
if (!cpu->accel->dirty) {
|
||||
if (!cpu->vcpu_dirty) {
|
||||
run_on_cpu(cpu, do_nvmm_cpu_synchronize_state, RUN_ON_CPU_NULL);
|
||||
}
|
||||
}
|
||||
|
|
@ -982,7 +981,7 @@ nvmm_init_vcpu(CPUState *cpu)
|
|||
}
|
||||
}
|
||||
|
||||
qcpu->dirty = true;
|
||||
qcpu->vcpu_dirty = true;
|
||||
cpu->accel = qcpu;
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue