From nobody Tue Feb 10 14:32:54 2026 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 151267064406289.05233594882611; Thu, 7 Dec 2017 10:17:24 -0800 (PST) Received: from localhost ([::1]:33730 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eN0jF-0000tz-U3 for importer@patchew.org; Thu, 07 Dec 2017 13:17:01 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38865) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eN0hL-0008Gp-Ah for qemu-devel@nongnu.org; Thu, 07 Dec 2017 13:15:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eN0hK-0006nn-Ez for qemu-devel@nongnu.org; Thu, 07 Dec 2017 13:15:03 -0500 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:38906) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eN0hI-0006ly-Dt; Thu, 07 Dec 2017 13:15:00 -0500 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1eN0hE-00081p-Ew; Thu, 07 Dec 2017 18:14:56 +0000 From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Date: Thu, 7 Dec 2017 18:14:50 +0000 Message-Id: <1512670493-18114-4-git-send-email-peter.maydell@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1512670493-18114-1-git-send-email-peter.maydell@linaro.org> References: <1512670493-18114-1-git-send-email-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 3/6] target/arm: Move definition of 'host' cpu type into cpu.c X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Richard W . M . Jones" , Eduardo Habkost , patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_6 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Move the definition of the 'host' cpu type into cpu.c, where all the other CPU types are defined. We can do this now we've decoupled it from the KVM-specific host feature probing. This means we now create the type unconditionally (assuming we were built with KVM support at all), but if you try to use it without -enable-kvm this will end up in the "host cpu probe failed and KVM not enabled" path in arm_cpu_realizefn(), for an appropriate error message. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/cpu.c | 24 ++++++++++++++++++++++++ target/arm/kvm.c | 19 ------------------- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index a7deb10..9304277 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1785,6 +1785,26 @@ static void arm_cpu_class_init(ObjectClass *oc, void= *data) #endif } =20 +#ifdef CONFIG_KVM +static void arm_host_initfn(Object *obj) +{ + ARMCPU *cpu =3D ARM_CPU(obj); + + kvm_arm_set_cpu_features_from_host(cpu); +} + +static const TypeInfo host_arm_cpu_type_info =3D { + .name =3D TYPE_ARM_HOST_CPU, +#ifdef TARGET_AARCH64 + .parent =3D TYPE_AARCH64_CPU, +#else + .parent =3D TYPE_ARM_CPU, +#endif + .instance_init =3D arm_host_initfn, +}; + +#endif + static void cpu_register(const ARMCPUInfo *info) { TypeInfo type_info =3D { @@ -1822,6 +1842,10 @@ static void arm_cpu_register_types(void) cpu_register(info); info++; } + +#ifdef CONFIG_KVM + type_register_static(&host_arm_cpu_type_info); +#endif } =20 type_init(arm_cpu_register_types) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 945696c..6bdc027 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -152,23 +152,6 @@ void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu) env->features =3D arm_host_cpu_features.features; } =20 -static void kvm_arm_host_cpu_initfn(Object *obj) -{ - ARMCPU *cpu =3D ARM_CPU(obj); - - kvm_arm_set_cpu_features_from_host(cpu); -} - -static const TypeInfo host_arm_cpu_type_info =3D { - .name =3D TYPE_ARM_HOST_CPU, -#ifdef TARGET_AARCH64 - .parent =3D TYPE_AARCH64_CPU, -#else - .parent =3D TYPE_ARM_CPU, -#endif - .instance_init =3D kvm_arm_host_cpu_initfn, -}; - int kvm_arch_init(MachineState *ms, KVMState *s) { /* For ARM interrupt delivery is always asynchronous, @@ -184,8 +167,6 @@ int kvm_arch_init(MachineState *ms, KVMState *s) =20 cap_has_mp_state =3D kvm_check_extension(s, KVM_CAP_MP_STATE); =20 - type_register_static(&host_arm_cpu_type_info); - return 0; } =20 --=20 2.7.4