In smp_call_function_single(), the 3rd parameter isn't the return value and it's always positive. But it may return a negative value. So the 'ret' is should be the return value of the smp_call_function_single(). In check_kvm_target_cpu(), 'phys_target' is more readable than 'ret'. Signed-off-by: Yejune Deng <yejune.deng@xxxxxxxxx> --- arch/arm64/kvm/arm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c index 04c44853b103..5fa5c04106de 100644 --- a/arch/arm64/kvm/arm.c +++ b/arch/arm64/kvm/arm.c @@ -1815,9 +1815,9 @@ static int init_hyp_mode(void) return err; } -static void check_kvm_target_cpu(void *ret) +static void check_kvm_target_cpu(void *phys_target) { - *(int *)ret = kvm_target_cpu(); + *(int *)phys_target = kvm_target_cpu(); } struct kvm_vcpu *kvm_mpidr_to_vcpu(struct kvm *kvm, unsigned long mpidr) @@ -1879,7 +1879,7 @@ void kvm_arch_irq_bypass_start(struct irq_bypass_consumer *cons) int kvm_arch_init(void *opaque) { int err; - int ret, cpu; + int ret, cpu, phys_target; bool in_hyp_mode; if (!is_hyp_mode_available()) { @@ -1900,7 +1900,7 @@ int kvm_arch_init(void *opaque) "Only trusted guests should be used on this system.\n"); for_each_online_cpu(cpu) { - smp_call_function_single(cpu, check_kvm_target_cpu, &ret, 1); + ret = smp_call_function_single(cpu, check_kvm_target_cpu, &phys_target, 1); if (ret < 0) { kvm_err("Error, CPU %d not supported!\n", cpu); return -ENODEV; -- 2.29.0 _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm