Half of the API takes CPUState, the other ARMCPU... $ git grep -F 'CPUState *' target/arm/kvm_arm.h | wc -l 16 $ git grep -F 'ARMCPU *' target/arm/kvm_arm.h | wc -l 14 Since this is ARM specific, have it always take ARMCPU, and call the generic KVM API casting with the CPU() macro. Based-on: <20231123044219.896776-1-richard.henderson@xxxxxxxxxx> "target/arm: kvm cleanups" https://lore.kernel.org/qemu-devel/20231123044219.896776-1-richard.henderson@xxxxxxxxxx/ Philippe Mathieu-Daudé (16): hw/intc/arm_gicv3: Include missing 'qemu/error-report.h' header target/arm/kvm: Remove unused includes target/arm/kvm: Have kvm_arm_add_vcpu_properties take a ARMCPU argument target/arm/kvm: Have kvm_arm_sve_set_vls take a ARMCPU argument target/arm/kvm: Have kvm_arm_sve_get_vls take a ARMCPU argument target/arm/kvm: Have kvm_arm_set_device_attr take a ARMCPU argument target/arm/kvm: Have kvm_arm_pvtime_init take a ARMCPU argument target/arm/kvm: Have kvm_arm_pmu_init take a ARMCPU argument target/arm/kvm: Have kvm_arm_pmu_set_irq take a ARMCPU argument target/arm/kvm: Have kvm_arm_vcpu_init take a ARMCPU argument target/arm/kvm: Have kvm_arm_vcpu_finalize take a ARMCPU argument target/arm/kvm: Have kvm_arm_[get|put]_virtual_time take ARMCPU argument target/arm/kvm: Have kvm_arm_verify_ext_dabt_pending take a ARMCPU arg target/arm/kvm: Have kvm_arm_handle_dabt_nisv take a ARMCPU argument target/arm/kvm: Have kvm_arm_handle_debug take a ARMCPU argument target/arm/kvm: Have kvm_arm_hw_debug_active take a ARMCPU argument target/arm/kvm_arm.h | 26 ++++----- hw/arm/virt.c | 9 +-- hw/intc/arm_gicv3_its_kvm.c | 1 + target/arm/cpu.c | 2 +- target/arm/cpu64.c | 2 +- target/arm/kvm.c | 111 +++++++++++++++++------------------- 6 files changed, 73 insertions(+), 78 deletions(-) -- 2.41.0