From nobody Thu Sep 19 16:07:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1722243641883211.2268386495806; Mon, 29 Jul 2024 02:00:41 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.766471.1176988 (Exim 4.92) (envelope-from ) id 1sYMEx-0001Rn-4x; Mon, 29 Jul 2024 09:00:23 +0000 Received: by outflank-mailman (output) from mailman id 766471.1176988; Mon, 29 Jul 2024 09:00:23 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1sYMEw-0001Qs-W8; Mon, 29 Jul 2024 09:00:22 +0000 Received: by outflank-mailman (input) for mailman id 766471; Mon, 29 Jul 2024 09:00:20 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1sYMEu-0000Lt-Qx for xen-devel@lists.xenproject.org; Mon, 29 Jul 2024 09:00:20 +0000 Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id fab3f2b0-4d88-11ef-bc01-fd08da9f4363; Mon, 29 Jul 2024 11:00:19 +0200 (CEST) Received: from truciolo.homenet.telecomitalia.it (host-87-20-207-105.retail.telecomitalia.it [87.20.207.105]) by support.bugseng.com (Postfix) with ESMTPSA id 872954EE0761; Mon, 29 Jul 2024 11:00:18 +0200 (CEST) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: fab3f2b0-4d88-11ef-bc01-fd08da9f4363 From: Federico Serafini To: xen-devel@lists.xenproject.org Cc: consulting@bugseng.com, Federico Serafini , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Subject: [XEN PATCH v5 6/8] x86/hvm: add defensive statements in unreachable program points Date: Mon, 29 Jul 2024 11:00:07 +0200 Message-Id: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1722243642399116600 Content-Type: text/plain; charset="utf-8" As a defensive measure, make sure to signal an error to the caller if an unreachable program point is reached. Signed-off-by: Federico Serafini Reviewed-by: Jan Beulich --- xen/arch/x86/hvm/emulate.c | 1 + xen/arch/x86/hvm/hvm.c | 4 ++++ xen/arch/x86/hvm/vmx/vmcs.c | 2 ++ 3 files changed, 7 insertions(+) diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c index 135aa6fc22..b6ca5cb9d1 100644 --- a/xen/arch/x86/hvm/emulate.c +++ b/xen/arch/x86/hvm/emulate.c @@ -2673,6 +2673,7 @@ static int _hvm_emulate_one(struct hvm_emulate_ctxt *= hvmemul_ctxt, =20 default: ASSERT_UNREACHABLE(); + return X86EMUL_UNHANDLEABLE; } =20 if ( hvmemul_ctxt->ctxt.retire.singlestep ) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 1d32f473a4..d7f195ba9a 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -4919,6 +4919,8 @@ static int do_altp2m_op( =20 default: ASSERT_UNREACHABLE(); + rc =3D -EOPNOTSUPP; + break; } =20 out: @@ -5020,6 +5022,8 @@ static int compat_altp2m_op( =20 default: ASSERT_UNREACHABLE(); + rc =3D -EOPNOTSUPP; + break; } =20 return rc; diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c index 9b6dc51f36..5787110a56 100644 --- a/xen/arch/x86/hvm/vmx/vmcs.c +++ b/xen/arch/x86/hvm/vmx/vmcs.c @@ -1446,6 +1446,7 @@ struct vmx_msr_entry *vmx_find_msr(const struct vcpu = *v, uint32_t msr, =20 default: ASSERT_UNREACHABLE(); + break; } =20 if ( !start ) @@ -1598,6 +1599,7 @@ int vmx_del_msr(struct vcpu *v, uint32_t msr, enum vm= x_msr_list_type type) =20 default: ASSERT_UNREACHABLE(); + return -EINVAL; } =20 if ( !start ) --=20 2.34.1