[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 11/24] XSM: make certain x86-specific hooks dependent upon PV=y


  • To: Jan Beulich <jbeulich@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: "Daniel P. Smith" <dpsmith@xxxxxxxxxxxxxxxxxxxx>
  • Date: Sun, 2 Aug 2026 11:08:55 -0400
  • Arc-authentication-results: i=1; mx.zohomail.com; dkim=pass header.i=apertussolutions.com; spf=pass smtp.mailfrom=dpsmith@xxxxxxxxxxxxxxxxxxxx; dmarc=pass header.from=<dpsmith@xxxxxxxxxxxxxxxxxxxx>
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785683331; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=VmVxueIYKCLre29nUNWrpK8gnn6byJI0KMoNwXHmXbQ=; b=j6gyWH4cPkZtqkqC2N2kHUSJjZ+7dcnaTRlL9WsXUidQ1kQ8Lj8pWs7COkKetGxQohnpeGHC+z+fgpeQdGK6p07vU1ADPt3W192g0PnRmPtA581yW6g9SBFywICJlghNZQ/HmXs+woiDSMd6Zpj0c9/4O7BsYkATZsIqhwMIQMk=
  • Arc-seal: i=1; a=rsa-sha256; t=1785683331; cv=none; d=zohomail.com; s=zohoarc; b=gkAqGa9mq9pC4fe6AcmrOrsZOfqoSQDpY3E+Ku9Xb8nAwFuD4kMkC62nUfpSL4cS0hJVpO8KTPxr2UMbZ4Wdg63nsPL7BRyw6YkijqiXQcSqC82E5/LtZnKjlVikYnEP5bnsbo10cRM2tdW/+XFWgnUcPKYlQCRHegAIbM+NcU4=
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=zoho header.d=apertussolutions.com header.i="dpsmith@xxxxxxxxxxxxxxxxxxxx" header.h="Message-ID:Date:MIME-Version:Subject:To:From:In-Reply-To:Content-Type:Content-Transfer-Encoding"
  • Delivery-date: Sun, 02 Aug 2026 15:08:58 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 7/28/26 9:18 AM, Jan Beulich wrote:
They're unreachable / dead otherwise.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -640,11 +640,6 @@ static XSM_INLINE int cf_check xsm_platf
  }
#ifdef CONFIG_X86
-static XSM_INLINE int cf_check xsm_do_mca(XSM_DEFAULT_VOID)
-{
-    XSM_ASSERT_ACTION(XSM_PRIV);
-    return xsm_default_action(action, current->domain, NULL);
-}
static XSM_INLINE int cf_check xsm_mem_sharing_op(
      XSM_DEFAULT_ARG struct domain *d, struct domain *cd, int op)
@@ -673,6 +668,14 @@ static XSM_INLINE int cf_check xsm_domai
      return xsm_default_action(action, current->domain, d);
  }
+#ifdef CONFIG_PV
+
+static XSM_INLINE int cf_check xsm_do_mca(XSM_DEFAULT_VOID)
+{
+    XSM_ASSERT_ACTION(XSM_PRIV);
+    return xsm_default_action(action, current->domain, NULL);
+}
+
  static XSM_INLINE int cf_check xsm_mmu_update(
      XSM_DEFAULT_ARG struct domain *d, struct domain *t, struct domain *f,
      uint32_t flags)
@@ -700,6 +703,8 @@ static XSM_INLINE int cf_check xsm_updat
      return xsm_default_action(action, d, f);
  }
+#endif /* CONFIG_PV */
+
  static XSM_INLINE int cf_check xsm_priv_mapping(
      XSM_DEFAULT_ARG struct domain *d, struct domain *t)
  {
--- a/xen/include/xsm/hooks.h
+++ b/xen/include/xsm/hooks.h
@@ -131,14 +131,16 @@ XSM_HOOK(int, mem_sharing_op, struct dom
  XSM_HOOK(int, platform_op, uint32_t)
#ifdef CONFIG_X86
-XSM_HOOK(int, do_mca)
  XSM_HOOK(int, apic, struct domain *, int)
  XSM_HOOK(int, machine_memory_map)
  XSM_HOOK(int, domain_memory_map, struct domain *)
+#ifdef CONFIG_PV
+XSM_HOOK(int, do_mca)
  XSM_HOOK(int, mmu_update, struct domain *, struct domain *, struct domain *,
                            uint32_t)
  XSM_HOOK(int, mmuext_op, struct domain *, struct domain *)
  XSM_HOOK(int, update_va_mapping, struct domain *, struct domain *, 
l1_pgentry_t)
+#endif /* CONFIG_PV */
  XSM_HOOK(int, priv_mapping, struct domain *, struct domain *)
  XSM_HOOK(int, ioport_permission, struct domain *, uint32_t, uint32_t, uint8_t)
  XSM_HOOK(int, ioport_mapping, struct domain *, uint32_t, uint32_t, uint8_t)
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1654,10 +1654,6 @@ static int cf_check flask_platform_op(ui
  }
#ifdef CONFIG_X86
-static int cf_check flask_do_mca(void)
-{
-    return domain_has_xen(current->domain, XEN__MCA_OP);
-}
static int flask_shadow_control(struct domain *d, unsigned int op)
  {
@@ -1783,6 +1779,13 @@ static int cf_check flask_domain_memory_
      return current_has_perm(d, SECCLASS_MMU, MMU__MEMORYMAP);
  }
+#ifdef CONFIG_PV
+
+static int cf_check flask_do_mca(void)
+{
+    return domain_has_xen(current->domain, XEN__MCA_OP);
+}
+
  static int cf_check flask_mmu_update(
      struct domain *d, struct domain *t, struct domain *f, uint32_t flags)
  {
@@ -1823,6 +1826,8 @@ static int cf_check flask_update_va_mapp
      return domain_has_perm(d, f, SECCLASS_MMU, map_perms);
  }
+#endif /* CONFIG_PV */
+
  static int cf_check flask_priv_mapping(struct domain *d, struct domain *t)
  {
      return domain_has_perm(d, t, SECCLASS_MMU, MMU__TARGET_HACK);


Acked-by: Daniel P. Smith <dpsmith@xxxxxxxxxxxxxxxxxxxx>



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.