Skip to content

Commit

Permalink
target/arm/kvm: Have kvm_arm_pvtime_init take a ARMCPU argument
Browse files Browse the repository at this point in the history
Unify the "kvm_arm.h" API: All functions related to ARM vCPUs
take a ARMCPU* argument. Use the CPU() QOM cast macro When
calling the generic vCPU API from "sysemu/kvm.h".

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Gavin Shan <gshan@redhat.com>
Message-id: 20231123183518.64569-8-philmd@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
  • Loading branch information
philmd authored and pm215 committed Dec 19, 2023
1 parent e77034f commit 5550337
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 8 deletions.
5 changes: 3 additions & 2 deletions hw/arm/virt.c
Original file line number Diff line number Diff line change
Expand Up @@ -2003,8 +2003,9 @@ static void virt_cpu_post_init(VirtMachineState *vms, MemoryRegion *sysmem)
kvm_arm_pmu_init(cpu);
}
if (steal_time) {
kvm_arm_pvtime_init(cpu, pvtime_reg_base +
cpu->cpu_index * PVTIME_SIZE_PER_CPU);
kvm_arm_pvtime_init(ARM_CPU(cpu), pvtime_reg_base
+ cpu->cpu_index
* PVTIME_SIZE_PER_CPU);
}
}
} else {
Expand Down
6 changes: 3 additions & 3 deletions target/arm/kvm.c
Original file line number Diff line number Diff line change
Expand Up @@ -1742,18 +1742,18 @@ void kvm_arm_pmu_set_irq(CPUState *cs, int irq)
}
}

void kvm_arm_pvtime_init(CPUState *cs, uint64_t ipa)
void kvm_arm_pvtime_init(ARMCPU *cpu, uint64_t ipa)
{
struct kvm_device_attr attr = {
.group = KVM_ARM_VCPU_PVTIME_CTRL,
.attr = KVM_ARM_VCPU_PVTIME_IPA,
.addr = (uint64_t)&ipa,
};

if (ARM_CPU(cs)->kvm_steal_time == ON_OFF_AUTO_OFF) {
if (cpu->kvm_steal_time == ON_OFF_AUTO_OFF) {
return;
}
if (!kvm_arm_set_device_attr(ARM_CPU(cs), &attr, "PVTIME IPA")) {
if (!kvm_arm_set_device_attr(cpu, &attr, "PVTIME IPA")) {
error_report("failed to init PVTIME IPA");
abort();
}
Expand Down
6 changes: 3 additions & 3 deletions target/arm/kvm_arm.h
Original file line number Diff line number Diff line change
Expand Up @@ -205,12 +205,12 @@ void kvm_arm_pmu_init(CPUState *cs);

/**
* kvm_arm_pvtime_init:
* @cs: CPUState
* @cpu: ARMCPU
* @ipa: Per-vcpu guest physical base address of the pvtime structures
*
* Initializes PVTIME for the VCPU, setting the PVTIME IPA to @ipa.
*/
void kvm_arm_pvtime_init(CPUState *cs, uint64_t ipa);
void kvm_arm_pvtime_init(ARMCPU *cpu, uint64_t ipa);

int kvm_arm_set_irq(int cpu, int irqtype, int irq, int level);

Expand Down Expand Up @@ -268,7 +268,7 @@ static inline void kvm_arm_pmu_init(CPUState *cs)
g_assert_not_reached();
}

static inline void kvm_arm_pvtime_init(CPUState *cs, uint64_t ipa)
static inline void kvm_arm_pvtime_init(ARMCPU *cpu, uint64_t ipa)
{
g_assert_not_reached();
}
Expand Down

0 comments on commit 5550337

Please sign in to comment.