From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244430; cv=none; d=zohomail.com; s=zohoarc; b=ZXqYz5dUca4DjTYGkEW1W10iZwlXEFeoeGJa/7K/X8Svp1ExbUTDmGUyLWY2o3USNJZQsFXD1xPEH2prq8a5JpOM/mtyaqHKFVWstS4WuvgFhu6d9BOLGjHgEHTyRQn5XbPlF8K649d6p3anQn3IeGTy3HjrEfAfDYzrRSgzu9U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244430; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SIGERphO0i/Nuw5bD0UnfYw1h2gUHzMmDOC+u1oYUA0=; b=fa6p/keCAAJlD6o3Q7bJqIZ+L9um9Y3H/iAuuAOsb6H0agaTXjiLTd4j+GJ9cGCp8ANNj7Qvwae8ZOqDn1N6rBk+/J6CqKdYFFaWuksWZZK9bTcKDj5Z2aLJBNJZ1goUmopzJ9UqqyZXhL3Z2UO8uVHTp1p81+jzfaaIEzp93FM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244430210325.5906813866126; Tue, 28 Jul 2026 06:13:50 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374014.1620964 (Exim 4.92) (envelope-from ) id 1wohcm-0002Bp-6m; Tue, 28 Jul 2026 13:13:36 +0000 Received: by outflank-mailman (output) from mailman id 1374014.1620964; Tue, 28 Jul 2026 13:13:36 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohcm-0002Bi-3r; Tue, 28 Jul 2026 13:13:36 +0000 Received: by outflank-mailman (input) for mailman id 1374014; Tue, 28 Jul 2026 13:13:34 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohck-0002BE-Jx for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:13:34 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohcj-00Ep6Q-PT for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:13:33 +0200 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68aafc-5cb7-0a2a0a5109dd-0a2a4505dc4e-6 for ; Tue, 28 Jul 2026 15:13:33 +0200 Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68aafd-4cb1-0a2a45050019-d1558032ad93-3 for ; Tue, 28 Jul 2026 15:13:33 +0200 Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-49558ce01afso28925495e9.1 for ; Tue, 28 Jul 2026 06:13:33 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-496c45cb67esm81802585e9.8.2026.07.28.06.13.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:13:32 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244413; x=1785849213; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=SIGERphO0i/Nuw5bD0UnfYw1h2gUHzMmDOC+u1oYUA0=; b=B8+JMz+ffa+F0ytF3NZXOCPOKJIw5rvINwxTuH897ZoXEwSkFrgr2ZKUZ/de1s5J/y YnPik7CSStKurEGHAx/49XMCykMsbgb6Z0/CMa3PZZDPb32yc8NeHZHNdBKMVEROVIBC 5/WSGwZiHHmcKDD9Mng4ePmUaTpiFrIJD5C0iDnx5tJaguEnid3FPpsU/4XyfYlVJda4 e3GVpS0a4MUwZHgfsBrN58WRib9nk5ksFNbtFdP07WR8d4ERoYpAi8FRJCg3vZ1ReSbZ DgZJLEkX3GCvLXUd1ANaqulySrUvsL3zKAHAEi7k1Vjzx8OH16P58SP0SpCQHy8T/9wu 3k+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244413; x=1785849213; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=SIGERphO0i/Nuw5bD0UnfYw1h2gUHzMmDOC+u1oYUA0=; b=kVNDYuIlquFl3K0Z9vfkxrVtzGZZdtIc24C/gos1fPsO70u2+CI5GfQi/48NUQq5h+ WKpr3BI+woVk9yO0WRTHc8P6c/dBAQ0bZwCtuqiHf87+066shF+armcetyrc7dBjl5XE Eza1JBuxgI5Yja1G2HxVGoCJ930XoiKh68bVa4VtMXzilvoOrWcfQRRKbkrVs2VhvAJy Ub1ehoZd4PXd0fY1YFwexymax1gM6ZdeUez/k9M7ocoetCfAZnp1xQ7nb8DWI2XXUlvn SfuD8+FusqRVNgLh+izHxJ57h/7txgL4bp8ePwAz5nM0+m0vN6sUb5z91gvNkEZI/W6u dEdg== X-Gm-Message-State: AOJu0YzpyBcgPndTXDsqyHXQSQ3Hrswd04KLNbrKmvRPYIzLVSxxgcp5 7f4FCQDmegVRYr676brAJt4deH/sCmwz/ThIVLfAvf2fE2iJICSQgB9NWiscwaqKqFTghOGm+z+ GqmhqRQ== X-Gm-Gg: AR+sD10D47FiyJ97l8IPPmW3fqXVEIZLDSyC/QsSRniRmDlga7Ni9pSuPch92yDke8b qvEHorXD2gW5Sw38WQlUJ+fDv7itrABHpI39r/mqRz7i8idOqa4c5mPqfWJB2FSUHR96Z3PzO5L 0Pg7VTX7ikzLxinNsA2QPAAkz9usfEG++tr3I+vTym+MER2gLGiHgG0leORVVQo/nfxg+RrFaTc 2KKaOckeU9j0+7q9lKeyLaOtHCL8j0MGSdbjn9y0TXraz1BupFI16n+8qKAKPsKZHkxZz+U2f73 RnW662zw/+fphKh6QtMyFh2JFq1/6MeOtalq7wlTm1kYS+csH7ZXKZMHebKGJxrfeRVb2uCRjBl nY3/v3STT5SaDS85KiDuaLDjM+1kiutAzWDDsMqu6szQu1SSxtc5U0YhdGckPy9JcC9HX+kmX8y HySGGmKwbfIeZIgDCRphcG/kGNV3beywVyi3SZyZSOVicRlpBTbc/UzdCwPtTfvwKCueXtvH0sa pxz X-Received: by 2002:a05:600c:8010:b0:495:3f5e:e7a with SMTP id 5b1f17b1804b1-496c6588a7cmr26586475e9.34.1785244412852; Tue, 28 Jul 2026 06:13:32 -0700 (PDT) Message-ID: <7487f138-e5e9-41d6-9291-f5eef42d09a1@suse.com> Date: Tue, 28 Jul 2026 15:13:31 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 01/24] XSM: reduce redundancy in hook machinery From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-c201ff/1785244413-71AAF2A1-7654CA52/0/0 X-purgate-type: clean X-purgate-size: 40839 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244431900158500 Content-Type: text/plain; charset="utf-8" Hook definition (in struct xsm_ops), wrappers, dummy_ops, and flask_ops need keeping in sync (including any involved #ifdef-ary), i.e. require consistent adjustments in multiple places when a change is necessary. Reduce this by introducing a multi-use helper header file. (However, hooks not taking xsm_default_t as first argument in the wrappers aren't covered.) As there's some re-arrangement of field order in struct xsm_ops anyway, also group together everything depending on SYSCTL=3Dy. Similarly move .mem_sharing_op() into the MEM_SHARING conditional. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- RFC: In principle dummy.h could also be covered, by further specifying both the expected xsm_default_t value and the actual operation as further arguments to XSM_HOOK(). I'm worried that this may end up a little unwieldy in hooks.h, though. Hooks not taking xsm_default_t as first argument could of course be adjusted to take one, at which point they could be covered here as well. Question is why there is this difference in the first place. .{alloc,free}_security_evtchns() and their dummy wrappers use struct evtchn[] notation, while xsm_{alloc,free}_security_evtchns() use struct evtchn *. Is there a reason for this inconsistency? --- /dev/null +++ b/xen/include/xsm/hooks.h @@ -0,0 +1,137 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +/* This file is intended to be included multiple times. */ + +#ifndef XSM_HOOK + +#include + +#define XSM_HOOK__(rtype, name, nargs, types...) \ + XSM_HOOK ## nargs(rtype, name, ## types) + +#define XSM_HOOK_(rtype, name, nargs, types...) \ + XSM_HOOK__(rtype, name, nargs, ## types) + +#define XSM_HOOK(rtype, name, types...) \ + XSM_HOOK_(rtype, name, count_args(types), ## types) + +#endif /* XSM_HOOK */ + +XSM_HOOK(int, domain_create, struct domain *, uint32_t) +XSM_HOOK(int, getdomaininfo, struct domain *) +XSM_HOOK(int, get_domain_state, struct domain *) + +#ifdef CONFIG_SYSCTL +XSM_HOOK(int, sysctl, const struct xen_sysctl *) +#endif + +XSM_HOOK(int, set_target, struct domain *, struct domain *) +XSM_HOOK(int, domctl, struct domain *, struct xen_domctl *) + +XSM_HOOK(int, evtchn_unbound, struct domain *, struct evtchn *, domid_t) +XSM_HOOK(int, evtchn_interdomain, struct domain *, struct evtchn *, + struct domain *, struct evtchn *) +XSM_HOOK(int, evtchn_send, struct domain *, struct evtchn *) +XSM_HOOK(int, evtchn_status, struct domain *, struct evtchn *) +XSM_HOOK(int, evtchn_reset, struct domain *, struct domain *) + +XSM_HOOK(int, grant_mapref, struct domain *, struct domain *, uint32_t) +XSM_HOOK(int, grant_unmapref, struct domain *, struct domain *) +XSM_HOOK(int, grant_setup, struct domain *, struct domain *) +XSM_HOOK(int, grant_transfer, struct domain *, struct domain *) +XSM_HOOK(int, grant_copy, struct domain *, struct domain *) +XSM_HOOK(int, grant_query_size, struct domain *, struct domain *) + +XSM_HOOK(int, init_hardware_domain, struct domain *) + +XSM_HOOK(int, get_pod_target, struct domain *) +XSM_HOOK(int, set_pod_target, struct domain *) + +XSM_HOOK(int, memory_exchange, struct domain *) +XSM_HOOK(int, memory_adjust_reservation, struct domain *, struct domain *) +XSM_HOOK(int, memory_stat_reservation, struct domain *, struct domain *) +XSM_HOOK(int, memory_pin_page, struct domain *, struct domain *, + struct page_info *) +XSM_HOOK(int, add_to_physmap, struct domain *, struct domain *) +XSM_HOOK(int, remove_from_physmap, struct domain *, struct domain *) +XSM_HOOK(int, map_gmfn_foreign, struct domain *, struct domain *) +XSM_HOOK(int, claim_pages, struct domain *) + +XSM_HOOK(int, console_io, struct domain *, int) + +XSM_HOOK(int, kexec) + +XSM_HOOK(int, schedop_shutdown, struct domain *, struct domain *) + +XSM_HOOK(int, map_domain_pirq, struct domain *) +XSM_HOOK(int, map_domain_irq, struct domain *, int, const void *) +XSM_HOOK(int, unmap_domain_pirq, struct domain *) +XSM_HOOK(int, unmap_domain_irq, struct domain *, int, const void *) +XSM_HOOK(int, bind_pt_irq, struct domain *, struct xen_domctl_bind_pt_irq = *) +XSM_HOOK(int, unbind_pt_irq, struct domain *, struct xen_domctl_bind_pt_ir= q *) + +XSM_HOOK(int, irq_permission, struct domain *, int, uint8_t) +XSM_HOOK(int, iomem_permission, struct domain *, uint64_t, uint64_t, uint8= _t) +XSM_HOOK(int, pci_config_permission, struct domain *, uint32_t, uint16_t, + uint16_t, uint8_t) + +XSM_HOOK(int, iomem_mapping, struct domain *, uint64_t, uint64_t, uint8_t) +XSM_HOOK(int, iomem_mapping_vpci, struct domain *, uint64_t, uint64_t, uin= t8_t) + +#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) +XSM_HOOK(int, get_device_group, uint32_t) +#endif + +XSM_HOOK(int, resource_plug_pci, uint32_t) +XSM_HOOK(int, resource_unplug_pci, uint32_t) +XSM_HOOK(int, resource_setup_pci, uint32_t) +XSM_HOOK(int, resource_setup_gsi, int) +XSM_HOOK(int, resource_setup_misc) + +XSM_HOOK(int, hypfs_op) + +XSM_HOOK(int, hvm_param, struct domain *, unsigned long) +XSM_HOOK(int, hvm_param_altp2mhvm, struct domain *) +XSM_HOOK(int, hvm_altp2mhvm_op, struct domain *, uint64_t, uint32_t) +XSM_HOOK(int, get_vnumainfo, struct domain *) + +#ifdef CONFIG_VM_EVENT +XSM_HOOK(int, mem_access, struct domain *) +#endif + +#ifdef CONFIG_MEM_PAGING +XSM_HOOK(int, mem_paging, struct domain *) +#endif + +#ifdef CONFIG_MEM_SHARING +XSM_HOOK(int, mem_sharing, struct domain *) +XSM_HOOK(int, mem_sharing_op, struct domain *, struct domain *, int) +#endif + +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 *) +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_pgen= try_t) +XSM_HOOK(int, priv_mapping, struct domain *, struct domain *) +XSM_HOOK(int, ioport_permission, struct domain *, uint32_t, uint32_t, uint= 8_t) +XSM_HOOK(int, ioport_mapping, struct domain *, uint32_t, uint32_t, uint8_t) +XSM_HOOK(int, pmu_op, struct domain *, unsigned int) +#endif /* CONFIG_X86 */ + +XSM_HOOK(int, dm_op, struct domain *) +XSM_HOOK(int, xen_version, uint32_t) +XSM_HOOK(int, domain_resource_map, struct domain *) + +#undef XSM_HOOK0 +#undef XSM_HOOK1 +#undef XSM_HOOK2 +#undef XSM_HOOK3 +#undef XSM_HOOK4 +#undef XSM_HOOK5 --- a/xen/include/xsm/xsm.h +++ b/xen/include/xsm/xsm.h @@ -41,6 +41,13 @@ enum xsm_default { }; typedef enum xsm_default xsm_default_t; =20 +#ifdef CONFIG_X86 +#define XSM_MMU_UPDATE_READ 1 +#define XSM_MMU_UPDATE_WRITE 2 +#define XSM_MMU_NORMAL_UPDATE 4 +#define XSM_MMU_MACHPHYS_UPDATE 8 +#endif /* CONFIG_X86 */ + /* * !!! WARNING !!! * @@ -54,131 +61,36 @@ struct xsm_ops { int (*set_system_active)(void); void (*security_domaininfo)(struct domain *d, struct xen_domctl_getdomaininfo *info); - int (*domain_create)(struct domain *d, uint32_t ssidref); - int (*getdomaininfo)(struct domain *d); - int (*set_target)(struct domain *d, struct domain *e); - int (*domctl)(struct domain *d, struct xen_domctl *op); -#ifdef CONFIG_SYSCTL - int (*sysctl)(const struct xen_sysctl *op); -#endif =20 - int (*evtchn_unbound)(struct domain *d, struct evtchn *chn, domid_t id= 2); - int (*evtchn_interdomain)(struct domain *d1, struct evtchn *chn1, - struct domain *d2, struct evtchn *chn2); +#define XSM_HOOK0(rtype, name) rtype (*name)(void); +#define XSM_HOOK1(rtype, name, type1) \ + rtype (*name)(type1 arg1); +#define XSM_HOOK2(rtype, name, type1, type2) \ + rtype (*name)(type1 arg1, type2 arg2); +#define XSM_HOOK3(rtype, name, type1, type2, type3) \ + rtype (*name)(type1 arg1, type2 arg2, type3 arg3); +#define XSM_HOOK4(rtype, name, type1, type2, type3, type4) \ + rtype (*name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4); +#define XSM_HOOK5(rtype, name, type1, type2, type3, type4, type5) \ + rtype (*name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 ar= g5); + +#include "hooks.h" + void (*evtchn_close_post)(struct evtchn *chn); - int (*evtchn_send)(struct domain *d, struct evtchn *chn); - int (*evtchn_status)(struct domain *d, struct evtchn *chn); - int (*evtchn_reset)(struct domain *d1, struct domain *d2); - - int (*grant_mapref)(struct domain *d1, struct domain *d2, uint32_t fla= gs); - int (*grant_unmapref)(struct domain *d1, struct domain *d2); - int (*grant_setup)(struct domain *d1, struct domain *d2); - int (*grant_transfer)(struct domain *d1, struct domain *d2); - int (*grant_copy)(struct domain *d1, struct domain *d2); - int (*grant_query_size)(struct domain *d1, struct domain *d2); =20 int (*alloc_security_domain)(struct domain *d); void (*free_security_domain)(struct domain *d); int (*alloc_security_evtchns)(struct evtchn chn[], unsigned int nr); void (*free_security_evtchns)(struct evtchn chn[], unsigned int nr); char *(*show_security_evtchn)(struct domain *d, const struct evtchn *c= hn); - int (*init_hardware_domain)(struct domain *d); - - int (*get_pod_target)(struct domain *d); - int (*set_pod_target)(struct domain *d); - int (*memory_exchange)(struct domain *d); - int (*memory_adjust_reservation)(struct domain *d1, struct domain *d2); - int (*memory_stat_reservation)(struct domain *d1, struct domain *d2); - int (*memory_pin_page)(struct domain *d1, struct domain *d2, - struct page_info *page); - int (*add_to_physmap)(struct domain *d1, struct domain *d2); - int (*remove_from_physmap)(struct domain *d1, struct domain *d2); - int (*map_gmfn_foreign)(struct domain *d, struct domain *t); - int (*claim_pages)(struct domain *d); - - int (*console_io)(struct domain *d, int cmd); - - int (*kexec)(void); - int (*schedop_shutdown)(struct domain *d1, struct domain *d2); =20 char *(*show_irq_sid)(int irq); - int (*map_domain_pirq)(struct domain *d); - int (*map_domain_irq)(struct domain *d, int irq, const void *data); - int (*unmap_domain_pirq)(struct domain *d); - int (*unmap_domain_irq)(struct domain *d, int irq, const void *data); - int (*bind_pt_irq)(struct domain *d, struct xen_domctl_bind_pt_irq *bi= nd); - int (*unbind_pt_irq)(struct domain *d, struct xen_domctl_bind_pt_irq *= bind); - int (*irq_permission)(struct domain *d, int pirq, uint8_t allow); - int (*iomem_permission)(struct domain *d, uint64_t s, uint64_t e, - uint8_t allow); - int (*iomem_mapping)(struct domain *d, uint64_t s, uint64_t e, - uint8_t allow); - int (*iomem_mapping_vpci)(struct domain *d, uint64_t s, uint64_t e, - uint8_t allow); - int (*pci_config_permission)(struct domain *d, uint32_t machine_bdf, - uint16_t start, uint16_t end, uint8_t acc= ess); - -#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) - int (*get_device_group)(uint32_t machine_bdf); -#endif - - int (*resource_plug_pci)(uint32_t machine_bdf); - int (*resource_unplug_pci)(uint32_t machine_bdf); - int (*resource_setup_pci)(uint32_t machine_bdf); - int (*resource_setup_gsi)(int gsi); - int (*resource_setup_misc)(void); - - int (*hypfs_op)(void); =20 long (*do_xsm_op)(XEN_GUEST_HANDLE_PARAM(void) op); #ifdef CONFIG_COMPAT int (*do_compat_op)(XEN_GUEST_HANDLE_PARAM(void) op); #endif =20 - int (*hvm_param)(struct domain *d, unsigned long op); - int (*hvm_param_altp2mhvm)(struct domain *d); - int (*hvm_altp2mhvm_op)(struct domain *d, uint64_t mode, uint32_t op); - int (*get_vnumainfo)(struct domain *d); - -#ifdef CONFIG_VM_EVENT - int (*mem_access)(struct domain *d); -#endif - -#ifdef CONFIG_MEM_PAGING - int (*mem_paging)(struct domain *d); -#endif - -#ifdef CONFIG_MEM_SHARING - int (*mem_sharing)(struct domain *d); -#endif - - int (*platform_op)(uint32_t cmd); - -#ifdef CONFIG_X86 - int (*do_mca)(void); - int (*mem_sharing_op)(struct domain *d, struct domain *cd, int op); - int (*apic)(struct domain *d, int cmd); - int (*machine_memory_map)(void); - int (*domain_memory_map)(struct domain *d); -#define XSM_MMU_UPDATE_READ 1 -#define XSM_MMU_UPDATE_WRITE 2 -#define XSM_MMU_NORMAL_UPDATE 4 -#define XSM_MMU_MACHPHYS_UPDATE 8 - int (*mmu_update)(struct domain *d, struct domain *t, - struct domain *f, uint32_t flags); - int (*mmuext_op)(struct domain *d, struct domain *f); - int (*update_va_mapping)(struct domain *d, struct domain *f, - l1_pgentry_t pte); - int (*priv_mapping)(struct domain *d, struct domain *t); - int (*ioport_permission)(struct domain *d, uint32_t s, uint32_t e, - uint8_t allow); - int (*ioport_mapping)(struct domain *d, uint32_t s, uint32_t e, - uint8_t allow); - int (*pmu_op)(struct domain *d, unsigned int op); -#endif - int (*dm_op)(struct domain *d); - int (*xen_version)(uint32_t cmd); - int (*domain_resource_map)(struct domain *d); #ifdef CONFIG_ARGO int (*argo_enable)(const struct domain *d); int (*argo_register_single_source)(const struct domain *d, @@ -186,7 +98,6 @@ struct xsm_ops { int (*argo_register_any_source)(const struct domain *d); int (*argo_send)(const struct domain *d, const struct domain *t); #endif - int (*get_domain_state)(struct domain *d); }; =20 #ifdef CONFIG_XSM @@ -206,113 +117,57 @@ static inline void xsm_security_domainin alternative_vcall(xsm_ops.security_domaininfo, d, info); } =20 -static inline int xsm_domain_create( - xsm_default_t def, struct domain *d, uint32_t ssidref) -{ - return alternative_call(xsm_ops.domain_create, d, ssidref); -} +#define XSM_ALT_void alternative_vcall +#define XSM_ALT_int return alternative_call =20 -static inline int xsm_getdomaininfo(xsm_default_t def, struct domain *d) -{ - return alternative_call(xsm_ops.getdomaininfo, d); +#define XSM_HOOK0(rtype, name) \ +static inline rtype xsm_ ## name(xsm_default_t def) \ +{ \ + XSM_ALT_ ## rtype(xsm_ops.name); \ } =20 -static inline int xsm_get_domain_state(xsm_default_t def, struct domain *d) -{ - return alternative_call(xsm_ops.get_domain_state, d); +#define XSM_HOOK1(rtype, name, type1) \ +static inline rtype xsm_ ## name(xsm_default_t def, type1 arg1) \ +{ \ + XSM_ALT_ ## rtype(xsm_ops.name, arg1); \ } =20 -static inline int xsm_set_target( - xsm_default_t def, struct domain *d, struct domain *e) -{ - return alternative_call(xsm_ops.set_target, d, e); +#define XSM_HOOK2(rtype, name, type1, type2) \ +static inline rtype xsm_ ## name( \ + xsm_default_t def, type1 arg1, type2 arg2) \ +{ \ + XSM_ALT_ ## rtype(xsm_ops.name, arg1, arg2); \ } =20 -static inline int xsm_domctl(xsm_default_t def, struct domain *d, - struct xen_domctl *op) -{ - return alternative_call(xsm_ops.domctl, d, op); +#define XSM_HOOK3(rtype, name, type1, type2, type3) \ +static inline rtype xsm_ ## name( \ + xsm_default_t def, type1 arg1, type2 arg2, type3 arg3) \ +{ \ + XSM_ALT_ ## rtype(xsm_ops.name, arg1, arg2, arg3); \ } =20 -#ifdef CONFIG_SYSCTL -static inline int xsm_sysctl(xsm_default_t def, const struct xen_sysctl *o= p) -{ - return alternative_call(xsm_ops.sysctl, op); +#define XSM_HOOK4(rtype, name, type1, type2, type3, type4) \ +static inline rtype xsm_ ## name( \ + xsm_default_t def, type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ +{ \ + XSM_ALT_ ## rtype(xsm_ops.name, arg1, arg2, arg3, arg4); \ } -#endif =20 -static inline int xsm_evtchn_unbound( - xsm_default_t def, struct domain *d1, struct evtchn *chn, domid_t id2) -{ - return alternative_call(xsm_ops.evtchn_unbound, d1, chn, id2); +#define XSM_HOOK5(rtype, name, type1, type2, type3, type4, type5) \ +static inline rtype xsm_ ## name( \ + xsm_default_t def, type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ + type4 arg5) \ +{ \ + XSM_ALT_ ## rtype(xsm_ops.name, arg1, arg2, arg3, arg4, arg5); \ } =20 -static inline int xsm_evtchn_interdomain( - xsm_default_t def, struct domain *d1, struct evtchn *chan1, - struct domain *d2, struct evtchn *chan2) -{ - return alternative_call(xsm_ops.evtchn_interdomain, d1, chan1, d2, cha= n2); -} +#include "hooks.h" =20 static inline void xsm_evtchn_close_post(struct evtchn *chn) { alternative_vcall(xsm_ops.evtchn_close_post, chn); } =20 -static inline int xsm_evtchn_send( - xsm_default_t def, struct domain *d, struct evtchn *chn) -{ - return alternative_call(xsm_ops.evtchn_send, d, chn); -} - -static inline int xsm_evtchn_status( - xsm_default_t def, struct domain *d, struct evtchn *chn) -{ - return alternative_call(xsm_ops.evtchn_status, d, chn); -} - -static inline int xsm_evtchn_reset( - xsm_default_t def, struct domain *d1, struct domain *d2) -{ - return alternative_call(xsm_ops.evtchn_reset, d1, d2); -} - -static inline int xsm_grant_mapref( - xsm_default_t def, struct domain *d1, struct domain *d2, uint32_t flag= s) -{ - return alternative_call(xsm_ops.grant_mapref, d1, d2, flags); -} - -static inline int xsm_grant_unmapref( - xsm_default_t def, struct domain *d1, struct domain *d2) -{ - return alternative_call(xsm_ops.grant_unmapref, d1, d2); -} - -static inline int xsm_grant_setup( - xsm_default_t def, struct domain *d1, struct domain *d2) -{ - return alternative_call(xsm_ops.grant_setup, d1, d2); -} - -static inline int xsm_grant_transfer( - xsm_default_t def, struct domain *d1, struct domain *d2) -{ - return alternative_call(xsm_ops.grant_transfer, d1, d2); -} - -static inline int xsm_grant_copy( - xsm_default_t def, struct domain *d1, struct domain *d2) -{ - return alternative_call(xsm_ops.grant_copy, d1, d2); -} - -static inline int xsm_grant_query_size( - xsm_default_t def, struct domain *d1, struct domain *d2) -{ - return alternative_call(xsm_ops.grant_query_size, d1, d2); -} - static inline int xsm_alloc_security_domain(struct domain *d) { return alternative_call(xsm_ops.alloc_security_domain, d); @@ -341,193 +196,11 @@ static inline char *xsm_show_security_ev return alternative_call(xsm_ops.show_security_evtchn, d, chn); } =20 -static inline int xsm_init_hardware_domain(xsm_default_t def, struct domai= n *d) -{ - return alternative_call(xsm_ops.init_hardware_domain, d); -} - -static inline int xsm_get_pod_target(xsm_default_t def, struct domain *d) -{ - return alternative_call(xsm_ops.get_pod_target, d); -} - -static inline int xsm_set_pod_target(xsm_default_t def, struct domain *d) -{ - return alternative_call(xsm_ops.set_pod_target, d); -} - -static inline int xsm_memory_exchange(xsm_default_t def, struct domain *d) -{ - return alternative_call(xsm_ops.memory_exchange, d); -} - -static inline int xsm_memory_adjust_reservation( - xsm_default_t def, struct domain *d1, struct domain *d2) -{ - return alternative_call(xsm_ops.memory_adjust_reservation, d1, d2); -} - -static inline int xsm_memory_stat_reservation( - xsm_default_t def, struct domain *d1, struct domain *d2) -{ - return alternative_call(xsm_ops.memory_stat_reservation, d1, d2); -} - -static inline int xsm_memory_pin_page( - xsm_default_t def, struct domain *d1, struct domain *d2, - struct page_info *page) -{ - return alternative_call(xsm_ops.memory_pin_page, d1, d2, page); -} - -static inline int xsm_add_to_physmap( - xsm_default_t def, struct domain *d1, struct domain *d2) -{ - return alternative_call(xsm_ops.add_to_physmap, d1, d2); -} - -static inline int xsm_remove_from_physmap( - xsm_default_t def, struct domain *d1, struct domain *d2) -{ - return alternative_call(xsm_ops.remove_from_physmap, d1, d2); -} - -static inline int xsm_map_gmfn_foreign( - xsm_default_t def, struct domain *d, struct domain *t) -{ - return alternative_call(xsm_ops.map_gmfn_foreign, d, t); -} - -static inline int xsm_claim_pages(xsm_default_t def, struct domain *d) -{ - return alternative_call(xsm_ops.claim_pages, d); -} - -static inline int xsm_console_io(xsm_default_t def, struct domain *d, int = cmd) -{ - return alternative_call(xsm_ops.console_io, d, cmd); -} - -static inline int xsm_kexec(xsm_default_t def) -{ - return alternative_call(xsm_ops.kexec); -} - -static inline int xsm_schedop_shutdown( - xsm_default_t def, struct domain *d1, struct domain *d2) -{ - return alternative_call(xsm_ops.schedop_shutdown, d1, d2); -} - static inline char *xsm_show_irq_sid(int irq) { return alternative_call(xsm_ops.show_irq_sid, irq); } =20 -static inline int xsm_map_domain_pirq(xsm_default_t def, struct domain *d) -{ - return alternative_call(xsm_ops.map_domain_pirq, d); -} - -static inline int xsm_map_domain_irq( - xsm_default_t def, struct domain *d, int irq, void *data) -{ - return alternative_call(xsm_ops.map_domain_irq, d, irq, data); -} - -static inline int xsm_unmap_domain_pirq(xsm_default_t def, struct domain *= d) -{ - return alternative_call(xsm_ops.unmap_domain_pirq, d); -} - -static inline int xsm_unmap_domain_irq( - xsm_default_t def, struct domain *d, int irq, void *data) -{ - return alternative_call(xsm_ops.unmap_domain_irq, d, irq, data); -} - -static inline int xsm_bind_pt_irq( - xsm_default_t def, struct domain *d, struct xen_domctl_bind_pt_irq *bi= nd) -{ - return alternative_call(xsm_ops.bind_pt_irq, d, bind); -} - -static inline int xsm_unbind_pt_irq( - xsm_default_t def, struct domain *d, struct xen_domctl_bind_pt_irq *bi= nd) -{ - return alternative_call(xsm_ops.unbind_pt_irq, d, bind); -} - -static inline int xsm_irq_permission( - xsm_default_t def, struct domain *d, int pirq, uint8_t allow) -{ - return alternative_call(xsm_ops.irq_permission, d, pirq, allow); -} - -static inline int xsm_iomem_permission( - xsm_default_t def, struct domain *d, uint64_t s, uint64_t e, uint8_t a= llow) -{ - return alternative_call(xsm_ops.iomem_permission, d, s, e, allow); -} - -static inline int xsm_iomem_mapping( - xsm_default_t def, struct domain *d, uint64_t s, uint64_t e, uint8_t a= llow) -{ - return alternative_call(xsm_ops.iomem_mapping, d, s, e, allow); -} - -static inline int xsm_iomem_mapping_vpci( - xsm_default_t def, struct domain *d, uint64_t s, uint64_t e, uint8_t a= llow) -{ - return alternative_call(xsm_ops.iomem_mapping_vpci, d, s, e, allow); -} - -static inline int xsm_pci_config_permission( - xsm_default_t def, struct domain *d, uint32_t machine_bdf, uint16_t st= art, - uint16_t end, uint8_t access) -{ - return alternative_call(xsm_ops.pci_config_permission, d, machine_bdf,= start, end, access); -} - -#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) -static inline int xsm_get_device_group(xsm_default_t def, uint32_t machine= _bdf) -{ - return alternative_call(xsm_ops.get_device_group, machine_bdf); -} -#endif /* HAS_PASSTHROUGH && HAS_PCI) */ - -static inline int xsm_resource_plug_pci(xsm_default_t def, uint32_t machin= e_bdf) -{ - return alternative_call(xsm_ops.resource_plug_pci, machine_bdf); -} - -static inline int xsm_resource_unplug_pci( - xsm_default_t def, uint32_t machine_bdf) -{ - return alternative_call(xsm_ops.resource_unplug_pci, machine_bdf); -} - -static inline int xsm_resource_setup_pci( - xsm_default_t def, uint32_t machine_bdf) -{ - return alternative_call(xsm_ops.resource_setup_pci, machine_bdf); -} - -static inline int xsm_resource_setup_gsi(xsm_default_t def, int gsi) -{ - return alternative_call(xsm_ops.resource_setup_gsi, gsi); -} - -static inline int xsm_resource_setup_misc(xsm_default_t def) -{ - return alternative_call(xsm_ops.resource_setup_misc); -} - -static inline int xsm_hypfs_op(xsm_default_t def) -{ - return alternative_call(xsm_ops.hypfs_op); -} - static inline long xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op) { return alternative_call(xsm_ops.do_xsm_op, op); @@ -540,141 +213,6 @@ static inline int xsm_do_compat_op(XEN_G } #endif =20 -static inline int xsm_hvm_param( - xsm_default_t def, struct domain *d, unsigned long op) -{ - return alternative_call(xsm_ops.hvm_param, d, op); -} - -static inline int xsm_hvm_param_altp2mhvm(xsm_default_t def, struct domain= *d) -{ - return alternative_call(xsm_ops.hvm_param_altp2mhvm, d); -} - -static inline int xsm_hvm_altp2mhvm_op( - xsm_default_t def, struct domain *d, uint64_t mode, uint32_t op) -{ - return alternative_call(xsm_ops.hvm_altp2mhvm_op, d, mode, op); -} - -static inline int xsm_get_vnumainfo(xsm_default_t def, struct domain *d) -{ - return alternative_call(xsm_ops.get_vnumainfo, d); -} - -#ifdef CONFIG_VM_EVENT -static inline int xsm_mem_access(xsm_default_t def, struct domain *d) -{ - return alternative_call(xsm_ops.mem_access, d); -} -#endif - -#ifdef CONFIG_MEM_PAGING -static inline int xsm_mem_paging(xsm_default_t def, struct domain *d) -{ - return alternative_call(xsm_ops.mem_paging, d); -} -#endif - -#ifdef CONFIG_MEM_SHARING -static inline int xsm_mem_sharing(xsm_default_t def, struct domain *d) -{ - return alternative_call(xsm_ops.mem_sharing, d); -} -#endif - -static inline int xsm_platform_op(xsm_default_t def, uint32_t op) -{ - return alternative_call(xsm_ops.platform_op, op); -} - -#ifdef CONFIG_X86 -static inline int xsm_do_mca(xsm_default_t def) -{ - return alternative_call(xsm_ops.do_mca); -} - -static inline int xsm_mem_sharing_op( - xsm_default_t def, struct domain *d, struct domain *cd, int op) -{ - return alternative_call(xsm_ops.mem_sharing_op, d, cd, op); -} - -static inline int xsm_apic(xsm_default_t def, struct domain *d, int cmd) -{ - return alternative_call(xsm_ops.apic, d, cmd); -} - -static inline int xsm_machine_memory_map(xsm_default_t def) -{ - return alternative_call(xsm_ops.machine_memory_map); -} - -static inline int xsm_domain_memory_map(xsm_default_t def, struct domain *= d) -{ - return alternative_call(xsm_ops.domain_memory_map, d); -} - -static inline int xsm_mmu_update( - xsm_default_t def, struct domain *d, struct domain *t, struct domain *= f, - uint32_t flags) -{ - return alternative_call(xsm_ops.mmu_update, d, t, f, flags); -} - -static inline int xsm_mmuext_op( - xsm_default_t def, struct domain *d, struct domain *f) -{ - return alternative_call(xsm_ops.mmuext_op, d, f); -} - -static inline int xsm_update_va_mapping( - xsm_default_t def, struct domain *d, struct domain *f, l1_pgentry_t pt= e) -{ - return alternative_call(xsm_ops.update_va_mapping, d, f, pte); -} - -static inline int xsm_priv_mapping( - xsm_default_t def, struct domain *d, struct domain *t) -{ - return alternative_call(xsm_ops.priv_mapping, d, t); -} - -static inline int xsm_ioport_permission( - xsm_default_t def, struct domain *d, uint32_t s, uint32_t e, uint8_t a= llow) -{ - return alternative_call(xsm_ops.ioport_permission, d, s, e, allow); -} - -static inline int xsm_ioport_mapping( - xsm_default_t def, struct domain *d, uint32_t s, uint32_t e, uint8_t a= llow) -{ - return alternative_call(xsm_ops.ioport_mapping, d, s, e, allow); -} - -static inline int xsm_pmu_op( - xsm_default_t def, struct domain *d, unsigned int op) -{ - return alternative_call(xsm_ops.pmu_op, d, op); -} - -#endif /* CONFIG_X86 */ - -static inline int xsm_dm_op(xsm_default_t def, struct domain *d) -{ - return alternative_call(xsm_ops.dm_op, d); -} - -static inline int xsm_xen_version(xsm_default_t def, uint32_t op) -{ - return alternative_call(xsm_ops.xen_version, op); -} - -static inline int xsm_domain_resource_map(xsm_default_t def, struct domain= *d) -{ - return alternative_call(xsm_ops.domain_resource_map, d); -} - #ifdef CONFIG_ARGO static inline int xsm_argo_enable(const struct domain *d) { --- a/xen/xsm/dummy.c +++ b/xen/xsm/dummy.c @@ -16,124 +16,37 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops =3D { .set_system_active =3D xsm_set_system_active, .security_domaininfo =3D xsm_security_domaininfo, - .domain_create =3D xsm_domain_create, - .getdomaininfo =3D xsm_getdomaininfo, - .set_target =3D xsm_set_target, - .domctl =3D xsm_domctl, -#ifdef CONFIG_SYSCTL - .sysctl =3D xsm_sysctl, -#endif =20 - .evtchn_unbound =3D xsm_evtchn_unbound, - .evtchn_interdomain =3D xsm_evtchn_interdomain, +#define XSM_HOOK0(rtype, name) .name =3D xsm_ ## name, +#define XSM_HOOK1(rtype, name, ...) XSM_HOOK0(rtype, name) +#define XSM_HOOK2(rtype, name, ...) XSM_HOOK0(rtype, name) +#define XSM_HOOK3(rtype, name, ...) XSM_HOOK0(rtype, name) +#define XSM_HOOK4(rtype, name, ...) XSM_HOOK0(rtype, name) +#define XSM_HOOK5(rtype, name, ...) XSM_HOOK0(rtype, name) + +#include + .evtchn_close_post =3D xsm_evtchn_close_post, - .evtchn_send =3D xsm_evtchn_send, - .evtchn_status =3D xsm_evtchn_status, - .evtchn_reset =3D xsm_evtchn_reset, - - .grant_mapref =3D xsm_grant_mapref, - .grant_unmapref =3D xsm_grant_unmapref, - .grant_setup =3D xsm_grant_setup, - .grant_transfer =3D xsm_grant_transfer, - .grant_copy =3D xsm_grant_copy, - .grant_query_size =3D xsm_grant_query_size, =20 .alloc_security_domain =3D xsm_alloc_security_domain, .free_security_domain =3D xsm_free_security_domain, .alloc_security_evtchns =3D xsm_alloc_security_evtchns, .free_security_evtchns =3D xsm_free_security_evtchns, .show_security_evtchn =3D xsm_show_security_evtchn, - .init_hardware_domain =3D xsm_init_hardware_domain, - - .get_pod_target =3D xsm_get_pod_target, - .set_pod_target =3D xsm_set_pod_target, - - .memory_exchange =3D xsm_memory_exchange, - .memory_adjust_reservation =3D xsm_memory_adjust_reservation, - .memory_stat_reservation =3D xsm_memory_stat_reservation, - .memory_pin_page =3D xsm_memory_pin_page, - .claim_pages =3D xsm_claim_pages, - - .console_io =3D xsm_console_io, - - .kexec =3D xsm_kexec, - .schedop_shutdown =3D xsm_schedop_shutdown, =20 .show_irq_sid =3D xsm_show_irq_sid, - .map_domain_pirq =3D xsm_map_domain_pirq, - .map_domain_irq =3D xsm_map_domain_irq, - .unmap_domain_pirq =3D xsm_unmap_domain_pirq, - .unmap_domain_irq =3D xsm_unmap_domain_irq, - .bind_pt_irq =3D xsm_bind_pt_irq, - .unbind_pt_irq =3D xsm_unbind_pt_irq, - .irq_permission =3D xsm_irq_permission, - .iomem_permission =3D xsm_iomem_permission, - .iomem_mapping =3D xsm_iomem_mapping, - .iomem_mapping_vpci =3D xsm_iomem_mapping_vpci, - .pci_config_permission =3D xsm_pci_config_permission, - .get_vnumainfo =3D xsm_get_vnumainfo, - -#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) - .get_device_group =3D xsm_get_device_group, -#endif - - .resource_plug_pci =3D xsm_resource_plug_pci, - .resource_unplug_pci =3D xsm_resource_unplug_pci, - .resource_setup_pci =3D xsm_resource_setup_pci, - .resource_setup_gsi =3D xsm_resource_setup_gsi, - .resource_setup_misc =3D xsm_resource_setup_misc, - - .hypfs_op =3D xsm_hypfs_op, - .hvm_param =3D xsm_hvm_param, - .hvm_param_altp2mhvm =3D xsm_hvm_param_altp2mhvm, - .hvm_altp2mhvm_op =3D xsm_hvm_altp2mhvm_op, =20 .do_xsm_op =3D xsm_do_xsm_op, #ifdef CONFIG_COMPAT .do_compat_op =3D xsm_do_compat_op, #endif =20 - .add_to_physmap =3D xsm_add_to_physmap, - .remove_from_physmap =3D xsm_remove_from_physmap, - .map_gmfn_foreign =3D xsm_map_gmfn_foreign, - -#ifdef CONFIG_VM_EVENT - .mem_access =3D xsm_mem_access, -#endif - -#ifdef CONFIG_MEM_PAGING - .mem_paging =3D xsm_mem_paging, -#endif - -#ifdef CONFIG_MEM_SHARING - .mem_sharing =3D xsm_mem_sharing, -#endif - - .platform_op =3D xsm_platform_op, -#ifdef CONFIG_X86 - .do_mca =3D xsm_do_mca, - .mem_sharing_op =3D xsm_mem_sharing_op, - .apic =3D xsm_apic, - .machine_memory_map =3D xsm_machine_memory_map, - .domain_memory_map =3D xsm_domain_memory_map, - .mmu_update =3D xsm_mmu_update, - .mmuext_op =3D xsm_mmuext_op, - .update_va_mapping =3D xsm_update_va_mapping, - .priv_mapping =3D xsm_priv_mapping, - .ioport_permission =3D xsm_ioport_permission, - .ioport_mapping =3D xsm_ioport_mapping, - .pmu_op =3D xsm_pmu_op, -#endif - .dm_op =3D xsm_dm_op, - .xen_version =3D xsm_xen_version, - .domain_resource_map =3D xsm_domain_resource_map, #ifdef CONFIG_ARGO .argo_enable =3D xsm_argo_enable, .argo_register_single_source =3D xsm_argo_register_single_source, .argo_register_any_source =3D xsm_argo_register_any_source, .argo_send =3D xsm_argo_send, #endif - .get_domain_state =3D xsm_get_domain_state, }; =20 void __init xsm_fixup_ops(struct xsm_ops *ops) --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1215,6 +1215,7 @@ static int cf_check flask_iomem_mapping( { return flask_iomem_permission(d, start, end, access); } +#define flask_iomem_mapping_vpci flask_iomem_mapping =20 static int cf_check flask_pci_config_permission( struct domain *d, uint32_t machine_bdf, uint16_t start, uint16_t end, @@ -1713,6 +1714,7 @@ static int cf_check flask_ioport_mapping return flask_ioport_permission(d, start, end, access); } =20 +#ifdef CONFIG_MEM_SHARING static int cf_check flask_mem_sharing_op( struct domain *d, struct domain *cd, int op) { @@ -1721,6 +1723,7 @@ static int cf_check flask_mem_sharing_op return rc; return domain_has_perm(d, cd, SECCLASS_HVM, HVM__SHARE_MEM); } +#endif =20 static int cf_check flask_apic(struct domain *d, int cmd) { @@ -1911,125 +1914,38 @@ static int cf_check flask_get_domain_sta static const struct xsm_ops __initconst_cf_clobber flask_ops =3D { .set_system_active =3D flask_set_system_active, .security_domaininfo =3D flask_security_domaininfo, - .domain_create =3D flask_domain_create, - .getdomaininfo =3D flask_getdomaininfo, - .set_target =3D flask_set_target, - .domctl =3D flask_domctl, -#ifdef CONFIG_SYSCTL - .sysctl =3D flask_sysctl, -#endif =20 - .evtchn_unbound =3D flask_evtchn_unbound, - .evtchn_interdomain =3D flask_evtchn_interdomain, +#define XSM_HOOK0(rtype, name) .name =3D flask_ ## name, +#define XSM_HOOK1(rtype, name, ...) XSM_HOOK0(rtype, name) +#define XSM_HOOK2(rtype, name, ...) XSM_HOOK0(rtype, name) +#define XSM_HOOK3(rtype, name, ...) XSM_HOOK0(rtype, name) +#define XSM_HOOK4(rtype, name, ...) XSM_HOOK0(rtype, name) +#define XSM_HOOK5(rtype, name, ...) XSM_HOOK0(rtype, name) + +#include + .evtchn_close_post =3D flask_evtchn_close_post, - .evtchn_send =3D flask_evtchn_send, - .evtchn_status =3D flask_evtchn_status, - .evtchn_reset =3D flask_evtchn_reset, - - .grant_mapref =3D flask_grant_mapref, - .grant_unmapref =3D flask_grant_unmapref, - .grant_setup =3D flask_grant_setup, - .grant_transfer =3D flask_grant_transfer, - .grant_copy =3D flask_grant_copy, - .grant_query_size =3D flask_grant_query_size, =20 .alloc_security_domain =3D flask_domain_alloc_security, .free_security_domain =3D flask_domain_free_security, .alloc_security_evtchns =3D flask_alloc_security_evtchns, .free_security_evtchns =3D flask_free_security_evtchns, .show_security_evtchn =3D flask_show_security_evtchn, - .init_hardware_domain =3D flask_init_hardware_domain, - - .get_pod_target =3D flask_get_pod_target, - .set_pod_target =3D flask_set_pod_target, - .memory_exchange =3D flask_memory_exchange, - .memory_adjust_reservation =3D flask_memory_adjust_reservation, - .memory_stat_reservation =3D flask_memory_stat_reservation, - .memory_pin_page =3D flask_memory_pin_page, - .claim_pages =3D flask_claim_pages, - - .console_io =3D flask_console_io, - - .kexec =3D flask_kexec, - .schedop_shutdown =3D flask_schedop_shutdown, =20 .show_irq_sid =3D flask_show_irq_sid, =20 - .map_domain_pirq =3D flask_map_domain_pirq, - .map_domain_irq =3D flask_map_domain_irq, - .unmap_domain_pirq =3D flask_unmap_domain_pirq, - .unmap_domain_irq =3D flask_unmap_domain_irq, - .bind_pt_irq =3D flask_bind_pt_irq, - .unbind_pt_irq =3D flask_unbind_pt_irq, - .irq_permission =3D flask_irq_permission, - .iomem_permission =3D flask_iomem_permission, - .iomem_mapping =3D flask_iomem_mapping, - .iomem_mapping_vpci =3D flask_iomem_mapping, - .pci_config_permission =3D flask_pci_config_permission, - - .resource_plug_pci =3D flask_resource_plug_pci, - .resource_unplug_pci =3D flask_resource_unplug_pci, - .resource_setup_pci =3D flask_resource_setup_pci, - .resource_setup_gsi =3D flask_resource_setup_gsi, - .resource_setup_misc =3D flask_resource_setup_misc, - - .hypfs_op =3D flask_hypfs_op, - .hvm_param =3D flask_hvm_param, - .hvm_param_altp2mhvm =3D flask_hvm_param_altp2mhvm, - .hvm_altp2mhvm_op =3D flask_hvm_altp2mhvm_op, - .do_xsm_op =3D do_flask_op, - .get_vnumainfo =3D flask_get_vnumainfo, - -#ifdef CONFIG_VM_EVENT - .mem_access =3D flask_mem_access, -#endif - -#ifdef CONFIG_MEM_PAGING - .mem_paging =3D flask_mem_paging, -#endif - -#ifdef CONFIG_MEM_SHARING - .mem_sharing =3D flask_mem_sharing, -#endif =20 #ifdef CONFIG_COMPAT .do_compat_op =3D compat_flask_op, #endif =20 - .add_to_physmap =3D flask_add_to_physmap, - .remove_from_physmap =3D flask_remove_from_physmap, - .map_gmfn_foreign =3D flask_map_gmfn_foreign, - -#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) - .get_device_group =3D flask_get_device_group, -#endif - - .platform_op =3D flask_platform_op, -#ifdef CONFIG_X86 - .do_mca =3D flask_do_mca, - .mem_sharing_op =3D flask_mem_sharing_op, - .apic =3D flask_apic, - .machine_memory_map =3D flask_machine_memory_map, - .domain_memory_map =3D flask_domain_memory_map, - .mmu_update =3D flask_mmu_update, - .mmuext_op =3D flask_mmuext_op, - .update_va_mapping =3D flask_update_va_mapping, - .priv_mapping =3D flask_priv_mapping, - .ioport_permission =3D flask_ioport_permission, - .ioport_mapping =3D flask_ioport_mapping, - .pmu_op =3D flask_pmu_op, -#endif - .dm_op =3D flask_dm_op, - .xen_version =3D flask_xen_version, - .domain_resource_map =3D flask_domain_resource_map, #ifdef CONFIG_ARGO .argo_enable =3D flask_argo_enable, .argo_register_single_source =3D flask_argo_register_single_source, .argo_register_any_source =3D flask_argo_register_any_source, .argo_send =3D flask_argo_send, #endif - .get_domain_state =3D flask_get_domain_state, }; =20 const struct xsm_ops *__init flask_init( From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244468; cv=none; d=zohomail.com; s=zohoarc; b=K+U+LqjPlRM79i3tX6tEGD3XORwWID0pDCd66YNRyTJ+t6xMLcadyRu0t2wPT1acE8CQwaMWfbA9Am1HhQ9v+XqvTDGa1pLvY5/v5MkuNq3xAL3tMVhszeKzlKdOCWef3yyLQJIksXbR5Xwn3Yc3QeDtPAiWqdc4/at7zUgkmY0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244468; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=k3yu0d63FvfqhO+L+MSLfqlMqJJ82QjRHS/utwxkEoc=; b=IMVDVSgrQJGJ3M7h+9fjwH2HhCid0CuRlG49v9g6Z8djMQ9IxwvxoBFVDcW2Y3C2GYXFX/sKKSJvuUdc8i84OSIZga25LrRAnx8nfvuh6i+ct+cpWk75enK236SbqPiuPMHI7JJko2S602sgIOtiYzAWud508yV6vDhM2NlpkPw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244468605527.3016439229461; Tue, 28 Jul 2026 06:14:28 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374022.1620973 (Exim 4.92) (envelope-from ) id 1wohdJ-0002j5-If; Tue, 28 Jul 2026 13:14:09 +0000 Received: by outflank-mailman (output) from mailman id 1374022.1620973; Tue, 28 Jul 2026 13:14:09 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohdJ-0002iy-G1; Tue, 28 Jul 2026 13:14:09 +0000 Received: by outflank-mailman (input) for mailman id 1374022; Tue, 28 Jul 2026 13:14:08 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohdI-0002h4-8d for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:14:08 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohdH-004cHG-LZ for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:14:07 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ab14-e002-0a2a0a5209dd-0a2a450b8a36-16 for ; Tue, 28 Jul 2026 15:14:07 +0200 Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ab1e-b7e8-0a2a450b0019-d155802cc4cd-3 for ; Tue, 28 Jul 2026 15:14:06 +0200 Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-4954df200ddso25589545e9.0 for ; Tue, 28 Jul 2026 06:14:06 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4957f9b8b67sm358183325e9.4.2026.07.28.06.14.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:14:05 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244446; x=1785849246; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=k3yu0d63FvfqhO+L+MSLfqlMqJJ82QjRHS/utwxkEoc=; b=PnNoQIQMPAgSoEUNZDkm7lyUj154rXJJG3FWt9z35JV1Qfsb8zaZgLMF0X5AL6V0Ah U2yFyJv0BjzzvMSQ7S1Xx0kIdp0OOxYTvduXeIkUmvc0tKifdPQOajsggyM9K0O23wm3 28y+YpKE90L5D7C/iBvIni6YDnRi/s1tMWB0TjM373fgxjhkIuAXJgIzUxFq3fG2EThP hiObWt+5ydfqrsb3lolp2GkRR8EMngf6mBtoXsrubi31O35Ihoh838Twc4SHf3V+HOsa dS4IyDWZZbrKUYhOEaDoMPM0N3FJpuEqk+Hc/pTm5Fiyc2Mju+pUNFRRG42biEYZrCdx ueJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244446; x=1785849246; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=k3yu0d63FvfqhO+L+MSLfqlMqJJ82QjRHS/utwxkEoc=; b=gBzykbyM2rUsFzN7h+MH11G1RFskQDq0kRFVUzMPVXqNj3eXBksozXh5Ejj0tES39d e8JfiiSkemhvhDQ6eH8Ie8zwqnq6XbgPngg30W3fgsVA940ZnzR5M6oHelksk4SJ/rDN kxGrSs0DjcNbO5p8GJCVY444Xa9/YiAaOMW/Qrm+C99COESkcJ0P/1l2A4Ol64UMoiwQ rQTj3kf70HxM5KhOQMi97EcqyLDDLPCuifoB2usnPX/dZ+5wNb1U7ThxYA2zpFmqggwq OpZ+//RuT87LuVFCxsDnMgvWCNtJI3zjt75hwvY6h4SFAhc/rh0V1fufaC6GpsRpAMhd W1lA== X-Gm-Message-State: AOJu0YyGXY5t6nsIvEcUFwPHfqR+uomTCUJatWLA8JeLmvBZz1wWHqOZ dv1EMZI5kViky6t+FEY6kZyATMqGma8gUw1PT23gj5wzGoss2fVADAE2bl8h2s9qDZRguCQWJA1 +B9jmSQ== X-Gm-Gg: AR+sD10o9ZQFosgnXVSd6r4qXuMsbQdTcgF3Y4IU2kLjbmvWSd4Ex+79LtF7D9ndoV7 /b7RjMicSND5KLSErWtmhLa8wixPawQZii94at6AemZPm028v90G6woRglkdxorvgPyU8FZZbdp gvOkfmvLtLauDSDRiXRpMdW8c/EthfLf3Qf3qdLbJs16G8zri1odEtUDAFSLEGcYOEoLUr2s/Nv njLSTJc7c+BmD8WaIj2GkvjJQgT2zIKjw2RWzbdB/mJim7vqyNySylSAjUPzIas6afBIrK/dsiu x/7vANbiwqv+g/GsvrNeOHpaS0UR4D0GmgRQ2BrsCqIC5kAYCwx+PrPfAu/zwTAd5750G4Butxx ed9xmfZOtOxXVt9GtKGNNc6+p0LrIFh1EzW0jAF9CPwEnDCjQ4G+LCaeG2P2TYz4GpE3shgC5Mx 5YDHPQYpeGKSpxwbQvbSl9oF3bh9xhMVBSOka+/Kjt4EP69W7f482RwiYzqSycJc+XxF0rdsPE4 xEC X-Received: by 2002:a05:600c:4fc7:b0:495:5dcc:52ae with SMTP id 5b1f17b1804b1-496c6415049mr32812095e9.3.1785244446101; Tue, 28 Jul 2026 06:14:06 -0700 (PDT) Message-ID: <8e81ded4-7855-4c08-b673-ffb6124888c7@suse.com> Date: Tue, 28 Jul 2026 15:14:04 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 02/24] XSM: make .grant_*() hooks dependent upon GRANT_TABLE=y From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-42698a/1785244446-AB2DC9EA-04A6C6D0/0/0 X-purgate-type: clean X-purgate-size: 3053 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244469984158500 Content-Type: text/plain; charset="utf-8" They're unreachable / dead otherwise. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -191,6 +191,8 @@ static XSM_INLINE void cf_check xsm_free return; } =20 +#ifdef CONFIG_GRANT_TABLE + static XSM_INLINE int cf_check xsm_grant_mapref( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2, uint32_t flags) { @@ -233,6 +235,8 @@ static XSM_INLINE int cf_check xsm_grant return xsm_default_action(action, d1, d2); } =20 +#endif /* CONFIG_GRANT_TABLE */ + static XSM_INLINE int cf_check xsm_memory_exchange( XSM_DEFAULT_ARG struct domain *d) { --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -35,12 +35,14 @@ XSM_HOOK(int, evtchn_send, struct domain XSM_HOOK(int, evtchn_status, struct domain *, struct evtchn *) XSM_HOOK(int, evtchn_reset, struct domain *, struct domain *) =20 +#ifdef CONFIG_GRANT_TABLE XSM_HOOK(int, grant_mapref, struct domain *, struct domain *, uint32_t) XSM_HOOK(int, grant_unmapref, struct domain *, struct domain *) XSM_HOOK(int, grant_setup, struct domain *, struct domain *) XSM_HOOK(int, grant_transfer, struct domain *, struct domain *) XSM_HOOK(int, grant_copy, struct domain *, struct domain *) XSM_HOOK(int, grant_query_size, struct domain *, struct domain *) +#endif =20 XSM_HOOK(int, init_hardware_domain, struct domain *) =20 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -434,6 +434,8 @@ static int cf_check flask_init_hardware_ return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__CREATE_HARDWARE_= DOMAIN); } =20 +#ifdef CONFIG_GRANT_TABLE + static int cf_check flask_grant_mapref( struct domain *d1, struct domain *d2, uint32_t flags) { @@ -470,6 +472,8 @@ static int cf_check flask_grant_query_si return domain_has_perm(d1, d2, SECCLASS_GRANT, GRANT__QUERY); } =20 +#endif /* CONFIG_GRANT_TABLE */ + static int cf_check flask_get_pod_target(struct domain *d) { return current_has_perm(d, SECCLASS_DOMAIN, DOMAIN__GETPODTARGET); --- a/xen/xsm/silo.c +++ b/xen/xsm/silo.c @@ -60,6 +60,8 @@ static int cf_check silo_evtchn_interdom return -EPERM; } =20 +#ifdef CONFIG_GRANT_TABLE + static int cf_check silo_grant_mapref( struct domain *d1, struct domain *d2, uint32_t flags) { @@ -82,6 +84,8 @@ static int cf_check silo_grant_copy(stru return -EPERM; } =20 +#endif /* CONFIG_GRANT_TABLE */ + #ifdef CONFIG_ARGO =20 static int cf_check silo_argo_register_single_source( @@ -105,9 +109,11 @@ static int cf_check silo_argo_send( static const struct xsm_ops __initconst_cf_clobber silo_xsm_ops =3D { .evtchn_unbound =3D silo_evtchn_unbound, .evtchn_interdomain =3D silo_evtchn_interdomain, +#ifdef CONFIG_GRANT_TABLE .grant_mapref =3D silo_grant_mapref, .grant_transfer =3D silo_grant_transfer, .grant_copy =3D silo_grant_copy, +#endif #ifdef CONFIG_ARGO .argo_register_single_source =3D silo_argo_register_single_source, .argo_send =3D silo_argo_send, From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244487; cv=none; d=zohomail.com; s=zohoarc; b=GJVwzs8i50voiMZkrVXXVQZo8PqUaOvQ10wFNi7iTvramH4ixUI2grUak5fjUgSYfKXFzAukzr2fkBb25q+CThYSvKjCbH+yzLGphfU5KPZl/FzUnlYERmUWhEwu0IzOQM7Kv93RpUbmgRb6he6ZLeY8Cq/RrnH3FZhCdzMu+xI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244487; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=H2ukPeiGxCPKUyvMdnH6IcL0Qr78MmoDQ6R7C+zhDn4=; b=E2cj8glKF/pZkIhjLLtqCPBhAumKOlS4mwum+5zzyIFcR+d/rCJdhJbvgj5k3/swPc4k3iRiq2ek46LgZpldcNfw8qHJnrL+gHu+B6JcN5t03vvNlEQYt44K87Z/R687aAdyaOy/TSiDc5rHFPdx1cTiJWf685w9BqtQ8W4Ou2E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244487100583.1295030308307; Tue, 28 Jul 2026 06:14:47 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374029.1620982 (Exim 4.92) (envelope-from ) id 1wohdf-0003CN-Qq; Tue, 28 Jul 2026 13:14:31 +0000 Received: by outflank-mailman (output) from mailman id 1374029.1620982; Tue, 28 Jul 2026 13:14:31 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohdf-0003CG-OG; Tue, 28 Jul 2026 13:14:31 +0000 Received: by outflank-mailman (input) for mailman id 1374029; Tue, 28 Jul 2026 13:14:31 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohde-0003Bv-Rp for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:14:30 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohde-00EpLL-8b for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:14:30 +0200 Received: from [10.42.69.7] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ab31-5cb7-0a2a0a5109dd-0a2a450780d0-20 for ; Tue, 28 Jul 2026 15:14:29 +0200 Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com) by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ab35-b4ea-0a2a45070019-d155802bd440-3 for ; Tue, 28 Jul 2026 15:14:29 +0200 Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-49548e01d02so19404045e9.0 for ; Tue, 28 Jul 2026 06:14:29 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-496c45e92eesm82795335e9.15.2026.07.28.06.14.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:14:28 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244469; x=1785849269; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=H2ukPeiGxCPKUyvMdnH6IcL0Qr78MmoDQ6R7C+zhDn4=; b=SSPz4bgbBk2mnM5KGz8vRgJ1uYl+hr6jCvknA0ilFTy4EGNa5ZrsFZI24+6f/jMHzi 6VTvy5lJtTBzHzE0qp58njZeiyTa6p/+gWFEK+QRPgb4ErT44lE5XZnkyPo0FsSf9VNE AqIV7/7mlkUfCUVbTLbpAA+BQyB0EiQXSjSuan4eK+bcwUvWnxumKSGZgKKkAAOcJQL1 HmeM5zOD3VxU0XRk1JXf3J4qbGxMFlg8TxyVa+AIfOi4qf0O+p8IFbRNFECdeapKpTqJ Y4thlM8TBlPFUEwR3xwAcQe2qg2lul+Kw6BRKLJDCEjn7jPx3xaG7MOfn9GpFzNHF8wK hxBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244469; x=1785849269; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=H2ukPeiGxCPKUyvMdnH6IcL0Qr78MmoDQ6R7C+zhDn4=; b=L6nuWUCrC0ibXKNC00YTlwzQv9W3/narNgBYcHWRRVfmnAJAZVps4UOzmk8+I+ZmUw kqCeyCOXON1/v2cuO3UO7bP1jR0JPfgUgWc6t3cKTD2btsCQJPjIxj/wAv0mm65s5FKa KWac/loKRhPzei7q+1iVyV0JG1biTZPxBPxVijCwDusBKGOjraGYIaais/NIEHtJcwPy fvrz0QjedRCwYGKWljHy04xDuTxyk+dyUmGctSZbbPWn3hOUotFUkzUOX/Bg9muvhP2w nI21y8NSYzrUbgepnDjGvPxV1eE5xiAZzFv6zuMOv2sqSCQVlXu7V5CN5rhDgPRbpuuy z2ZQ== X-Gm-Message-State: AOJu0YzEy7dKnQpFXd1+a3uel/IPA82Q5oQFn7sE9B3yqlWqAI3sdCIX uXddjXyb5YL7QsgerIp2Vgf05uzZQFb4CCvnW/0qiBoD5OOpFGONmyzv6ICXAQqPSUpUrMgSnIP RcpG5Cw== X-Gm-Gg: AR+sD11AnG+Ji5+1GzhtxIMc0T2ncncPK+oeUBC6r6raV/3IwXN29Q7fdI7b4ukfBUL rwUHqzBDg8XKDC7urCPI6oBr+NA5JTYnr3/xbvIfjXujzsf40znTISx59jZ1Rzgs+E4Jt09lysd HyzeBiB3KZXkXL0IS0Jzi41L9qcsnkzxAlE3lv9NMjVsXEMNXpjClZetjnHPHo/6OM5/WEirR3G j85e+xO8WFyDCSyGsJT64hRqQuXZswU456XrN56eAd9c3Gr8yuRUyJOs5yC/k6FqZ/1mfkiiB9M i2EGeIy9u9OxmBzoJIrJjKccACQ8AeI27vIZgHlecdNzV7533wWnbVUXXQ5MVXo9vJs3LxstiE0 fY5wTm8HUa4O84+PVn16F1Ht+twE5cQCEvnOpnyrJR1OZmNijhaDXZi82vg0wXCkyv55H1vzUTY ZuHrVHmTEZElJBichOdK/TYlo0Cy622dJs4dzSwkrKTKlCY6ZFz0amfB853mDCKaeQrw== X-Received: by 2002:a05:600c:1f85:b0:493:bacb:1341 with SMTP id 5b1f17b1804b1-496c6412ff2mr26717435e9.4.1785244469259; Tue, 28 Jul 2026 06:14:29 -0700 (PDT) Message-ID: <9a0a1494-1357-43d2-ba6b-532fc01b703e@suse.com> Date: Tue, 28 Jul 2026 15:14:28 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 03/24] XSM: make .{,un}map_domain_pirq() hooks dependent upon HAS_PIRQ=y From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-ef75cf/1785244469-342F4AE4-7C2EF308/0/0 X-purgate-type: clean X-purgate-size: 2944 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244488106158500 Content-Type: text/plain; charset="utf-8" They're unreachable / dead otherwise. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -450,6 +450,8 @@ static XSM_INLINE char *cf_check xsm_sho return NULL; } =20 +#ifdef CONFIG_HAS_PIRQ + static XSM_INLINE int cf_check xsm_map_domain_pirq( XSM_DEFAULT_ARG struct domain *d) { @@ -457,17 +459,19 @@ static XSM_INLINE int cf_check xsm_map_d return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_map_domain_irq( - XSM_DEFAULT_ARG struct domain *d, int irq, const void *data) +static XSM_INLINE int cf_check xsm_unmap_domain_pirq( + XSM_DEFAULT_ARG struct domain *d) { - XSM_ASSERT_ACTION(XSM_HOOK); + XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_unmap_domain_pirq( - XSM_DEFAULT_ARG struct domain *d) +#endif /* CONFIG_HAS_PIRQ */ + +static XSM_INLINE int cf_check xsm_map_domain_irq( + XSM_DEFAULT_ARG struct domain *d, int irq, const void *data) { - XSM_ASSERT_ACTION(XSM_DM_PRIV); + XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, current->domain, d); } =20 --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -65,9 +65,12 @@ XSM_HOOK(int, kexec) =20 XSM_HOOK(int, schedop_shutdown, struct domain *, struct domain *) =20 +#ifdef CONFIG_HAS_PIRQ XSM_HOOK(int, map_domain_pirq, struct domain *) -XSM_HOOK(int, map_domain_irq, struct domain *, int, const void *) XSM_HOOK(int, unmap_domain_pirq, struct domain *) +#endif + +XSM_HOOK(int, map_domain_irq, struct domain *, int, const void *) XSM_HOOK(int, unmap_domain_irq, struct domain *, int, const void *) XSM_HOOK(int, bind_pt_irq, struct domain *, struct xen_domctl_bind_pt_irq = *) XSM_HOOK(int, unbind_pt_irq, struct domain *, struct xen_domctl_bind_pt_ir= q *) --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1018,11 +1018,20 @@ static char *cf_check flask_show_irq_sid return ctx; } =20 +#ifdef CONFIG_HAS_PIRQ + static int cf_check flask_map_domain_pirq(struct domain *d) { return current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__ADD); } =20 +static int cf_check flask_unmap_domain_pirq(struct domain *d) +{ + return current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__REMOVE); +} + +#endif /* CONFIG_HAS_PIRQ */ + static int flask_map_domain_msi ( struct domain *d, int irq, const void *data, uint32_t *sid, struct avc_audit_data *ad) @@ -1085,11 +1094,6 @@ static int cf_check flask_map_domain_irq return rc; } =20 -static int cf_check flask_unmap_domain_pirq(struct domain *d) -{ - return current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__REMOVE); -} - static int flask_unmap_domain_msi ( struct domain *d, int irq, const void *data, uint32_t *sid, struct avc_audit_data *ad) From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244499; cv=none; d=zohomail.com; s=zohoarc; b=ZONu2PZjbAvQ+W49n17aZYCtw6ZSt9G1bAw5kRAglmJ02As+3vIf4rHqStg92CSrZNKWP4sTw+q6KHvTWVgLcEG+/4oi5fYCDH7t2SXVJN3VEmz3R+2co229KqrO9DYs3EVZNdJoy7hj1pqPWu+Cqq7soBDBbdORMH8tBj+15c8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244499; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zvHFuBowtfxuVEr3XoDvree7aX44NU2K8E9z5xVIjrk=; b=EjVgUVwwkejcXx9U8BaymCKs4KeB6ETkh+hBSbeZOq9P+8FMtiUF8/6RkCJwnA8VR8pmRzIYCqv2P+Rzs5FzuiuprpSxpqb7+9iIMbDcgJtHBSwYV0RP46fMqrZPMJ/gIt7CW3hee3AwH5qiklpO75AjQ4YAYi1t4I4VAlWKJro= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 178524449919591.34346191139616; Tue, 28 Jul 2026 06:14:59 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374036.1620992 (Exim 4.92) (envelope-from ) id 1wohdw-0003da-2b; Tue, 28 Jul 2026 13:14:48 +0000 Received: by outflank-mailman (output) from mailman id 1374036.1620992; Tue, 28 Jul 2026 13:14:48 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohdv-0003dT-Vu; Tue, 28 Jul 2026 13:14:47 +0000 Received: by outflank-mailman (input) for mailman id 1374036; Tue, 28 Jul 2026 13:14:46 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohdu-0003bp-CM for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:14:46 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohdt-004cTC-Le for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:14:45 +0200 Received: from [10.42.69.7] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ab40-e002-0a2a0a5209dd-0a2a4507cbd6-22 for ; Tue, 28 Jul 2026 15:14:45 +0200 Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com) by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ab45-b4ea-0a2a45070019-d1558033edb9-3 for ; Tue, 28 Jul 2026 15:14:45 +0200 Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-49553515a8bso47501085e9.1 for ; Tue, 28 Jul 2026 06:14:45 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47f85bd77a9sm55197678f8f.14.2026.07.28.06.14.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:14:44 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244485; x=1785849285; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=zvHFuBowtfxuVEr3XoDvree7aX44NU2K8E9z5xVIjrk=; b=JjKk0XQQI7RT5uA8REnYeJA4zo8eleJzpW1Ps5wCxxngvvRZ5Xj6R8cUVPo7swuo3p igzfIhyOuDI1T9BymTfboOBIdibKeOPTS/Dz0eVCYQgGyjUUxNWEjKXDVC+cQWgIZi7s BPPrCxHpTAi1RI5clTm9FMWm5Ci5o2X60zIq4UuZRB34pmr87gRtHyAJe7Ufm+hXd2KQ UWOjunBZ9OwW87sOz1q9C490pcqLHwcxOhL+1yDCraYvKM+3KGzq2X2wtBhsEeDn/435 AGwh/uBLMJaRbQXYJQ1oME2eYZN+nBDvUwnJNz7typ3d76rBzfVMXp9RLcPxGy0onvrh zWXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244485; x=1785849285; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=zvHFuBowtfxuVEr3XoDvree7aX44NU2K8E9z5xVIjrk=; b=bsloJlA07c8Xghv3ALm8fOTrPKaxUSkrDrAlEAiemdPqSG5Mzqz4wnTTUNoLXTH+sx SdCR933UL4kwzl35tlqy09WfbJcEhTMsIYFvclC5U+88MNq0hSWZKmaBUYdiGQF92poz R+nmjL1qnifNGhKU0CSGR3ZMiMUfOJiEgJ2mdW2z1JMvkzLeGRvLEgsZEKFe7jRCwej0 Hhm1M0PvUYXsTWvwKmJ2NMhsoJBIdrBaQzd2EpVXULvbRb9Rcg8FtSS50HXurGmydHZv mcAcnC6J7zRoz1C3coe7hQPDWAgXlNlSh40qvmpAySVMtI+xswJtJHO0VEgosRM7sBUx jlfQ== X-Gm-Message-State: AOJu0YwCA7DcZcedFOyVFYU85cTgIqyceawFFPSyD0qbrhPixRWULkEe R6MfoH1xYCb2iN4aNfMub9Ho0mRC1CM9ncix7WFkhT2oAD/dSbr2aElSMf7KHhk6gqSADSrl6mj fLQpXCg== X-Gm-Gg: AR+sD114vyOaRHIm0uWSQIoY+VtHw+TP+BZrZhlpLcrQEveC0bb/8/ifpOcQZXjwY42 K+73s2tBcxtBOhdFZDRkdEPcUzQTHZhTl3Rr5AXRXmsN1hpPNzfeYL55xEy08a49/p6QoyYkjzS nCd+nTQr5CEvcJ7A0sSmRZof2EjuRlrg8UPpUUkhfvdWKiDYWbjExcNIMHcYGYq/LLZer1DakvW QualRl/qyZaqY2Z90p+QBjvfsH9l7xOrr//HTbiuu2QK7qye1DXzfIRXOYhoexADaR2B7zNzpBl 05yLKF5+5ikWC6vc0NmX0d6O8z/MVC/T53tRwiIOifEWwhFA7pop99tylKsiizgSZiVjYS83vj2 NgddWr8Vr9sAs2rryZF3TKymULBDknUnt8IOhj21oEAYxcMRGY/E6YO86bHigGdEcdSqNk32DzB hGZrcwKUjEtYfaLwMMl5p6ptC89lF0zDFCRxzNFVJ+nxKM8mYV8hMkMbXOi5zb0YYXoQ== X-Received: by 2002:a05:600c:1395:b0:495:7538:d4ea with SMTP id 5b1f17b1804b1-496c60b1896mr25373525e9.0.1785244484996; Tue, 28 Jul 2026 06:14:44 -0700 (PDT) Message-ID: <03267655-2c62-459a-abef-6a0a85a9fa44@suse.com> Date: Tue, 28 Jul 2026 15:14:43 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 04/24] XSM: make PCI hooks dependent upon HAS_PCI=y From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-ef75cf/1785244485-364DBAE4-2339DE74/0/0 X-purgate-type: clean X-purgate-size: 4548 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244500258158500 Content-Type: text/plain; charset="utf-8" They're unreachable / dead otherwise. Really resource_{,un}plug_pci() is further limited to PCI pass-through. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -394,6 +394,8 @@ static XSM_INLINE int cf_check xsm_get_d } #endif /* HAS_PASSTHROUGH && HAS_PCI */ =20 +#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) + static XSM_INLINE int cf_check xsm_resource_plug_pci( XSM_DEFAULT_ARG uint32_t machine_bdf) { @@ -408,6 +410,10 @@ static XSM_INLINE int cf_check xsm_resou return xsm_default_action(action, current->domain, NULL); } =20 +#endif /* CONFIG_HAS_PASSTHROUGH && CONFIG_HAS_PCI */ + +#ifdef CONFIG_HAS_PCI + static XSM_INLINE int cf_check xsm_resource_setup_pci( XSM_DEFAULT_ARG uint32_t machine_bdf) { @@ -421,6 +427,8 @@ static XSM_INLINE int cf_check xsm_resou return xsm_default_action(action, current->domain, NULL); } =20 +#endif /* CONFIG_HAS_PCI */ + static XSM_INLINE int cf_check xsm_resource_setup_misc(XSM_DEFAULT_VOID) { XSM_ASSERT_ACTION(XSM_PRIV); @@ -524,6 +532,7 @@ static XSM_INLINE int cf_check xsm_iomem return xsm_default_action(action, current->domain, d); } =20 +#ifdef CONFIG_HAS_PCI static XSM_INLINE int cf_check xsm_pci_config_permission( XSM_DEFAULT_ARG struct domain *d, uint32_t machine_bdf, uint16_t start, uint16_t end, uint8_t access) @@ -531,6 +540,7 @@ static XSM_INLINE int cf_check xsm_pci_c XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, current->domain, d); } +#endif /* CONFIG_HAS_PCI */ =20 static XSM_INLINE int cf_check xsm_add_to_physmap( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2) --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -77,21 +77,24 @@ XSM_HOOK(int, unbind_pt_irq, struct doma =20 XSM_HOOK(int, irq_permission, struct domain *, int, uint8_t) XSM_HOOK(int, iomem_permission, struct domain *, uint64_t, uint64_t, uint8= _t) -XSM_HOOK(int, pci_config_permission, struct domain *, uint32_t, uint16_t, - uint16_t, uint8_t) =20 XSM_HOOK(int, iomem_mapping, struct domain *, uint64_t, uint64_t, uint8_t) XSM_HOOK(int, iomem_mapping_vpci, struct domain *, uint64_t, uint64_t, uin= t8_t) =20 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) +XSM_HOOK(int, resource_plug_pci, uint32_t) +XSM_HOOK(int, resource_unplug_pci, uint32_t) XSM_HOOK(int, get_device_group, uint32_t) #endif =20 -XSM_HOOK(int, resource_plug_pci, uint32_t) -XSM_HOOK(int, resource_unplug_pci, uint32_t) +XSM_HOOK(int, resource_setup_misc) + +#ifdef CONFIG_HAS_PCI XSM_HOOK(int, resource_setup_pci, uint32_t) XSM_HOOK(int, resource_setup_gsi, int) -XSM_HOOK(int, resource_setup_misc) +XSM_HOOK(int, pci_config_permission, struct domain *, uint32_t, uint16_t, + uint16_t, uint8_t) +#endif =20 XSM_HOOK(int, hypfs_op) =20 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1225,6 +1225,7 @@ static int cf_check flask_iomem_mapping( } #define flask_iomem_mapping_vpci flask_iomem_mapping =20 +#ifdef CONFIG_HAS_PCI static int cf_check flask_pci_config_permission( struct domain *d, uint32_t machine_bdf, uint16_t start, uint16_t end, uint8_t access) @@ -1250,6 +1251,7 @@ static int cf_check flask_pci_config_per return avc_has_perm(dsid, rsid, SECCLASS_RESOURCE, perm, &ad); =20 } +#endif /* CONFIG_HAS_PCI */ =20 #if defined(CONFIG_SYSCTL) || defined(CONFIG_X86) static int flask_resource_plug_core(void) @@ -1270,6 +1272,8 @@ static int flask_resource_use_core(void) } #endif /* CONFIG_SYSCTL */ =20 +#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) + static int cf_check flask_resource_plug_pci(uint32_t machine_bdf) { uint32_t rsid; @@ -1300,6 +1304,10 @@ static int cf_check flask_resource_unplu return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__UNPLUG,= &ad); } =20 +#endif /* CONFIG_HAS_PASSTHROUGH && CONFIG_HAS_PCI */ + +#ifdef CONFIG_HAS_PCI + static int cf_check flask_resource_setup_pci(uint32_t machine_bdf) { uint32_t rsid; @@ -1328,6 +1336,8 @@ static int cf_check flask_resource_setup return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__SETUP, = &ad); } =20 +#endif /* CONFIG_HAS_PCI */ + static int cf_check flask_resource_setup_misc(void) { return avc_current_has_perm(SECINITSID_XEN, SECCLASS_RESOURCE, RESOURC= E__SETUP, NULL); From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244526; cv=none; d=zohomail.com; s=zohoarc; b=hCMfJ2DM+z5buokyUDaWNGFjHWXsHvccVyRbpHxsa9yJYboqEwIwlz6nYNcvVjfiOk8Hq61mXoS1IIz9YNXFdsZrXrLdglLmMOcH1yMSwA8PsCF0wHX2mJBquR0ChrEqDK+/2MS77+PgX1c5HAMnBQfwSvF0hciydf3nHbMwmf8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244526; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hfN4Ana84xKH4bZHnbxldP7VbRY/aTI5+X/yItg8+gc=; b=C1W2tuXyQmvGF7XxyO38iq4gaaWXUSNpiQlgBKqUXl2ihruK2+U1e8lC6RXeubt+DFV73BHkwPv4SmaVioLFKxIjrb36RmkrUdR6M9AZPuqVvcgm3XDk1M9fH7POYTGeb3nul6tOPMIPBCkOWOpu91b2aH80HDZosPNPyGt7nvE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244526454301.9416922793936; Tue, 28 Jul 2026 06:15:26 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374045.1621000 (Exim 4.92) (envelope-from ) id 1woheI-0004HF-CZ; Tue, 28 Jul 2026 13:15:10 +0000 Received: by outflank-mailman (output) from mailman id 1374045.1621000; Tue, 28 Jul 2026 13:15:10 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1woheI-0004H8-9q; Tue, 28 Jul 2026 13:15:10 +0000 Received: by outflank-mailman (input) for mailman id 1374045; Tue, 28 Jul 2026 13:15:08 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1woheG-0004DE-Ok for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:15:08 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1woheG-002tTP-5F for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:15:08 +0200 Received: from [10.42.69.7] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ab5b-5cb7-0a2a0a5109dd-0a2a450794a2-4 for ; Tue, 28 Jul 2026 15:15:08 +0200 Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com) by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ab5a-b4ea-0a2a45070019-d155dd2cd8b0-3 for ; Tue, 28 Jul 2026 15:15:06 +0200 Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-47f97d310caso2737405f8f.2 for ; Tue, 28 Jul 2026 06:15:06 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47f85c52fa9sm60329966f8f.20.2026.07.28.06.15.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:15:05 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244506; x=1785849306; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=hfN4Ana84xKH4bZHnbxldP7VbRY/aTI5+X/yItg8+gc=; b=SMUcck84gjvUcakGCLyWlTw0xasshhOzbwBdvagj94tJ/kL2PRFhiQKsDpD33Nf5Q5 Ro1xU/J1LjG7AA3UB6ZM9iVh+bRV8WSRGhc5pRZap0YHTXnJBLWOLTKFsm/4+bRIJsp9 djGUn78+zUbEp4HLjEVtixo80sKJpfaVuzJ3/c58JHQNT5VCk39yO5RtjmbTpKyrTAWt gnE05ph5ItbeUM0MCOK1H5ex9O2dNVPcV9UZ+qvOY76y+VPlJoZ5XQIg1Zy18pTJ7q14 98dw2C/iWlgxC/YJDWTLP/cX5laicGRvo3Oynf1XtdoZa2sj/2dZLM3FxU4/SyE9Ztyu kBdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244506; x=1785849306; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=hfN4Ana84xKH4bZHnbxldP7VbRY/aTI5+X/yItg8+gc=; b=ip7VFMxkpTcJilNVPZOrbmKS6AfK8JTZzoBTFy/kIBCITxiaX/fT3zbbwrOo+uGYRq XUt8COqv9kA7ZHO25QDpUfkpx0TOZdixKDKL0LxA/ZFVFXrQ3pmeiuDgzfB0kLjGe1m8 oyO8rOfr2NU65vXvHkRc3FxhCNSQdt4wTWp2g25JZhcyloZM9+rma90Pi//o1ufP3r5s p212vTQbnoQedwZYSvO8jfMG01rXbZCujy2G2EEQSXgsxxGxvu0KyPSy0Q2/YtPuIDEr U14bQV0b/qyz1VdLrrFenyuRvp7aq+bgH7SmS8EGz+5TCQSvTLBraOA7bM6u/KZ7etI1 YsIg== X-Gm-Message-State: AOJu0YyFnbW2GWUvnGHPIJBVtfq6dWsmcxeR87uZZWD7IpHqGSZtA6oB Xz1TD3KiKEnc5gAb0QkGHjz4eL+VHM8FmEExt+oYdSVoWWMPYtmHLQ+l0Nl98MQDofG/JhMHc5W d0tiAjg== X-Gm-Gg: AR+sD10kJhNudDJo7d/O7Jg1kT98kTDw9aNIOIdvb96cTEOd6FzVckn6da4pHlhvvZy TvzJyByQU/VcPOYrXGrW8D9k7lZ0YhN6P3+P5ovcsiaUR/0y1ISrILjVxnhJbHHMmzsTF2W8si6 Rqz4TiF5K0gLywAZr1XFLzIL+J9sn9f/lzTfLFTYed5kOQ2qeedL5wjg7FmAalwNeQBBycHg2mW 5K5RMJ3DwRZ5rQQzGlaNgtGN9taYw/WjqeGQR0qrP2A7mNPaGyOfv7sf2dzr9EJ7wY7MnFlmJv5 mxfjuiO42rUhbGyig0iHM86dDhmBuqN1b5xG0Hy5aQuZ3Osc591hT3rcb8Tj60UZMPLXOEldJ/I 0N6vvzFcGWo4zKf8g7YQh0+dUHqxgsatERm9bECz8U1I2Z3LHwuBngQX7eVR0iM1GSZEFiDonYz B6Q47czMRfyx8y68PhPMVOceqUjvFKvSw2uYsYF+EBXyIdFSdM/NA/mD3aIdOmKd2HDw== X-Received: by 2002:a05:6000:5c5:b0:47f:8ac6:1b8d with SMTP id ffacd0b85a97d-47fb1e22423mr3240190f8f.0.1785244506148; Tue, 28 Jul 2026 06:15:06 -0700 (PDT) Message-ID: Date: Tue, 28 Jul 2026 15:15:04 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 05/24] XSM: make .iomem_mapping_vcpi() hook dependent upon HAS_VPCI=y From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-ef75cf/1785244506-364DBAE4-26D51F2F/0/0 X-purgate-type: clean X-purgate-size: 1156 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244528411158500 Content-Type: text/plain; charset="utf-8" It's unreachable / dead otherwise. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith domain, d); } =20 +#ifdef CONFIG_HAS_VPCI static XSM_INLINE int cf_check xsm_iomem_mapping_vpci( XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allo= w) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, current->domain, d); } +#endif =20 #ifdef CONFIG_HAS_PCI static XSM_INLINE int cf_check xsm_pci_config_permission( --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -79,7 +79,9 @@ XSM_HOOK(int, irq_permission, struct dom XSM_HOOK(int, iomem_permission, struct domain *, uint64_t, uint64_t, uint8= _t) =20 XSM_HOOK(int, iomem_mapping, struct domain *, uint64_t, uint64_t, uint8_t) +#ifdef CONFIG_HAS_VPCI XSM_HOOK(int, iomem_mapping_vpci, struct domain *, uint64_t, uint64_t, uin= t8_t) +#endif =20 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) XSM_HOOK(int, resource_plug_pci, uint32_t) From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244545; cv=none; d=zohomail.com; s=zohoarc; b=ePuCSJ86XZs8RYK3EZop9e9cBxTnZVg5HpsyGcMA6blgmS5m0O+nBeRjqYfdWBdPojpyDon0KtQB5SukzB1q4rBn3qQ3Y/TXJ4DTSij7YCpXBXyxsRgQbtHZJzoduXSJqoTM7Fi4TFm2u21BiGISw3HZC9lRBxvflW/N7DGqsbQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244545; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=x5Ura/4aSJTT1yjoaooe8WKNPNZs5RjaVEYUlZ6AWEA=; b=Kocgt+h0zs6QwhCmSyORjccc8aThpiA9y6K+ZJjJ2T9xv31+kUYzGycplDswbL1bP2bcpU3NY8XqK4ZvqTFwsvPDitqWrudJwk15dj02b7HXZTFx7J4Yqdi775zvobv5uIxiD2b/oeAWwxKsggU3bwEL2N5UPVFbB/7qrsst8BA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244545042170.5837305790037; Tue, 28 Jul 2026 06:15:45 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374054.1621010 (Exim 4.92) (envelope-from ) id 1wohee-0004m7-Ju; Tue, 28 Jul 2026 13:15:32 +0000 Received: by outflank-mailman (output) from mailman id 1374054.1621010; Tue, 28 Jul 2026 13:15:32 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohee-0004ly-Ge; Tue, 28 Jul 2026 13:15:32 +0000 Received: by outflank-mailman (input) for mailman id 1374054; Tue, 28 Jul 2026 13:15:31 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohed-0004kQ-4V for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:15:31 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohec-004lat-HR for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:15:30 +0200 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ab58-2eae-0a2a0a5409dd-0a2a4505aeaa-34 for ; Tue, 28 Jul 2026 15:15:30 +0200 Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ab72-4cb1-0a2a45050019-d155802acc5a-3 for ; Tue, 28 Jul 2026 15:15:30 +0200 Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-4955aa106b1so36772235e9.0 for ; Tue, 28 Jul 2026 06:15:30 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47f85c67339sm61424883f8f.31.2026.07.28.06.15.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:15:28 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244530; x=1785849330; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=x5Ura/4aSJTT1yjoaooe8WKNPNZs5RjaVEYUlZ6AWEA=; b=GehQfQTV2NQJOnoyAKgo+0WjICNtJpSxbDh/D7rsEyYLwmHpOMFhDFc4qAJjax+oWx ATFsPoBCSTjuXVM2c2Enn5K4A/bma5MX4g4aRnPBscOM+H8cgUow8o1TJsXrOTEiR++k MavkqEwDUtQEbUJlEXC3/gL0wuKzD0KKUx10zMdRaffDlaouBZsk7al5HBwbMhDq9SgK PsM+q5nwRGI8nYXKO4+8BaCzPoneTypVLKCjp1TELw/usU6944x77h+4bAwWXmVZisvU U4gwgfXQv9J7JV3lIUVRkov+GmX5sMgseXBVHgWQJSTp+CXIdQsJoQFvBGOrOd1FRbpI 59WQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244530; x=1785849330; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=x5Ura/4aSJTT1yjoaooe8WKNPNZs5RjaVEYUlZ6AWEA=; b=WHC3mRK6v7iD4r/0I9nQRyucTk/DYgAPoWNSUIswL+E0LPxzvewiQR4mumLfBLs8nS h1fP5lgALEyW7IMhL3NQu8MoLN6/JKB5v7y940U3sKiNQBPTeKG7iRCGjh1HLsqyiliW JLPAGUjcyrReScJdvpBTcxPDzs0/iTb3Eyw4idtPcr7vT/aGq5gjTPjWcaK3ocAFEFzP Wsn2wrG+x7ur5pnYoLSFVljviJ+j23phouMe/ZEnMdVH8dqynWZqp1AStoou9LNC5biD cnh+OuGKyNr15dAuG+ltaxH7sxW8/O+FZReo3tyImLayM7Oji0ovbkRIuCUKt65Olfff GRyw== X-Gm-Message-State: AOJu0YyFP7Y3QCnShHUaBaU4IiNp118sV71405aoDjRAsBy9Rs9ZEmpP VlMkRuLmX3raiezYPGbxRr3fbwDKr2cK2g2Ss5JxBTDAQv/fZcYX9fgf7JsAyH4RS3kZilfIg8M 8odn/Aw== X-Gm-Gg: AR+sD12dVWGbyRnahD/88wSvWe8Eu089L07VdOsTjt9abQbtTRNc9Aw22A9E6lOSpyh 1a8dRKwQcLffz/VBThqxSCIFrtUwbjGoCJ8mD2PvG4+8blGiJEUhZGpn0HY1uQ8SjWzFPxRNxX+ NgPQx8aAhGmYZS1WLekIMf4oD0RjTlzcFXbjqd8TSB5/CSkQBAUTKhDbgUPrRyUOxOlPxJWMKkC PZ15tMAJgRXusskIKVungvkjU2tVq81IjJ53ABLQcUIcaM1uvxw7MTjUyc/ebYcm1YbxSJ6dzEA OFGsXJYxSL1rsNjlDmc7FSQNhP6SFcbCfBCgJZKr2N4dmIxTti3P/7fKX6x+Z4ySYELytJ4JFfv aEvN66EvNrLOAXOGxjPDyFu8y5f1lCeIJY693uqUvHguYsc95Euq/yUUtxoQ2nr0tqSmnI2R8YG K1Dl4eq1jmW8li6HcUCCiVrKj6sRLiG1wj922JMOoN1GS7EMF1FUILuhq+prgjRJ6tOQ== X-Received: by 2002:a05:600c:8b2e:b0:495:7952:64df with SMTP id 5b1f17b1804b1-496c659f5a9mr31947615e9.36.1785244529680; Tue, 28 Jul 2026 06:15:29 -0700 (PDT) Message-ID: <2916d9d7-9a9f-4e1f-9202-628532abe35f@suse.com> Date: Tue, 28 Jul 2026 15:15:27 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 06/24] XSM: make .kexec() hook dependent upon KEXEC=y From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-c201ff/1785244530-F72B32A1-A26F38C1/0/0 X-purgate-type: clean X-purgate-size: 1292 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244546787158500 Content-Type: text/plain; charset="utf-8" It's unreachable / dead otherwise. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -271,11 +271,13 @@ static XSM_INLINE int cf_check xsm_conso return xsm_default_action(XSM_PRIV, d, NULL); } =20 +#ifdef CONFIG_KEXEC static XSM_INLINE int cf_check xsm_kexec(XSM_DEFAULT_VOID) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, NULL); } +#endif =20 static XSM_INLINE int cf_check xsm_schedop_shutdown( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2) --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -61,7 +61,9 @@ XSM_HOOK(int, claim_pages, struct domain =20 XSM_HOOK(int, console_io, struct domain *, int) =20 +#ifdef CONFIG_KEXEC XSM_HOOK(int, kexec) +#endif =20 XSM_HOOK(int, schedop_shutdown, struct domain *, struct domain *) =20 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -536,10 +536,12 @@ static int cf_check flask_console_io(str return domain_has_xen(d, perm); } =20 +#ifdef CONFIG_KEXEC static int cf_check flask_kexec(void) { return domain_has_xen(current->domain, XEN__KEXEC); } +#endif =20 static int cf_check flask_schedop_shutdown(struct domain *d1, struct domai= n *d2) { From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244570; cv=none; d=zohomail.com; s=zohoarc; b=XC978DmvknXRVj8IBHrfpzTZsmvrgrA2dXa96SI0Ax5Z/mE5dL6w0O/O0FKSn7H7IHkFRKmbC6WJNYz1PpdjdZE7PB3SboDKqnVgBUSdeLtk+wugHrXN0k0LuM28QmiTQj7HLpODSg6FMk7WgxpCvafKsgD+B5qIZxICcR565JI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244570; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vm/RQUk9KeWS0iCLXC9t6dnguWLLplVaAAYe6yw/m9s=; b=e0K+Jx+JT5wxZNYmijaJV99iQUk1FLnDNH9fAmBtLuNaEggf12nKv1OUeiLbYVqmdGsMBybiQhXjJ8e00tA52iW1gauC8fK6nIcpbLgN2l4u+DbzAOSxqexrviBlTjD+gmFwouQsBY829WaV1z/kqK6y7Nnj7XDNrsPYPhgxGSo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244570153580.7094894598127; Tue, 28 Jul 2026 06:16:10 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374061.1621019 (Exim 4.92) (envelope-from ) id 1wohex-0005Et-RC; Tue, 28 Jul 2026 13:15:51 +0000 Received: by outflank-mailman (output) from mailman id 1374061.1621019; Tue, 28 Jul 2026 13:15:51 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohex-0005Em-Nd; Tue, 28 Jul 2026 13:15:51 +0000 Received: by outflank-mailman (input) for mailman id 1374061; Tue, 28 Jul 2026 13:15:50 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohew-0005EJ-Ma for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:15:50 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohew-002thY-3F for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:15:50 +0200 Received: from [10.42.69.3] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ab81-5cb7-0a2a0a5109dd-0a2a4503da4e-10 for ; Tue, 28 Jul 2026 15:15:50 +0200 Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com) by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ab85-fae8-0a2a45030019-d1558030ace4-3 for ; Tue, 28 Jul 2026 15:15:50 +0200 Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-495590dde14so43188685e9.0 for ; Tue, 28 Jul 2026 06:15:50 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-496c45e92eesm82872285e9.15.2026.07.28.06.15.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:15:49 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244549; x=1785849349; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=vm/RQUk9KeWS0iCLXC9t6dnguWLLplVaAAYe6yw/m9s=; b=dmXZKbQJ+d5U3+RYXedVj2gt3dPq7zvG6Vdy8/MoUSg1mTwmneJvq3cYq3eLY5IZlA WWzhPkmt+eVu3Iie5zFlI8XVVx2sImrdLv5yjKPzeYymu6gQ3jkq4SXZQI7hFGHxOkaK wCDEdESLY1UlSztsPs07JP8UC0zS+fIEaSBAXBn5UY2gyiiHNf+BexGfHIARecU33PIC KYd85QA56wJRthSHwMI7GJr6fmMTtZu8reVgLcNYGFUmnKxm6g4Loya3jFJkF7jch6RC 9iPbYr7mBf7EQ8q7KoL3DC363vQODQU/JrTvd0GoYGezSibqGtTLx+4xrOsm9PVdvhdX jJNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244549; x=1785849349; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=vm/RQUk9KeWS0iCLXC9t6dnguWLLplVaAAYe6yw/m9s=; b=LJRwm2WzlQiMFo0fZARfOWjM4hvR+Dl0pyWuUQn1Opof5iyAswie5oWumUu1lXAC99 IEMlkuPNMWtyAjcKJlhd4Xz9zXyQoQl1nCA3YHYEllDox8YRqt4DRwGbq1x1QT0H0CAV /ErJZO1KrgZKnBS495cMr4Do56bncEyVouPuvRLVfmffuINoHoLGTlQJE39St3eVS3ca wjonXx7vSDiqNI6zzAuX8OCsHJHAFBK9dq5H/eKDetUUssaXvpCZv//fWikl8NU8jFx4 Z4GuqUA253PcouOxOhDhcjsfx+yeY6p7f7DCjLIG8ExjEKmFIP39qIKCbB7GkiJHFpQO x0eg== X-Gm-Message-State: AOJu0YzshW2BMmB4tIX+NILachVj2ALWD0alo0BeBembdl8QX4RGCh4N zi2k1a52iJrL3bvbEEw96SkiXMUTozc4TIYS4FtYiB877gBxJlAO66inxu0xg4yxqUFgUWXHWjF kUNxWOQ== X-Gm-Gg: AR+sD12OX68QOrd/4VG1JoAPxe9FyUepl3vae/LSeFLNgSpg37oewmDwDGRqHprT6RO If52n829uQgslh648+3OpIxl+JbddC5LOy5Lrx8ZYI3yF5YjgnHoFPy6ohFlPKTLiGT7ysUty1J ZhJmVPHeoiYx3H8F1Uu+tRyQmokgJzeLJSFVffnDYocv43gWkaXJKc67UQ8YSC5W+to9p6LfO3d 3vOgo3sCNLAAOoErqffaebt52boKrhYIpcHHMaDJ7LguUVawZQnDR0ewdkWsUH7RysZZ3e5i//Y tyrWcPlRnNENoOnkwQ22Md9h0+WCiO8LZo2nniQoVMbvYdM/WVSZuj3l0GimtdmAJBFcStGRKF1 xWzauU6795USd7KM/HhF+inhKU05RUJBxbQk2r+o9LYr0gKU/qQH5bt1J5eF/7fEbvt/oS5QpyU hpUEOye1igARdpNCt4px7iuj1doV3GPRLI1ZvuzXa8/vBlKj86Y0F1xxscuOE/9sc+mw== X-Received: by 2002:a05:600c:3b90:b0:495:6478:2dbc with SMTP id 5b1f17b1804b1-496c641067dmr29647315e9.6.1785244549458; Tue, 28 Jul 2026 06:15:49 -0700 (PDT) Message-ID: <4efdae21-c8be-4fa0-825f-6369ed5d0b90@suse.com> Date: Tue, 28 Jul 2026 15:15:48 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 07/24] XSM: make .hypfs() hook dependent upon HYPFS=y From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-33051d/1785244550-772F54E9-4532E20F/0/0 X-purgate-type: clean X-purgate-size: 1406 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244570825158500 Content-Type: text/plain; charset="utf-8" It's unreachable / dead otherwise. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -437,11 +437,13 @@ static XSM_INLINE int cf_check xsm_resou return xsm_default_action(action, current->domain, NULL); } =20 +#ifdef CONFIG_HYPFS static XSM_INLINE int cf_check xsm_hypfs_op(XSM_DEFAULT_VOID) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, NULL); } +#endif =20 static XSM_INLINE long cf_check xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void)= op) { --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -100,7 +100,9 @@ XSM_HOOK(int, pci_config_permission, str uint16_t, uint8_t) #endif =20 +#ifdef CONFIG_HYPFS XSM_HOOK(int, hypfs_op) +#endif =20 XSM_HOOK(int, hvm_param, struct domain *, unsigned long) XSM_HOOK(int, hvm_param_altp2mhvm, struct domain *) --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1345,10 +1345,12 @@ static int cf_check flask_resource_setup return avc_current_has_perm(SECINITSID_XEN, SECCLASS_RESOURCE, RESOURC= E__SETUP, NULL); } =20 +#ifdef CONFIG_HYPFS static inline int cf_check flask_hypfs_op(void) { return domain_has_xen(current->domain, XEN__HYPFS_OP); } +#endif =20 static int cf_check flask_add_to_physmap(struct domain *d1, struct domain = *d2) { From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244597; cv=none; d=zohomail.com; s=zohoarc; b=bL+SFeAKc2Zwqm0fPMvC1qT5ymrGbsFWAlEYuA1wbwea07WSS3Ck395bZDYf4ZvKwaCJtM/f6a/plCsQQ6TOj8ejGIV/o0dzdpX35UaAAcJxXaa0Ado7lU7ZWT4vMlBUPfHZ4/4OOHa4OwdHMtFzim7JSUVMfyTPJxG6wpe4q7w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244597; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zetRrDWUxrCa7/9hdGwxlCdEe6eXsmxWFslnNICnQn8=; b=cVZRCU7RNT7TxuWheFFpqC4VU1Ty/T76GAde80yTxELO/r6O4tk3e1UvSSfKMfgtp2i6fzE5kdYC+TCseYLn1qYduPcr1iJNHATTHR1BfFvyozDa3u28JHSQVSoDp/Ccix7pbWwjpQP88iXTjiMY00IrTslrqN8DPIIuZxWNI58= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244597161400.50110998083574; Tue, 28 Jul 2026 06:16:37 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374070.1621029 (Exim 4.92) (envelope-from ) id 1wohfO-0005nD-2s; Tue, 28 Jul 2026 13:16:18 +0000 Received: by outflank-mailman (output) from mailman id 1374070.1621029; Tue, 28 Jul 2026 13:16:18 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohfN-0005n6-VC; Tue, 28 Jul 2026 13:16:17 +0000 Received: by outflank-mailman (input) for mailman id 1374070; Tue, 28 Jul 2026 13:16:17 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohfM-0005ms-VK for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:16:16 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohfM-00EpXl-8X for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:16:16 +0200 Received: from [10.42.69.1] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ab98-e002-0a2a0a5209dd-0a2a45018de0-42 for ; Tue, 28 Jul 2026 15:16:16 +0200 Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com) by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ab9f-5984-0a2a45010019-d1558034d5bf-3 for ; Tue, 28 Jul 2026 15:16:16 +0200 Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-490cf322ed0so27646635e9.1 for ; Tue, 28 Jul 2026 06:16:16 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4957bd9e980sm306652945e9.0.2026.07.28.06.16.14 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:16:14 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244575; x=1785849375; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=zetRrDWUxrCa7/9hdGwxlCdEe6eXsmxWFslnNICnQn8=; b=eRkjOq2hJ6JQrfCRlVepoWNeKeJbQHQavqQJEY1l707q0LLJBzfeH5H4jjZH00KD1a PiQodM6oEVZh5LcTftdmunxvwDYIxTnnILugy7SdEC73JYbVuUlnkrULPwOzH+6U59h8 0Zjl9MlVYNkGjJTcF4AFwb67E8VS2+vTK0AFHPGE1HjMg4oskBDxCYPrPBmpDmUrpM/S VgcWANEsk4hUrY11nJuXeXUHPTYyshX0XFnC7vFEe7nO2pIMuxmWcxJbagLy0oindjTI 7+MbX6TYtISTeFIR2nw3Ah9lXSYkCxRU4WNKYcgXonqdqTDFp1Z5umHfhxmmpKTBVQNf e+4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244575; x=1785849375; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=zetRrDWUxrCa7/9hdGwxlCdEe6eXsmxWFslnNICnQn8=; b=Rq7IcgthbIavIKzhmyn5rQQnwTsdmfT72QcYMyWF4bjH6JGmsfcRTFIwUlkgJdqJgu POy6ZKe7rh9XYV9SeVlsHRkJRkSRzc11Bnm6GeW58hLCdVVH+YpYeXO0OXb05QkB/Y8H Xys1vCOUSjlVB+LESq7tT74vbT23Yz7CWJ1mOMrw5UKcLN19Ui+rlJcubruM409LxreO DxffYAOjnXxfNA7j8I64jismd88ilPsNXRS4YbZltJe905PVz+5us993+4h+fZM+zWP+ JaYcV/WccXrk5vcSmr9gzqOKg3DGN6wu5yLdf049JCNH5/pBtQ0ETb3XwXTLmDGr5v9D i1EQ== X-Gm-Message-State: AOJu0Yy2R6xUm7RPeTimZz2EfzoWtA9fYtC/f1Ia2ZTWoEhyBAEmehHy xPush3ry+KkRatA/6PBC0rQJDxmWEBM/nlKCqdEmD/9aYPm2vMN+ZXS7AAo1aywmJHHMnXL3xV6 7EWxzDg== X-Gm-Gg: AR+sD13dZUsvNl+XAeyMzUP8hRyUIjiNcyNJTvZbWUtPuKjaTCXjXFZ59Sinj1gRir4 GcITLdqJimZumDKy/VTcSKXXzg159GbyYQYW6u3D5NzGbDonzfQC5v2EME9CyBJ4FDqDxO5m+MA pzXW3P56J/rkOLA/t+r5R6PR6Sg8bntotRlw5DchD+EkSwGSWdncj1NbgdSsosIxmGyqIqV62AU KFuzfZB6hDrvpFIJli/pM/dAoLhhW2N7Wcx26065dEuYnToPLA6BL2njFoUdtCmKTbZRtl6aY8d e0gXRzVNqSzutMllwJ3/4kdc0u2hXfhCuZmrptdanmpo33MVQU1Ol0r62hjy0NtJgAfhp+FoIw1 LyR3ky0JN+1lHKievpJJLG0Gqm9UkLtCtVVyvn8dAeNRyeaScD4MAzpXk23zYCOsMfgxZfTchrk fzjc4N6mfKeyNLioO4kQa/dyAqgUnfU2gwj8elYO4CzNLXZvwldP/SLtjPeMnIUrsrOA== X-Received: by 2002:a05:600c:698d:b0:493:bc4a:fb56 with SMTP id 5b1f17b1804b1-496c6586a23mr25150305e9.39.1785244575383; Tue, 28 Jul 2026 06:16:15 -0700 (PDT) Message-ID: <5250093e-174f-4d2d-b19b-95a314b38469@suse.com> Date: Tue, 28 Jul 2026 15:16:12 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 08/24] XSM: make .hvm_altp2mhvm_op() hook dependent upon ALTP2M=y From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-d62444/1785244576-BDA7E757-CF311A0A/0/0 X-purgate-type: clean X-purgate-size: 1651 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244599109158500 Content-Type: text/plain; charset="utf-8" It's unreachable / dead otherwise. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -583,6 +583,7 @@ static XSM_INLINE int cf_check xsm_hvm_p return xsm_default_action(action, current->domain, d); } =20 +#ifdef CONFIG_ALTP2M static XSM_INLINE int cf_check xsm_hvm_altp2mhvm_op( XSM_DEFAULT_ARG struct domain *d, uint64_t mode, uint32_t op) { @@ -602,6 +603,7 @@ static XSM_INLINE int cf_check xsm_hvm_a return -EPERM; } } +#endif /* CONFIG_ALTP2M */ =20 #ifdef CONFIG_VM_EVENT static XSM_INLINE int cf_check xsm_mem_access(XSM_DEFAULT_ARG struct domai= n *d) --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -106,7 +106,11 @@ XSM_HOOK(int, hypfs_op) =20 XSM_HOOK(int, hvm_param, struct domain *, unsigned long) XSM_HOOK(int, hvm_param_altp2mhvm, struct domain *) + +#ifdef CONFIG_ALTP2M XSM_HOOK(int, hvm_altp2mhvm_op, struct domain *, uint64_t, uint32_t) +#endif + XSM_HOOK(int, get_vnumainfo, struct domain *) =20 #ifdef CONFIG_VM_EVENT --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1393,6 +1393,7 @@ static int cf_check flask_hvm_param_altp return current_has_perm(d, SECCLASS_HVM, HVM__ALTP2MHVM); } =20 +#ifdef CONFIG_ALTP2M static int cf_check flask_hvm_altp2mhvm_op(struct domain *d, uint64_t mode= , uint32_t op) { /* @@ -1416,6 +1417,7 @@ static int cf_check flask_hvm_altp2mhvm_ =20 return current_has_perm(d, SECCLASS_HVM, HVM__ALTP2MHVM_OP); } +#endif /* CONFIG_ALTP2M */ =20 #ifdef CONFIG_VM_EVENT static int cf_check flask_mem_access(struct domain *d) From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244649; cv=none; d=zohomail.com; s=zohoarc; b=m8lBN7OHiQqHlE42pyTiU6PdKVN7CVVEjxzJHXmtQggNllvkQ3UXEHz2NR1Zuw2mkSrX/CD/F0uHHbjgvzD89jg7TyET0b2I5gNoYl6Y42Zn9e3W2EKxWvuSYSr+gKDDPnHULH7rovvOfzUThvl5B6GsCW1wOxLJxwpfsrrgmeQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244649; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WFTGwAO/jWijw2cBrXOLfG+sKxJS+HJkR11e/wlol9E=; b=GbWz/iOiYMXEvWygVl6KZ1CRdz60LuHosyvYSjwrlkI5s8Ln9zdJQMH2ZP8bRL/pz+hO1i2m8mD5mbzbMQyhOm4KuX+UpuRlwo2/Xk7XC9LS1+okcsqc1/41+MMBqTASu7FnRerlHwcN3yIXyvQtL+3WMuWNtAiA0cypgBRtnaE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244649418432.3702739720162; Tue, 28 Jul 2026 06:17:29 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374079.1621037 (Exim 4.92) (envelope-from ) id 1wohgE-0006S0-DN; Tue, 28 Jul 2026 13:17:10 +0000 Received: by outflank-mailman (output) from mailman id 1374079.1621037; Tue, 28 Jul 2026 13:17:10 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohgE-0006Rr-AM; Tue, 28 Jul 2026 13:17:10 +0000 Received: by outflank-mailman (input) for mailman id 1374079; Tue, 28 Jul 2026 13:17:09 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohgD-0006Rh-HH for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:17:09 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohgC-004cso-UC for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:17:08 +0200 Received: from [10.42.69.4] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68abd2-e002-0a2a0a5209dd-0a2a4504c8be-10 for ; Tue, 28 Jul 2026 15:17:08 +0200 Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com) by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68abd4-b57f-0a2a45040019-d155802dedc1-3 for ; Tue, 28 Jul 2026 15:17:08 +0200 Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-49553515a8bso47543815e9.1 for ; Tue, 28 Jul 2026 06:17:08 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47f85bdac28sm56348963f8f.16.2026.07.28.06.17.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:17:07 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244628; x=1785849428; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=WFTGwAO/jWijw2cBrXOLfG+sKxJS+HJkR11e/wlol9E=; b=HlUYvbyuJZTLehkMduc/OAicUNe7KUuoqLt8L8hnwuF94hKHA+LTKFhKpJZee2J4Dp lNKJ/BqMwolIBQfza4FjGYuHcBzKbO1EzYcagYuivfaHL5DAZjoDORyX3RkS2ekIp1k4 6cTFhMIKI8yHZfQUvzVFu2Ehcxe9ImIS3lafv96uqjvANe5jHOuxA1X3ZlHVrg1C/3an HxDW0EbKnu5ZCzyIcr5HiMMCwYDjfJEWG1cL6I0dh6Y6uKK67KSJRMEH+bTt+KHdh4QA cau0dfJ3i/5acr3iB9gRG3rhlO1ZgML6yarTXsPU+fDclhQv09nlmEIQeZtNcF1t+WUa 1pKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244628; x=1785849428; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=WFTGwAO/jWijw2cBrXOLfG+sKxJS+HJkR11e/wlol9E=; b=TD2yGPhGA5QUuv6+W5lQ7plH3htxi9X+/hHG43cG/rY4U95uCAcxLaQK1MXibQYOhv GKM9oN0LnuZcwsImIIoipskcEK7nhfuPdCP/CFgpZaFnCvGAKb2Mcj6emm2njyd5+T8Q KtIVtj5y+cy3RPI70O9XD2dgkCUaSU69tzMjilXfT0JkfG6/iA+KAFS1U4kGBcpObwxu 1J+M/vl9uTvePGTAWdNYscbWSq6KQBL1B1N+90LPIRO1j1bgY2QgPtYZCWphSHMcWo94 jwYvydQTncyVWya3rulyNSX0ueWa7Rl6RfzF7QVrg5FNH89Gp0+UDP98/ElpPjW+Pggs pZNg== X-Gm-Message-State: AOJu0YydutTO7qIZsocWrLpax1AJ65SAVwx2qfqwhWpdY6dhIGLA4tm+ VBGeyWc+MpDMd7ZY8QL33gW1v1LETXyy/qnFQjuW2GBcGbN7y+z46T3+bmX6p59d8QC5CVXVsVg tveTj7Q== X-Gm-Gg: AR+sD11W/EzPTiQ38A8Gk9Hict/M7fEaFtkG6a02WwrHA4wyPNblrbZKAOzGismrcBL /XkJQ3Iq6ku+cCgxkbRZafgmOrv0crMQvXxhNYC5cO9qml+RqPOhquzq7+zmG9CGbDEh16IBF6d Ou7RlfXz6zijawSOTkNivofNKKA8BfJFah6DVUGbcWY24woancAL67/smzXWsdkvwd80meZZfWE 8fQ6F4kcf9HPNA5MQLlZSNj+7dnMcYYxE3gtp5/fEFEjxiGXpEicRjl5no5T/PMlJI5wH+W34wj qS/qMLz+6CL0uKcM7hSXJCEKBIb+pR9K6bF/7SU5vcrzNlm/Rbez0roQ+siU2/UWQ884s+h3p8k VpzuAb327W5p7h66oMJssUwPbLWbAg3iqlabAnxd79d6hAHyuhcKw03FB86mv43Rx3KCmDzcteQ 67A7OM0LwfL9gahttadf6CuEKUm53TYG+yUxrRv4Py6GnJWZoqu1gUBZFBM6A4Cuv3Ig== X-Received: by 2002:a05:600c:34c2:b0:493:aab3:c09c with SMTP id 5b1f17b1804b1-496c657ec5cmr27684955e9.28.1785244628159; Tue, 28 Jul 2026 06:17:08 -0700 (PDT) Message-ID: <7947b62f-6763-4561-b3aa-c451cfa3dacb@suse.com> Date: Tue, 28 Jul 2026 15:17:06 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 09/24] XSM: make .hvm_param*() hooks dependent upon HVM=y From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-ebf023/1785244628-502E4B50-F1A6BBC9/0/0 X-purgate-type: clean X-purgate-size: 1847 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244651613158501 Content-Type: text/plain; charset="utf-8" They're unreachable / dead otherwise. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- Strictly speaking .hvm_param_altp2mhvm() is dependent upon X86=3Dy as well (but oddly not dependent upon ALTP2M=3Dy). --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -569,6 +569,8 @@ static XSM_INLINE int cf_check xsm_map_g return xsm_default_action(action, d, t); } =20 +#ifdef CONFIG_HVM + static XSM_INLINE int cf_check xsm_hvm_param( XSM_DEFAULT_ARG struct domain *d, unsigned long op) { @@ -583,6 +585,8 @@ static XSM_INLINE int cf_check xsm_hvm_p return xsm_default_action(action, current->domain, d); } =20 +#endif /* CONFIG_HVM */ + #ifdef CONFIG_ALTP2M static XSM_INLINE int cf_check xsm_hvm_altp2mhvm_op( XSM_DEFAULT_ARG struct domain *d, uint64_t mode, uint32_t op) --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -104,8 +104,10 @@ XSM_HOOK(int, pci_config_permission, str XSM_HOOK(int, hypfs_op) #endif =20 +#ifdef CONFIG_HVM XSM_HOOK(int, hvm_param, struct domain *, unsigned long) XSM_HOOK(int, hvm_param_altp2mhvm, struct domain *) +#endif =20 #ifdef CONFIG_ALTP2M XSM_HOOK(int, hvm_altp2mhvm_op, struct domain *, uint64_t, uint32_t) --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1368,6 +1368,8 @@ static int cf_check flask_map_gmfn_forei return domain_has_perm(d, t, SECCLASS_MMU, MMU__MAP_READ | MMU__MAP_WR= ITE); } =20 +#ifdef CONFIG_HVM + static int cf_check flask_hvm_param(struct domain *d, unsigned long op) { uint32_t perm; @@ -1393,6 +1395,8 @@ static int cf_check flask_hvm_param_altp return current_has_perm(d, SECCLASS_HVM, HVM__ALTP2MHVM); } =20 +#endif /* CONFIG_HVM */ + #ifdef CONFIG_ALTP2M static int cf_check flask_hvm_altp2mhvm_op(struct domain *d, uint64_t mode= , uint32_t op) { From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244669; cv=none; d=zohomail.com; s=zohoarc; b=O5rJZOgRRXMpWcBvi1obA53hgaNWYYkbnl//uBN0Y8+vKx1QhRHZBwVc759R1DRYfJ9FNziyQ0CZVzN0kAt7cV/I0aEIQRVzXuVWalq14/12wFgoo4syTVJH9vV7lYrN7/WPLfCCpL9bzgdgAolhdNLCEPdDE+Q1bgLDqnlsE58= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244669; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Fqt4cS55CIS90Qxati5UX2foFynqjLHgo/j+EI9SP4A=; b=C1jUVjg7dm0BtGDJO9I+nnwmOUEmn2kbQWAIn+6lCDG9TJsGHLkdUA11R9zmMtvJkHYg4QG+Q2qrFngscAkdh/l7H0XDgSCcDYm0mEnEWdHEMBMF4XziyZVUP/y0iCWPDQhPaWQ6b3/gXm5GvJRAlJ1pVIfedua1o2fvvJMIW4A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244669835105.16963790398268; Tue, 28 Jul 2026 06:17:49 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374087.1621046 (Exim 4.92) (envelope-from ) id 1wohgh-00078E-Ki; Tue, 28 Jul 2026 13:17:39 +0000 Received: by outflank-mailman (output) from mailman id 1374087.1621046; Tue, 28 Jul 2026 13:17:39 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohgh-000785-Hu; Tue, 28 Jul 2026 13:17:39 +0000 Received: by outflank-mailman (input) for mailman id 1374087; Tue, 28 Jul 2026 13:17:37 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohgf-00075g-PF for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:17:37 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohgf-004lo6-5v for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:17:37 +0200 Received: from [10.42.69.6] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68aba9-2eae-0a2a0a5409dd-0a2a4506d66a-48 for ; Tue, 28 Jul 2026 15:17:37 +0200 Received: from [209.85.221.53] (helo=mail-wr1-f53.google.com) by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68abf0-195a-0a2a45060019-d155dd35ec99-3 for ; Tue, 28 Jul 2026 15:17:37 +0200 Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-476a130c138so3722768f8f.0 for ; Tue, 28 Jul 2026 06:17:37 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47f85b9a60asm62190630f8f.3.2026.07.28.06.17.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:17:36 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244656; x=1785849456; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=Fqt4cS55CIS90Qxati5UX2foFynqjLHgo/j+EI9SP4A=; b=WESs0aCbS3uL4y8zbzXy7X+qmBRE6tNUCkeCJnCfLcv8vTTDh8Kh1EuyFvgxaazC3d AY5swW1wHt2vQVHsHOHJ93b3+5KcHRu1btb99edM7Tgmnlpx1Vgn7PuvUXwp6lCoRRz/ 58FWKesP7xOTfOq1btIcjX80EEFd5fAEpV5ajsXkPJSbi/cq4IpCdqP+EaYK5qK8fD+3 v4SMPp8uccYtLZqyZbECcOxOQWX/IEjx594dEqG5Iljh1LT+vBuWzGv1a+PeRhxeUR/v vNTo6A4+OqlVz0vXfFSvr08fIvWjGXNgw0xb7x88jkJzZD6H5JBwSOPqXtoMHaQgQWH0 XVCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244656; x=1785849456; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=Fqt4cS55CIS90Qxati5UX2foFynqjLHgo/j+EI9SP4A=; b=CT5w/nEDR6N8kKgFJ7AbI5+COmI3flO64/qDFnC/7wg9A4APc2XOpmGEzM3M2xKgSh VwZ4bOaoDsJk9NfxHNJG0tFSWbV9ycIAlG+X/aJ1g0f8eswT88u10i0FS9+n9h+i0wRR kJjP6Zq1k6zjGaEp9AgsOxamY8rw5DA3zYtSgmFEsAkEh9uahTStqpczlc6tRZtpfyBq wNzMUJOpaAu6qNRplAdV8nwc9EmxwRjoEYwTiTBQ7eGA77o2yNlHC0TJ/viMQb2AHPfS lEpa3nFQ2rxxjTSWD9G3t3T3eMZUwblT80iEognFSWEVy2gRh0fnoQ+N4NOleDAxJ6aI Ul+g== X-Gm-Message-State: AOJu0YxOkVOrT2GbDcJgjRGzxF+SokzzQxTlBDPcZfckxRDFz332vGNa r4bFgnKBeBJ4PzFF1k18B1FcRfMJPGYUUsM2YMsNcXsULmjsE7bhEkDtBi2ceecxziwr8vSxCya psroX4A== X-Gm-Gg: AR+sD137tPt/qhFMtseR+QBlTXEUpk6iZs3Qp37Js0wbRggC9iqTiuRa5zL3n8KO0CL ELqcMvpFrNtEkMIxT7i5yj1mvaKUHRbhkP2LEH+ozeh1M4aWmUmEW77bRU+7qs4yy/3cWulpeR7 CyV2RizRDSRBMmWPrkl/hGXb+TdI6R41L84I0KVjgdmoneCLAFiCk2lcx3fGEeWkQHIXVfFvmuU fIjSMJFkYmNl3ZMzxAO/UqLLeeONe2CrSsw4Gcu6vV1Toc1S4aTRiepriJZJwbmbKUIYUdbPY0e 1bzrGipczcOHctnVqbmdVbKa1bPcAAjOAP9SGjpzhXiGyIUvWjUleVq46rd2xDbOluvE3dmoxoC fP4FDbilaVWTVWatFAVbYu20u+nR5uiNaltj6MtxnH7OvpUft2Sfw17g+6YZOO+7nPVK3K1YiA7 VIdYjtde/8UYECU+wMSSoyee9VthjO7C49aDV0/5W6QHmYVkzaCZq7BbWCbO/UDx4glQ== X-Received: by 2002:a05:6000:2505:b0:47f:7c50:2222 with SMTP id ffacd0b85a97d-47fb1e95112mr2749352f8f.24.1785244656639; Tue, 28 Jul 2026 06:17:36 -0700 (PDT) Message-ID: <9ecda750-f0b5-49ad-9f6b-892a045b3b66@suse.com> Date: Tue, 28 Jul 2026 15:17:35 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 10/24] XSM: make .dm_op() hook dependent upon IOREQ_SERVER=y From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-16d1c6/1785244657-F420077B-B756D22C/0/0 X-purgate-type: clean X-purgate-size: 1324 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244671746158500 Content-Type: text/plain; charset="utf-8" It's unreachable / dead otherwise. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -739,11 +739,13 @@ static XSM_INLINE int cf_check xsm_pmu_o =20 #endif /* CONFIG_X86 */ =20 +#ifdef CONFIG_IOREQ_SERVER static XSM_INLINE int cf_check xsm_dm_op(XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); } +#endif =20 #ifdef CONFIG_ARGO static XSM_INLINE int cf_check xsm_argo_enable(const struct domain *d) --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -145,7 +145,10 @@ XSM_HOOK(int, ioport_mapping, struct dom XSM_HOOK(int, pmu_op, struct domain *, unsigned int) #endif /* CONFIG_X86 */ =20 +#ifdef CONFIG_IOREQ_SERVER XSM_HOOK(int, dm_op, struct domain *) +#endif + XSM_HOOK(int, xen_version, uint32_t) XSM_HOOK(int, domain_resource_map, struct domain *) =20 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1852,10 +1852,12 @@ static int cf_check flask_pmu_op(struct } #endif /* CONFIG_X86 */ =20 +#ifdef CONFIG_IOREQ_SERVER static int cf_check flask_dm_op(struct domain *d) { return current_has_perm(d, SECCLASS_HVM, HVM__DM); } +#endif =20 static int cf_check flask_xen_version(uint32_t op) { From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244717; cv=none; d=zohomail.com; s=zohoarc; b=ErBIxu8X5Fas2ewc06VNBRKI63MdF4l1t/3CmMda3zZPh5bK6IgmutjQnl3lBZ9EXUcTUDRbkfy4A/HaGBf3LOR7qLuewE9AlIKx33Vdsb4Nhxrr8hAh1NEXp1cAYrGyRHi9yQbjMSxxi0gpCks2DVD8ifZT7XRyR5OziKM11Is= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244717; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=nxDb0HMvwn06ZYeHZ0pZqtFgloktAYyPGQloAKM18rQ=; b=VJugxfgVt2bcwduZ9KKobqxngxU90aWP1bBEB7LM81emiGk0F2jk27y2Glme9b9uWuE5t5AOEzgPPN9IgVxD6BakfBeT8KWr1EX4hR5W59oltf9zbSogznlbpzgcbLkHxEttfIRWMvnco8oAxXF4NTtxyE22qRuuZD1ljyTMfwY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244717645497.20485379262743; Tue, 28 Jul 2026 06:18:37 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374094.1621055 (Exim 4.92) (envelope-from ) id 1wohhM-00084h-TB; Tue, 28 Jul 2026 13:18:20 +0000 Received: by outflank-mailman (output) from mailman id 1374094.1621055; Tue, 28 Jul 2026 13:18:20 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohhM-00084a-QR; Tue, 28 Jul 2026 13:18:20 +0000 Received: by outflank-mailman (input) for mailman id 1374094; Tue, 28 Jul 2026 13:18:19 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohhL-00084G-HY for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:18:19 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohhK-004dBz-UT for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:18:18 +0200 Received: from [10.42.69.2] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ac10-5cb7-0a2a0a5109dd-0a2a4502ad40-14 for ; Tue, 28 Jul 2026 15:18:18 +0200 Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com) by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ac1a-6ca4-0a2a45020019-d155802ebc6a-3 for ; Tue, 28 Jul 2026 15:18:18 +0200 Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-4921eed3fa2so26958715e9.0 for ; Tue, 28 Jul 2026 06:18:18 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4957bffc501sm249084845e9.4.2026.07.28.06.18.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:18:17 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244698; x=1785849498; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=nxDb0HMvwn06ZYeHZ0pZqtFgloktAYyPGQloAKM18rQ=; b=XFSDfZL58WYIHJfM7WdmU6NGC515uRDZPVXRYdnNLJg/UddNvpCCdKlJuteSNagL4D DZOaab8HEuhI5sIyXr23QefjNlMZMm0cg6wpfYJ+fYCQO6KrNDmmjibleT11K6QWkwJq L2Z02IfaKsnwqHxVbVwiuNG4xVFB+HYnxgzrflmuI1gI4llxOTLu14XGmN711SXKOnyT uaVw+r6/ptrbSHx2LavMmrwhqcORlNFHSN0tPVp13zANWPAhQNrVOSnfCLoBUIxeZBHu mkUCkfR8vDdoD3HGiUHGsbQAj6V3ChYTNiWxM/2Ch86yZiaJTm/vN3wjE7PG6o6x9FU+ LnDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244698; x=1785849498; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=nxDb0HMvwn06ZYeHZ0pZqtFgloktAYyPGQloAKM18rQ=; b=OJNr7i5ob0NYk4ox4CAVsQ+J2aMh12g37UqwaA3rSgPmtm+XWsfVvURKFKKKgE9JHw ya+AO1VIIt3VnBeTtofJC/XxkuTNPDIOg8JPCV2zV1Ft1BocjFCoj1z/kp1W7ZWtvszW Lz5rAsryZXwmWVL3m9IKy00opeBd4Xq2YfVbEadYrdvHNIdJVZg4By/4URzAOUn1NVx7 6iq27DmM5PJZuJqgVbn/bfHIY3s2KgdqepyfdVHqEIN8k7gStxGV/bPqio/xbHKOCEKE kj62kDK8PBmFV5uiQKc1Ufquetos2mPOu20LUJMVkAZt4XGIOKNrrYHTypuC8V3xZCqf KtlQ== X-Gm-Message-State: AOJu0Ywl9FgmljdaA1ed4vquEOOsrJ5mwC38Cn4BUqWx8fxxRfCE/uev HGiotGHQMHI7/Cg4wE/T4bRUUqa/7VuhQPFwo8jANUam5jy2LELZ1F54WJDvn5t+eVBUd6AtTcL 4/DPeZg== X-Gm-Gg: AR+sD10gfWd6me9exYriKGVhPoospyDI4HZwYZ2u/iehVyTyiaO9MUwF0SqbMAdenX/ jl44GadUIEyWsD2kf9IVivvypR0+MQ+4YB7m8A6VKhEwhbAAficl0PjBiaDZqibziMpwL+Kv+MM xJiCPE+xyDBgihZI9X0c1+KGgRtyAF5Lk2peIRYbWpLufPSTZ4R882WIfXH7TcjYIqaziZ1ZyxG dWxcOlyeJpYWIq5RmPbjfW2hDjBz0LbSS0V57SGEpUyXNdj6lq5cGa87SLcwygz7F/Gct3ev7DJ u79s50+Sse6yq42Yv+dnAQ2RnWKSnJSrUs3bwJc2rQLgjXbMf5T4oEPWtKKdHL+LMmqayjDu8Pu w7Cn0SGogRjVRB+i0Xs+qUahmBeQjX6++mj7UnmlMCMHMmP51K9aK1ayfCDF80psoe8E86ZC8WQ HG9hoNDNDgfnRSPuKI+wF+hkRtcSHLZGnpdGk03pQk/S4es2oggu+XQJ5dl/TlcrNC3R9uEUvre 7Yz X-Received: by 2002:a05:600c:c8d:b0:493:c8f7:3631 with SMTP id 5b1f17b1804b1-496c6575e33mr23389515e9.22.1785244697722; Tue, 28 Jul 2026 06:18:17 -0700 (PDT) Message-ID: <73257c34-3a86-46a2-b327-f35bff69399d@suse.com> Date: Tue, 28 Jul 2026 15:18:15 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 11/24] XSM: make certain x86-specific hooks dependent upon PV=y From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-720697/1785244698-F22A92AC-9B11C5FA/0/0 X-purgate-type: clean X-purgate-size: 3194 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244718024158500 Content-Type: text/plain; charset="utf-8" They're unreachable / dead otherwise. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -640,11 +640,6 @@ static XSM_INLINE int cf_check xsm_platf } =20 #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); -} =20 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); } =20 +#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); } =20 +#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) =20 #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_pgen= try_t) +#endif /* CONFIG_PV */ XSM_HOOK(int, priv_mapping, struct domain *, struct domain *) XSM_HOOK(int, ioport_permission, struct domain *, uint32_t, uint32_t, uint= 8_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 } =20 #ifdef CONFIG_X86 -static int cf_check flask_do_mca(void) -{ - return domain_has_xen(current->domain, XEN__MCA_OP); -} =20 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); } =20 +#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); } =20 +#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); From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244751; cv=none; d=zohomail.com; s=zohoarc; b=WHdVughluM67ezKoZh09Um81UqRv0LR+lnn7pClFOU3l6ZaPrqdPYa8B5Hz8VT9r8EazIAdpJGqUyLeE5YbqRMKIeMofSTqbxfJheP/rzYbDFJQRekLaFqo6WRLJzP6HxW4NeSK0o7Uu+Zz7AE1h/+21mdPsXkgK0rS/IXseSD4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244751; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/SmIo6yz+LIUfvr2Dg1NtjOiEKrdqFZFi0UTFgUzEZo=; b=avLtTQEOvB6XDqZ0qAJWYof7Y8h/tmM8zzxxHXzu/kM1zCeZbyOtI+/6LOFO7Yipoi8SIo1eNUFnvoQmTkmGgWju5HIVo2/0I+KZ3vk0y3pCSqkOkMCoh8cS58bV9upIJUz0OuSplhKzhEqWcv8KBFu877Tk3OTUNjxih4HzL0c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244751873279.6527164457591; Tue, 28 Jul 2026 06:19:11 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374101.1621064 (Exim 4.92) (envelope-from ) id 1wohhy-00007c-4E; Tue, 28 Jul 2026 13:18:58 +0000 Received: by outflank-mailman (output) from mailman id 1374101.1621064; Tue, 28 Jul 2026 13:18:58 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohhy-00007V-1e; Tue, 28 Jul 2026 13:18:58 +0000 Received: by outflank-mailman (input) for mailman id 1374101; Tue, 28 Jul 2026 13:18:56 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohhw-00007B-LF for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:18:56 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohhw-007BE9-1N for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:18:56 +0200 Received: from [10.42.69.3] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ac38-e002-0a2a0a5209dd-0a2a4503ba9c-28 for ; Tue, 28 Jul 2026 15:18:56 +0200 Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com) by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ac3f-fae8-0a2a45030019-d1558029d50d-3 for ; Tue, 28 Jul 2026 15:18:55 +0200 Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-490cf322ed0so27671485e9.1 for ; Tue, 28 Jul 2026 06:18:55 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-496c4443396sm88368515e9.0.2026.07.28.06.18.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:18:54 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244735; x=1785849535; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=/SmIo6yz+LIUfvr2Dg1NtjOiEKrdqFZFi0UTFgUzEZo=; b=fnDNVkhhuk67RghCEks7LI27raNe4MAbGBzmWpFTpHURK+9P2xesyI+8QoOjs8EAH7 FTOBG+cUt/Sq3B72h2+2eNA60z8Vdf0vtiuJKyRIMCdiGzk8GelzTIQNSvv9wsfLM4oj EBR4aTqJ4tPaQJuNb1N3Mgw9AhnM2YdKEMDmKC5RL+6kWvoUJ2zDBNWFcIib2xqpH6Qw WEGMygayS8kga7aSnEzOqBImadNM5PxggKKrL1WngcsLiZsrGT62QDXTfIlTgpF+2y2j 8aQy+WcR8rXfoi82Iq8edbmm+P5OV8cF4eGiIs7dc4ncb+819r9ZCnsiEFe9pn4H+v8o TuiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244735; x=1785849535; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=/SmIo6yz+LIUfvr2Dg1NtjOiEKrdqFZFi0UTFgUzEZo=; b=HVKqynQ2kQwCDWmOnFUwtetZEZ4fFAFAEdDQj0ytvkFjSA9Hde02vkqmlZrJHJfks2 +U81oo8LX/qX/Exae4yzNmmSnQfsMSukazyHAaqhStzRtNt/AwwkzNbH6+WB5AwN3dlA Ajh7RO3QUMAdPP302jGInof3X7YDcVoYOIoq9vLypcrxxtlSt42UJ4a6tvZfCcM4D+3n 41nr/Z7vDUgIXAjdU6W9YEkU1TZi/t1Y99s9nW+Axe6u1Y8+L6UrFELP7Yh+Q7BFB9Qm Q9pwuXet6/VSbG+b33fVKQmLgID3nrXhAyrJ+2aWnm2gi+voCo4qotq9hxVyfLQqnlQo fncA== X-Gm-Message-State: AOJu0Yw9TqubpC4PgFD5Z6PLXQlQIkPUiUFd/ff60dpGFDe4kXA38CMH 1oWc/1QHJ7yUMgBcjXgwtdCcJwZk2iXt4/9ECqcON9Pm38kw6Ehm6A2m6SMpxeCgO8gaWfZOHiF oSOQduA== X-Gm-Gg: AR+sD13+SN+2cCA0HAypURnyEwX0V76mRPp6DOXPOD8JdiYWW9KCSDhMeXzUvXmnQ4Q XXNWV7ipZQgzjSNqUsjBu+EeEle6k3oUpbfNwoTRIsED9Ugu4Ix4i4jfTwfW0IRA2WZwy/ramgU q6c7u1+11yFXk6Lng/+iv9m9Q6gELDMiVC/Q8n0oA9IAfNv+N9fSSSo+7uHAniJy6xqy9RXiaf1 QIcqjqf88KQ+HQJUrVWysCKvCTkeoIEfnCL60ppwJ1h+gXPZacenF7XTPf6m1K4H3bCqoX8/uVB KhPzmcaSFIlwaPNH9IqLs1CaktxtdfgJk+AM5Jqr7yOA5xBU6PUdtds8epvqe07JEXZnXd5CZsD e6M6xB1SVre++kj7qXZ+rNaCS3+psJHCAKo09Oz6q/subDo+gCLzc5Neo4M/5qgrIM2tZcJQEly SplXg4vDb2SNMeYqFsf5xm9ftWwz6MGf3Wkx+mtqxIS0ctn9ulCRaHR3XNYl3Ln/cGew== X-Received: by 2002:a05:600c:4f8a:b0:495:78ea:2687 with SMTP id 5b1f17b1804b1-496c6571c93mr24784265e9.29.1785244735437; Tue, 28 Jul 2026 06:18:55 -0700 (PDT) Message-ID: <07e90200-95b5-413f-9259-7f0481d36521@suse.com> Date: Tue, 28 Jul 2026 15:18:52 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 12/24] x86/mm: get_page_from_l1e() is PV-or-shadow-only From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith , Andrew Cooper , Teddy Astie , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-33051d/1785244736-6FCC34E9-E282CBDA/0/0 X-purgate-type: clean X-purgate-size: 2574 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244754203158500 Content-Type: text/plain; charset="utf-8" Otherwise the function is unreachable, violating MISRA C:2012 rule 2.1. With the function compiled out, its dedicated XSM hook also becomes unreachable, so it is similarly guarded. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- It feels suspicious that the .priv_mapping() check is used for HVM guests in shadow mode, but not for ones in HAP mode. --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -837,6 +837,8 @@ static int cf_check print_mmio_emul_rang } #endif =20 +#if defined(CONFIG_PV) || defined(CONFIG_SHADOW_PAGING) + /* * get_page_from_l1e returns: * 0 =3D> success (page not present also counts as such) @@ -1038,6 +1040,8 @@ get_page_from_l1e( return -EBUSY; } =20 +#endif /* CONFIG_PV || CONFIG_SHADOW_PAGING */ + /* * The following flags are used to specify behavior of various get and * put commands. The first is also stored in page->partial_flags to --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -705,12 +705,14 @@ static XSM_INLINE int cf_check xsm_updat =20 #endif /* CONFIG_PV */ =20 +#if defined(CONFIG_PV) || defined(CONFIG_SHADOW_PAGING) static XSM_INLINE int cf_check xsm_priv_mapping( XSM_DEFAULT_ARG struct domain *d, struct domain *t) { XSM_ASSERT_ACTION(XSM_TARGET); return xsm_default_action(action, d, t); } +#endif =20 static XSM_INLINE int cf_check xsm_ioport_permission( XSM_DEFAULT_ARG struct domain *d, uint32_t s, uint32_t e, uint8_t allo= w) --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -141,7 +141,9 @@ XSM_HOOK(int, mmu_update, struct domain XSM_HOOK(int, mmuext_op, struct domain *, struct domain *) XSM_HOOK(int, update_va_mapping, struct domain *, struct domain *, l1_pgen= try_t) #endif /* CONFIG_PV */ +#if defined(CONFIG_PV) || defined(CONFIG_SHADOW_PAGING) XSM_HOOK(int, priv_mapping, struct domain *, struct domain *) +#endif XSM_HOOK(int, ioport_permission, struct domain *, uint32_t, uint32_t, uint= 8_t) XSM_HOOK(int, ioport_mapping, struct domain *, uint32_t, uint32_t, uint8_t) XSM_HOOK(int, pmu_op, struct domain *, unsigned int) --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1828,10 +1828,12 @@ static int cf_check flask_update_va_mapp =20 #endif /* CONFIG_PV */ =20 +#if defined(CONFIG_PV) || defined(CONFIG_SHADOW_PAGING) static int cf_check flask_priv_mapping(struct domain *d, struct domain *t) { return domain_has_perm(d, t, SECCLASS_MMU, MMU__TARGET_HACK); } +#endif =20 static int cf_check flask_pmu_op(struct domain *d, unsigned int op) { From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244790; cv=none; d=zohomail.com; s=zohoarc; b=i5/vVfhGTSCUh7L4e/V4TfnAj310xOOoap46fon5+2MgRdF0bWo5tamK25fra7YbQa6UozIZWLfdtVTpCbtd4xxTg4wYs/Wb8Ft175pwWVSCxH7Nh6jM4pk0agpI4FfKSOdHdvE1ZIlwR4iCQ8mcWH73KF00Y+JSyC6SsOAK/WQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244790; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=oX+S8t4Xv21gIwLzdmsHp6pUsFjHDfd2dB/4aRgiBe4=; b=OeiwG0wW6MEadtjijVexXPaCYD0kFFSeWaicOLAMWtIJ1fFR5MgTw0tPsEoWYDrbI8xVyAtUC08mb37uNYcSYYFcowjxN33SDivgvD0pHpH9PeqLu8VbEy0zkEr8uNkEcU8HFATxJjG223uT7SJQuAc8QCG4Z27QAOFOUoNU7kc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244790696546.9893449685409; Tue, 28 Jul 2026 06:19:50 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374110.1621072 (Exim 4.92) (envelope-from ) id 1wohiX-0000h1-FM; Tue, 28 Jul 2026 13:19:33 +0000 Received: by outflank-mailman (output) from mailman id 1374110.1621072; Tue, 28 Jul 2026 13:19:33 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohiX-0000gu-CV; Tue, 28 Jul 2026 13:19:33 +0000 Received: by outflank-mailman (input) for mailman id 1374110; Tue, 28 Jul 2026 13:19:32 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohiW-0000gg-4R for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:19:32 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohiV-00ES3R-HY for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:19:31 +0200 Received: from [10.42.69.8] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ac61-2eae-0a2a0a5409dd-0a2a4508ecec-4 for ; Tue, 28 Jul 2026 15:19:31 +0200 Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com) by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ac63-f659-0a2a45080019-d155dd2de487-3 for ; Tue, 28 Jul 2026 15:19:31 +0200 Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-47f703a9d05so2581913f8f.0 for ; Tue, 28 Jul 2026 06:19:31 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47f85c6e9a2sm60807339f8f.35.2026.07.28.06.19.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:19:30 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244771; x=1785849571; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=oX+S8t4Xv21gIwLzdmsHp6pUsFjHDfd2dB/4aRgiBe4=; b=EZp31Yl7lw/Hg2w6OF+/UQbXsz+8GvhfBkMnn/XGP6UkmE0frFe36rYRmjfy1OfcrK ZC6sppcShi09eeBr8Zad6FKhR/cnccMouHrGlGN3TbNwPDEIs1gqlBOvJMfKmCyjTLkc bPiavhGx63Uhp/mVfYEPMh9Ez8gNXSonMlhtsXoYg6J/AtiFm9UhDb9ZAoArMDR8C7Ne Mcncx2AX9vAsbAfENoDf8q/4mruqQTUGwfVcSX+jrvFBrOaj9Vt/4ZHtqFsqqilxREHR mlfYvRZQ7ijH4HMmnDYsNURW+k2GGXotcXOYY5c8cuYPBzkaHW1tqzsonB57d9QSoRpT tqJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244771; x=1785849571; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=oX+S8t4Xv21gIwLzdmsHp6pUsFjHDfd2dB/4aRgiBe4=; b=CZv0IgDWLgfgloDWftffM6ypXa0aI53cjpepe9G8Y0PgiGaSSQK7CvjPlujhFK3/2P /MEq/TNjFIu6ypj8jpw/GrVB5m+gkc2bjZGd5r2DtjfjjAHzwqwgLoTQiSV5+s/81QQF DaFSRqFXf/24yAd6CjWdZ9wSTbuBY1/3AWQiHjI+FBeAustsBj11pSZFrl8RO84dXGqi IkW07WFa2HTpOeOFPNrDOZ9GVAKm6jJ6HOTaXOWV3585FVV7bda7tVpEpdqmmzlKTWb3 Ry0qZCHQ0fcCOsqIIUHIL7eMJTpR2ZYN985yeJL3nVe6+uk9RbJndwSA0rPsKrrMjGta ctlg== X-Gm-Message-State: AOJu0Yxrret/wIPfV8Lh8Mjgsvr3QJnEk63MLn6lDrCinXo9k2PEE9eU UI4gjMo5bZRV7xAXBpGPoHwgLlriOj4BO0yIq2+F7Lqr92iIGDbVHJwLXxoNmK6kQzEyKEn2KHz t7Hm8LA== X-Gm-Gg: AR+sD12vEcyHI/Vt1D/kGisbmSS83/2A0x2yJXAIpucr7m1g0n/s9OAtJHeR8UIrjqy D+yNCDox++nx7evHq51Y4Vh1B/rLgUOZEpmZTEysEUo5VLTjaM1UZkFGB40w3J1rA2IOFMNLv49 W2u1A9mdNr7UH2jk/SiYHXy51ZBe8TWuSgkp7fP+xX0MDvFwKIBIEnA0eXzJHyVQD+m3xxG98yW YK33iLtXu5zvXHS34TqTJJRLsVYISR2Ur5AiGILGVCk11mPj4uNuaCTPpFu86YLhQdnHf/Aj+iU WCCBWJz9SRPUseXgVtRQrOhVIXngqoX8/zV5EwxycjV7INOlxVZQyHZlNhSQltXkzqI5WQqlT/J dBq6CzAyNztuK6mJl64zyp8JrewWuXS5JfM1Kar6dQdBkNs/nzTf2EItrIzQNUu/CjsfMVr2aG0 /NPv1W+7aU6idnzKQeYFTILqfADvituPhtvGnoDs18P1zZGtxS2u3NxDDnyJ2Bfzxjkg== X-Received: by 2002:a5d:5f49:0:b0:47f:97e9:fe54 with SMTP id ffacd0b85a97d-47fb1ec2661mr2952117f8f.58.1785244770818; Tue, 28 Jul 2026 06:19:30 -0700 (PDT) Message-ID: <5b3ba207-aa18-4ebe-9c8b-2ccf51240698@suse.com> Date: Tue, 28 Jul 2026 15:19:29 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 13/24] x86: restrict PHYSDEVOP_* when PV=n From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith , Andrew Cooper , Teddy Astie , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-c1860d/1785244771-D6B4187B-7C909BD8/0/0 X-purgate-type: clean X-purgate-size: 4521 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244792497158500 Content-Type: text/plain; charset="utf-8" hvm_physdev_op() permits through only a subset of sub-ops. The code handling other sub-ops is therefore unreachable when PV=3Dn, violating MISRA C:2012 rule 2.1. With that the XSM .apic() hook also becomes unreachable / dead when PV=3Dn. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- At least for the sub-ops using xsm_apic() IS_ENABLED() cannot be used. Therefore #ifdef is used throughout. --- a/xen/arch/x86/physdev.c +++ b/xen/arch/x86/physdev.c @@ -233,6 +233,8 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H break; } =20 +#ifdef CONFIG_PV + case PHYSDEVOP_pirq_eoi_gmfn_v2: case PHYSDEVOP_pirq_eoi_gmfn_v1: { struct physdev_pirq_eoi_gmfn info; @@ -281,6 +283,8 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H break; } =20 +#endif /* CONFIG_PV */ + case PHYSDEVOP_irq_status_query: { struct physdev_irq_status_query irq_status_query; ret =3D -EFAULT; @@ -379,6 +383,8 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H break; } =20 +#ifdef CONFIG_PV + case PHYSDEVOP_apic_read: { struct physdev_apic apic; ret =3D -EFAULT; @@ -524,6 +530,8 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H break; } =20 +#endif /* CONFIG_PV */ + case PHYSDEVOP_pci_mmcfg_reserved: { struct physdev_pci_mmcfg_reserved info; =20 @@ -558,6 +566,8 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H break; } =20 +#ifdef CONFIG_PV + case PHYSDEVOP_restore_msi: { struct physdev_restore_msi restore_msi; struct pci_dev *pdev; @@ -589,6 +599,8 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H break; } =20 +#endif /* CONFIG_PV */ + case PHYSDEVOP_setup_gsi: { struct physdev_setup_gsi setup_gsi; =20 @@ -608,6 +620,7 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H setup_gsi.polarity); break;=20 } + case PHYSDEVOP_get_free_pirq: { struct physdev_get_free_pirq out; =20 --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -648,13 +648,6 @@ static XSM_INLINE int cf_check xsm_mem_s return xsm_default_action(action, current->domain, cd); } =20 -static XSM_INLINE int cf_check xsm_apic( - XSM_DEFAULT_ARG struct domain *d, int cmd) -{ - XSM_ASSERT_ACTION(XSM_PRIV); - return xsm_default_action(action, d, NULL); -} - static XSM_INLINE int cf_check xsm_machine_memory_map(XSM_DEFAULT_VOID) { XSM_ASSERT_ACTION(XSM_PRIV); @@ -670,6 +663,13 @@ static XSM_INLINE int cf_check xsm_domai =20 #ifdef CONFIG_PV =20 +static XSM_INLINE int cf_check xsm_apic( + XSM_DEFAULT_ARG struct domain *d, int cmd) +{ + XSM_ASSERT_ACTION(XSM_PRIV); + return xsm_default_action(action, d, NULL); +} + static XSM_INLINE int cf_check xsm_do_mca(XSM_DEFAULT_VOID) { XSM_ASSERT_ACTION(XSM_PRIV); --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -131,10 +131,10 @@ XSM_HOOK(int, mem_sharing_op, struct dom XSM_HOOK(int, platform_op, uint32_t) =20 #ifdef CONFIG_X86 -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, apic, struct domain *, int) XSM_HOOK(int, do_mca) XSM_HOOK(int, mmu_update, struct domain *, struct domain *, struct domain = *, uint32_t) --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1749,6 +1749,19 @@ static int cf_check flask_mem_sharing_op } #endif =20 +static int cf_check flask_machine_memory_map(void) +{ + return avc_current_has_perm(SECINITSID_XEN, SECCLASS_MMU, MMU__MEMORYM= AP, + NULL); +} + +static int cf_check flask_domain_memory_map(struct domain *d) +{ + return current_has_perm(d, SECCLASS_MMU, MMU__MEMORYMAP); +} + +#ifdef CONFIG_PV + static int cf_check flask_apic(struct domain *d, int cmd) { uint32_t perm; @@ -1769,18 +1782,6 @@ static int cf_check flask_apic(struct do return domain_has_xen(d, perm); } =20 -static int cf_check flask_machine_memory_map(void) -{ - return avc_current_has_perm(SECINITSID_XEN, SECCLASS_MMU, MMU__MEMORYM= AP, NULL); -} - -static int cf_check flask_domain_memory_map(struct domain *d) -{ - 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); From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244812; cv=none; d=zohomail.com; s=zohoarc; b=fbjbDn/wq/nPtYfLA+UsVbiHdvWPVeE1CHjV92v6TEuvjuv2rlQ1GTvj/KOpvN56qnuc8rJEHcxAqtk9aaVOLTT5g9RVHC2muZmyTqaR/xZFUTI2FV+AYt4lO8BuDfKt/ARdkjYhUfmLuwQGweWi5udYc1sCem7ruEJVLjB75d8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244812; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=FRU2aVDELQY8gXnVCRj1wv0Vi1aEpN9TA8YS+W2T4aI=; b=L/6RGk3qYYmmUkd4FkKu5D1h/sNBEyBfAF57L2HFaeGlD3g6OL7+Ple++/qlkzGsXSJlyNg9FDNY1C3rgmGVmZftwg9XmAuA3o1YQevpxrTHL9vBZzmrpGkQdTMJKR7+2xnDqRIObJJrMfFYixv2T8QqQOml0ZzhcCORG7HKkwM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244812325794.3115086476064; Tue, 28 Jul 2026 06:20:12 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374117.1621081 (Exim 4.92) (envelope-from ) id 1wohiz-00019e-Nq; Tue, 28 Jul 2026 13:20:01 +0000 Received: by outflank-mailman (output) from mailman id 1374117.1621081; Tue, 28 Jul 2026 13:20:01 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohiz-00019X-Ky; Tue, 28 Jul 2026 13:20:01 +0000 Received: by outflank-mailman (input) for mailman id 1374117; Tue, 28 Jul 2026 13:20:01 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohiy-00019R-Oh for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:20:00 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohiy-00HAue-2H for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:20:00 +0200 Received: from [10.42.69.3] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ac7f-bab6-0a2a0a5309dd-0a2a4503ed30-8 for ; Tue, 28 Jul 2026 15:20:00 +0200 Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com) by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ac7f-fae8-0a2a45030019-d155dd2ba42b-3 for ; Tue, 28 Jul 2026 15:19:59 +0200 Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-4758bd3731bso896861f8f.0 for ; Tue, 28 Jul 2026 06:19:59 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47f85c531afsm64886299f8f.24.2026.07.28.06.19.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:19:58 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244799; x=1785849599; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=FRU2aVDELQY8gXnVCRj1wv0Vi1aEpN9TA8YS+W2T4aI=; b=C7qA2+0fP0gsv514A6xhK/zrjhv1huZ6xd2u/P1krkp7oi7kILBW6WzqxmfFEubCJP qDD9eWfQADzhL7QIDhUqRHwtmzKZLn+RefCQTfBMsGbgVMRqH2EOj+LBkMkBySS3NgzA 20X95VAyRy4066UkCwWmCpzkN9IlDpBB1RbboepbD2jhZfrj1ku582y4s/CAXmxFjMMA 2o1oabm8kLPnzezS0ipQk5WXMa4cE+39mXDJNttRxQkh+N+oZSPFXHEKYAQHVMLUqG1N 59a/3l8sp7jL2zKhfmh4dwgxj4shIbgCuXPfjZsscxNWzQ4JtqmlA/eCxT32VSvldowd V5Yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244799; x=1785849599; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=FRU2aVDELQY8gXnVCRj1wv0Vi1aEpN9TA8YS+W2T4aI=; b=BpGzN2hoq5tfymX8XQ9CIO23IC43STNDZuDB1rArUOhh1N17R6UIWgsbbnoWTVL+jY Fs5VDKatte9A0c/bkqHzw38x4G1sXnSIn8D8nNECnjg+yttuCutZJqiLiba5If74jVXy LkcWaiWlWDYn9vsW6fp9Yq3P1TVijAXOTckUcaLoc102zx58nx8mYtfafLoDJdGr/z7v yYbvvW7aW3Kk9eD2JCD4q/5SPxoS1AKrrV8VIPxdSY9BSjfrWHRtwTbMrsaj1EvXER/A KkyMkuF7jHm3H2AvzqvluHCgLPBeHiFa+fptihZTAHf1HppcbHeAYAuAIGcOtvXS8jSb B+Kw== X-Gm-Message-State: AOJu0Yy0Ncm9wZNoJFgYtVaFw2Q7ac5WHQKfdEQaxzw8dgPGXuHxDYab i6FUL7ubnX+G8dAkrx0p/sD70DWPTMcBGXv3ZWLa4MdCnEc5kHzxmzhr5qvGeAREneaZwPTND0i gcWgS3g== X-Gm-Gg: AR+sD1058QyV2zSj21jKv3g8VZe+6V3KO96kuXjCabUe3NrT148xyi01X3XX30HADt0 d8PmA0igHWNhVH/4I1AUQ95OhwwnNFWYB3/Rtwfmk7iHLA6KitMD4VXY3rGKYiMtlwDf83rbj9k m8+3LrdY8HHJ+T6oA/DNnpnPUaY+Fj4XLQ0PcNFmO8P7i5DuoRFrvvrp/h5+uUk1QvO1iDEBy3k OgwlYjmte49P0oI/XxXHl9qwPIY9HEltVCplpqkAyQ5FmfDEuElT8AT+c2yWl/eZLRjbe4ecTsp Poo0CHLG5aoq9Y8kYdx6IwQCyaiohMpvp8xeJS2aYPet/qUV1FuD76LXag97z0ViGK+XVfO+FXw yVB3cFPkkTo1QThfLcfcqdzefsRukvw/fm//D7MtdRBs74itvr/2I7RFo+jxDNYvl+demc0vcbK /obZbPbu3g46J2C9TXNOHgiGBVg4UDg3kJOB2JrzfT9mNSoW0i4s+CviUn++CXZmVCKw== X-Received: by 2002:a05:6000:41ed:b0:47f:8cd3:4bed with SMTP id ffacd0b85a97d-47fb1e8547cmr3083059f8f.5.1785244799194; Tue, 28 Jul 2026 06:19:59 -0700 (PDT) Message-ID: <6c8f1317-5dd0-4f91-b1b1-820fb43b5c39@suse.com> Date: Tue, 28 Jul 2026 15:19:58 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 14/24] XSM/dummy: fold cf_check into XSM_INLINE From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-33051d/1785244799-6CADC4E9-F1AFB2AF/0/0 X-purgate-type: clean X-purgate-size: 23552 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244812900158500 Content-Type: text/plain; charset="utf-8" Use of cf_check together with always_inline is pretty pointless, and with XSM=3Dn none of the dummy handlers are supposed to have their address taken. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -54,7 +54,7 @@ void __xsm_action_mismatch_detected(void * There is no xsm_default_t argument available, so the value from the ass= ertion * is used to initialize the variable. */ -#define XSM_INLINE __maybe_unused +#define XSM_INLINE __maybe_unused cf_check =20 #define XSM_DEFAULT_ARG /* */ #define XSM_DEFAULT_VOID void @@ -104,7 +104,7 @@ static always_inline int xsm_default_act } } =20 -static XSM_INLINE int cf_check xsm_set_system_active(void) +static XSM_INLINE int xsm_set_system_active(void) { struct domain *d =3D current->domain; =20 @@ -121,34 +121,34 @@ static XSM_INLINE int cf_check xsm_set_s return 0; } =20 -static XSM_INLINE void cf_check xsm_security_domaininfo( +static XSM_INLINE void xsm_security_domaininfo( struct domain *d, struct xen_domctl_getdomaininfo *info) { return; } =20 -static XSM_INLINE int cf_check xsm_domain_create( +static XSM_INLINE int xsm_domain_create( XSM_DEFAULT_ARG struct domain *d, uint32_t ssidref) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_getdomaininfo( +static XSM_INLINE int xsm_getdomaininfo( XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_XS_PRIV); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_set_target( +static XSM_INLINE int xsm_set_target( XSM_DEFAULT_ARG struct domain *d, struct domain *e) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, NULL); } =20 -static XSM_INLINE int cf_check xsm_domctl( +static XSM_INLINE int xsm_domctl( XSM_DEFAULT_ARG struct domain *d, struct xen_domctl *op) { XSM_ASSERT_ACTION(XSM_PRIV); @@ -174,61 +174,61 @@ static XSM_INLINE int cf_check xsm_domct } } =20 -static XSM_INLINE int cf_check xsm_sysctl( +static XSM_INLINE int xsm_sysctl( XSM_DEFAULT_ARG const struct xen_sysctl *op) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, NULL); } =20 -static XSM_INLINE int cf_check xsm_alloc_security_domain(struct domain *d) +static XSM_INLINE int xsm_alloc_security_domain(struct domain *d) { return 0; } =20 -static XSM_INLINE void cf_check xsm_free_security_domain(struct domain *d) +static XSM_INLINE void xsm_free_security_domain(struct domain *d) { return; } =20 #ifdef CONFIG_GRANT_TABLE =20 -static XSM_INLINE int cf_check xsm_grant_mapref( +static XSM_INLINE int xsm_grant_mapref( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2, uint32_t flags) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, d1, d2); } =20 -static XSM_INLINE int cf_check xsm_grant_unmapref( +static XSM_INLINE int xsm_grant_unmapref( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, d1, d2); } =20 -static XSM_INLINE int cf_check xsm_grant_setup( +static XSM_INLINE int xsm_grant_setup( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2) { XSM_ASSERT_ACTION(XSM_TARGET); return xsm_default_action(action, d1, d2); } =20 -static XSM_INLINE int cf_check xsm_grant_transfer( +static XSM_INLINE int xsm_grant_transfer( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, d1, d2); } =20 -static XSM_INLINE int cf_check xsm_grant_copy( +static XSM_INLINE int xsm_grant_copy( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, d1, d2); } =20 -static XSM_INLINE int cf_check xsm_grant_query_size( +static XSM_INLINE int xsm_grant_query_size( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2) { XSM_ASSERT_ACTION(XSM_TARGET); @@ -237,28 +237,28 @@ static XSM_INLINE int cf_check xsm_grant =20 #endif /* CONFIG_GRANT_TABLE */ =20 -static XSM_INLINE int cf_check xsm_memory_exchange( +static XSM_INLINE int xsm_memory_exchange( XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_TARGET); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_memory_adjust_reservation( +static XSM_INLINE int xsm_memory_adjust_reservation( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2) { XSM_ASSERT_ACTION(XSM_TARGET); return xsm_default_action(action, d1, d2); } =20 -static XSM_INLINE int cf_check xsm_memory_stat_reservation( +static XSM_INLINE int xsm_memory_stat_reservation( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2) { XSM_ASSERT_ACTION(XSM_TARGET); return xsm_default_action(action, d1, d2); } =20 -static XSM_INLINE int cf_check xsm_console_io( +static XSM_INLINE int xsm_console_io( XSM_DEFAULT_ARG struct domain *d, int cmd) { XSM_ASSERT_ACTION(XSM_OTHER); @@ -272,21 +272,21 @@ static XSM_INLINE int cf_check xsm_conso } =20 #ifdef CONFIG_KEXEC -static XSM_INLINE int cf_check xsm_kexec(XSM_DEFAULT_VOID) +static XSM_INLINE int xsm_kexec(XSM_DEFAULT_VOID) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, NULL); } #endif =20 -static XSM_INLINE int cf_check xsm_schedop_shutdown( +static XSM_INLINE int xsm_schedop_shutdown( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, d1, d2); } =20 -static XSM_INLINE int cf_check xsm_memory_pin_page( +static XSM_INLINE int xsm_memory_pin_page( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2, struct page_info *page) { @@ -294,20 +294,20 @@ static XSM_INLINE int cf_check xsm_memor return xsm_default_action(action, d1, d2); } =20 -static XSM_INLINE int cf_check xsm_claim_pages(XSM_DEFAULT_ARG struct doma= in *d) +static XSM_INLINE int xsm_claim_pages(XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_evtchn_unbound( +static XSM_INLINE int xsm_evtchn_unbound( XSM_DEFAULT_ARG struct domain *d, struct evtchn *chn, domid_t id2) { XSM_ASSERT_ACTION(XSM_TARGET); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_evtchn_interdomain( +static XSM_INLINE int xsm_evtchn_interdomain( XSM_DEFAULT_ARG struct domain *d1, struct evtchn *chan1, struct domain= *d2, struct evtchn *chan2) { @@ -315,72 +315,72 @@ static XSM_INLINE int cf_check xsm_evtch return xsm_default_action(action, d1, d2); } =20 -static XSM_INLINE void cf_check xsm_evtchn_close_post(struct evtchn *chn) +static XSM_INLINE void xsm_evtchn_close_post(struct evtchn *chn) { return; } =20 -static XSM_INLINE int cf_check xsm_evtchn_send( +static XSM_INLINE int xsm_evtchn_send( XSM_DEFAULT_ARG struct domain *d, struct evtchn *chn) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, d, NULL); } =20 -static XSM_INLINE int cf_check xsm_evtchn_status( +static XSM_INLINE int xsm_evtchn_status( XSM_DEFAULT_ARG struct domain *d, struct evtchn *chn) { XSM_ASSERT_ACTION(XSM_TARGET); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_evtchn_reset( +static XSM_INLINE int xsm_evtchn_reset( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2) { XSM_ASSERT_ACTION(XSM_TARGET); return xsm_default_action(action, d1, d2); } =20 -static XSM_INLINE int cf_check xsm_alloc_security_evtchns( +static XSM_INLINE int xsm_alloc_security_evtchns( struct evtchn chn[], unsigned int nr) { return 0; } =20 -static XSM_INLINE void cf_check xsm_free_security_evtchns( +static XSM_INLINE void xsm_free_security_evtchns( struct evtchn chn[], unsigned int nr) { return; } =20 -static XSM_INLINE char *cf_check xsm_show_security_evtchn( +static XSM_INLINE char *xsm_show_security_evtchn( struct domain *d, const struct evtchn *chn) { return NULL; } =20 -static XSM_INLINE int cf_check xsm_init_hardware_domain( +static XSM_INLINE int xsm_init_hardware_domain( XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_get_pod_target( +static XSM_INLINE int xsm_get_pod_target( XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_set_pod_target( +static XSM_INLINE int xsm_set_pod_target( XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_get_vnumainfo( +static XSM_INLINE int xsm_get_vnumainfo( XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_TARGET); @@ -388,7 +388,7 @@ static XSM_INLINE int cf_check xsm_get_v } =20 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) -static XSM_INLINE int cf_check xsm_get_device_group( +static XSM_INLINE int xsm_get_device_group( XSM_DEFAULT_ARG uint32_t machine_bdf) { XSM_ASSERT_ACTION(XSM_PRIV); @@ -398,14 +398,14 @@ static XSM_INLINE int cf_check xsm_get_d =20 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) =20 -static XSM_INLINE int cf_check xsm_resource_plug_pci( +static XSM_INLINE int xsm_resource_plug_pci( XSM_DEFAULT_ARG uint32_t machine_bdf) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, NULL); } =20 -static XSM_INLINE int cf_check xsm_resource_unplug_pci( +static XSM_INLINE int xsm_resource_unplug_pci( XSM_DEFAULT_ARG uint32_t machine_bdf) { XSM_ASSERT_ACTION(XSM_PRIV); @@ -416,14 +416,14 @@ static XSM_INLINE int cf_check xsm_resou =20 #ifdef CONFIG_HAS_PCI =20 -static XSM_INLINE int cf_check xsm_resource_setup_pci( +static XSM_INLINE int xsm_resource_setup_pci( XSM_DEFAULT_ARG uint32_t machine_bdf) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, NULL); } =20 -static XSM_INLINE int cf_check xsm_resource_setup_gsi(XSM_DEFAULT_ARG int = gsi) +static XSM_INLINE int xsm_resource_setup_gsi(XSM_DEFAULT_ARG int gsi) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, NULL); @@ -431,47 +431,47 @@ static XSM_INLINE int cf_check xsm_resou =20 #endif /* CONFIG_HAS_PCI */ =20 -static XSM_INLINE int cf_check xsm_resource_setup_misc(XSM_DEFAULT_VOID) +static XSM_INLINE int xsm_resource_setup_misc(XSM_DEFAULT_VOID) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, NULL); } =20 #ifdef CONFIG_HYPFS -static XSM_INLINE int cf_check xsm_hypfs_op(XSM_DEFAULT_VOID) +static XSM_INLINE int xsm_hypfs_op(XSM_DEFAULT_VOID) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, NULL); } #endif =20 -static XSM_INLINE long cf_check xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void)= op) +static XSM_INLINE long xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op) { return -ENOSYS; } =20 #ifdef CONFIG_COMPAT -static XSM_INLINE int cf_check xsm_do_compat_op(XEN_GUEST_HANDLE_PARAM(voi= d) op) +static XSM_INLINE int xsm_do_compat_op(XEN_GUEST_HANDLE_PARAM(void) op) { return -ENOSYS; } #endif =20 -static XSM_INLINE char *cf_check xsm_show_irq_sid(int irq) +static XSM_INLINE char *xsm_show_irq_sid(int irq) { return NULL; } =20 #ifdef CONFIG_HAS_PIRQ =20 -static XSM_INLINE int cf_check xsm_map_domain_pirq( +static XSM_INLINE int xsm_map_domain_pirq( XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_unmap_domain_pirq( +static XSM_INLINE int xsm_unmap_domain_pirq( XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_DM_PRIV); @@ -480,49 +480,49 @@ static XSM_INLINE int cf_check xsm_unmap =20 #endif /* CONFIG_HAS_PIRQ */ =20 -static XSM_INLINE int cf_check xsm_map_domain_irq( +static XSM_INLINE int xsm_map_domain_irq( XSM_DEFAULT_ARG struct domain *d, int irq, const void *data) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_bind_pt_irq( +static XSM_INLINE int xsm_bind_pt_irq( XSM_DEFAULT_ARG struct domain *d, struct xen_domctl_bind_pt_irq *bind) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_unbind_pt_irq( +static XSM_INLINE int xsm_unbind_pt_irq( XSM_DEFAULT_ARG struct domain *d, struct xen_domctl_bind_pt_irq *bind) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_unmap_domain_irq( +static XSM_INLINE int xsm_unmap_domain_irq( XSM_DEFAULT_ARG struct domain *d, int irq, const void *data) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_irq_permission( +static XSM_INLINE int xsm_irq_permission( XSM_DEFAULT_ARG struct domain *d, int pirq, uint8_t allow) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_iomem_permission( +static XSM_INLINE int xsm_iomem_permission( XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allo= w) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_iomem_mapping( +static XSM_INLINE int xsm_iomem_mapping( XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allo= w) { XSM_ASSERT_ACTION(XSM_DM_PRIV); @@ -530,7 +530,7 @@ static XSM_INLINE int cf_check xsm_iomem } =20 #ifdef CONFIG_HAS_VPCI -static XSM_INLINE int cf_check xsm_iomem_mapping_vpci( +static XSM_INLINE int xsm_iomem_mapping_vpci( XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allo= w) { XSM_ASSERT_ACTION(XSM_HOOK); @@ -539,7 +539,7 @@ static XSM_INLINE int cf_check xsm_iomem #endif =20 #ifdef CONFIG_HAS_PCI -static XSM_INLINE int cf_check xsm_pci_config_permission( +static XSM_INLINE int xsm_pci_config_permission( XSM_DEFAULT_ARG struct domain *d, uint32_t machine_bdf, uint16_t start, uint16_t end, uint8_t access) { @@ -548,21 +548,21 @@ static XSM_INLINE int cf_check xsm_pci_c } #endif /* CONFIG_HAS_PCI */ =20 -static XSM_INLINE int cf_check xsm_add_to_physmap( +static XSM_INLINE int xsm_add_to_physmap( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2) { XSM_ASSERT_ACTION(XSM_TARGET); return xsm_default_action(action, d1, d2); } =20 -static XSM_INLINE int cf_check xsm_remove_from_physmap( +static XSM_INLINE int xsm_remove_from_physmap( XSM_DEFAULT_ARG struct domain *d1, struct domain *d2) { XSM_ASSERT_ACTION(XSM_TARGET); return xsm_default_action(action, d1, d2); } =20 -static XSM_INLINE int cf_check xsm_map_gmfn_foreign( +static XSM_INLINE int xsm_map_gmfn_foreign( XSM_DEFAULT_ARG struct domain *d, struct domain *t) { XSM_ASSERT_ACTION(XSM_TARGET); @@ -571,14 +571,14 @@ static XSM_INLINE int cf_check xsm_map_g =20 #ifdef CONFIG_HVM =20 -static XSM_INLINE int cf_check xsm_hvm_param( +static XSM_INLINE int xsm_hvm_param( XSM_DEFAULT_ARG struct domain *d, unsigned long op) { XSM_ASSERT_ACTION(XSM_TARGET); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_hvm_param_altp2mhvm( +static XSM_INLINE int xsm_hvm_param_altp2mhvm( XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_PRIV); @@ -588,7 +588,7 @@ static XSM_INLINE int cf_check xsm_hvm_p #endif /* CONFIG_HVM */ =20 #ifdef CONFIG_ALTP2M -static XSM_INLINE int cf_check xsm_hvm_altp2mhvm_op( +static XSM_INLINE int xsm_hvm_altp2mhvm_op( XSM_DEFAULT_ARG struct domain *d, uint64_t mode, uint32_t op) { XSM_ASSERT_ACTION(XSM_OTHER); @@ -610,7 +610,7 @@ static XSM_INLINE int cf_check xsm_hvm_a #endif /* CONFIG_ALTP2M */ =20 #ifdef CONFIG_VM_EVENT -static XSM_INLINE int cf_check xsm_mem_access(XSM_DEFAULT_ARG struct domai= n *d) +static XSM_INLINE int xsm_mem_access(XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); @@ -618,7 +618,7 @@ static XSM_INLINE int cf_check xsm_mem_a #endif =20 #ifdef CONFIG_MEM_PAGING -static XSM_INLINE int cf_check xsm_mem_paging(XSM_DEFAULT_ARG struct domai= n *d) +static XSM_INLINE int xsm_mem_paging(XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); @@ -626,14 +626,14 @@ static XSM_INLINE int cf_check xsm_mem_p #endif =20 #ifdef CONFIG_MEM_SHARING -static XSM_INLINE int cf_check xsm_mem_sharing(XSM_DEFAULT_ARG struct doma= in *d) +static XSM_INLINE int xsm_mem_sharing(XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); } #endif =20 -static XSM_INLINE int cf_check xsm_platform_op(XSM_DEFAULT_ARG uint32_t op) +static XSM_INLINE int xsm_platform_op(XSM_DEFAULT_ARG uint32_t op) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, NULL); @@ -641,20 +641,20 @@ static XSM_INLINE int cf_check xsm_platf =20 #ifdef CONFIG_X86 =20 -static XSM_INLINE int cf_check xsm_mem_sharing_op( +static XSM_INLINE int xsm_mem_sharing_op( XSM_DEFAULT_ARG struct domain *d, struct domain *cd, int op) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, cd); } =20 -static XSM_INLINE int cf_check xsm_machine_memory_map(XSM_DEFAULT_VOID) +static XSM_INLINE int xsm_machine_memory_map(XSM_DEFAULT_VOID) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, NULL); } =20 -static XSM_INLINE int cf_check xsm_domain_memory_map( +static XSM_INLINE int xsm_domain_memory_map( XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_TARGET); @@ -663,20 +663,20 @@ static XSM_INLINE int cf_check xsm_domai =20 #ifdef CONFIG_PV =20 -static XSM_INLINE int cf_check xsm_apic( +static XSM_INLINE int xsm_apic( XSM_DEFAULT_ARG struct domain *d, int cmd) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, d, NULL); } =20 -static XSM_INLINE int cf_check xsm_do_mca(XSM_DEFAULT_VOID) +static XSM_INLINE int xsm_do_mca(XSM_DEFAULT_VOID) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, NULL); } =20 -static XSM_INLINE int cf_check xsm_mmu_update( +static XSM_INLINE int xsm_mmu_update( XSM_DEFAULT_ARG struct domain *d, struct domain *t, struct domain *f, uint32_t flags) { @@ -689,14 +689,14 @@ static XSM_INLINE int cf_check xsm_mmu_u return rc; } =20 -static XSM_INLINE int cf_check xsm_mmuext_op( +static XSM_INLINE int xsm_mmuext_op( XSM_DEFAULT_ARG struct domain *d, struct domain *f) { XSM_ASSERT_ACTION(XSM_TARGET); return xsm_default_action(action, d, f); } =20 -static XSM_INLINE int cf_check xsm_update_va_mapping( +static XSM_INLINE int xsm_update_va_mapping( XSM_DEFAULT_ARG struct domain *d, struct domain *f, l1_pgentry_t pte) { XSM_ASSERT_ACTION(XSM_TARGET); @@ -706,7 +706,7 @@ static XSM_INLINE int cf_check xsm_updat #endif /* CONFIG_PV */ =20 #if defined(CONFIG_PV) || defined(CONFIG_SHADOW_PAGING) -static XSM_INLINE int cf_check xsm_priv_mapping( +static XSM_INLINE int xsm_priv_mapping( XSM_DEFAULT_ARG struct domain *d, struct domain *t) { XSM_ASSERT_ACTION(XSM_TARGET); @@ -714,21 +714,21 @@ static XSM_INLINE int cf_check xsm_priv_ } #endif =20 -static XSM_INLINE int cf_check xsm_ioport_permission( +static XSM_INLINE int xsm_ioport_permission( XSM_DEFAULT_ARG struct domain *d, uint32_t s, uint32_t e, uint8_t allo= w) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_ioport_mapping( +static XSM_INLINE int xsm_ioport_mapping( XSM_DEFAULT_ARG struct domain *d, uint32_t s, uint32_t e, uint8_t allo= w) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int cf_check xsm_pmu_op( +static XSM_INLINE int xsm_pmu_op( XSM_DEFAULT_ARG struct domain *d, unsigned int op) { XSM_ASSERT_ACTION(XSM_OTHER); @@ -747,7 +747,7 @@ static XSM_INLINE int cf_check xsm_pmu_o #endif /* CONFIG_X86 */ =20 #ifdef CONFIG_IOREQ_SERVER -static XSM_INLINE int cf_check xsm_dm_op(XSM_DEFAULT_ARG struct domain *d) +static XSM_INLINE int xsm_dm_op(XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); @@ -755,24 +755,24 @@ static XSM_INLINE int cf_check xsm_dm_op #endif =20 #ifdef CONFIG_ARGO -static XSM_INLINE int cf_check xsm_argo_enable(const struct domain *d) +static XSM_INLINE int xsm_argo_enable(const struct domain *d) { return 0; } =20 -static XSM_INLINE int cf_check xsm_argo_register_single_source( +static XSM_INLINE int xsm_argo_register_single_source( const struct domain *d, const struct domain *t) { return 0; } =20 -static XSM_INLINE int cf_check xsm_argo_register_any_source( +static XSM_INLINE int xsm_argo_register_any_source( const struct domain *d) { return 0; } =20 -static XSM_INLINE int cf_check xsm_argo_send( +static XSM_INLINE int xsm_argo_send( const struct domain *d, const struct domain *t) { return 0; @@ -780,7 +780,7 @@ static XSM_INLINE int cf_check xsm_argo_ =20 #endif /* CONFIG_ARGO */ =20 -static XSM_INLINE int cf_check xsm_get_domain_state( +static XSM_INLINE int xsm_get_domain_state( XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_XS_PRIV); @@ -788,7 +788,7 @@ static XSM_INLINE int cf_check xsm_get_d } =20 #include -static XSM_INLINE int cf_check xsm_xen_version(XSM_DEFAULT_ARG uint32_t op) +static XSM_INLINE int xsm_xen_version(XSM_DEFAULT_ARG uint32_t op) { XSM_ASSERT_ACTION(XSM_OTHER); switch ( op ) @@ -815,7 +815,7 @@ static XSM_INLINE int cf_check xsm_xen_v } } =20 -static XSM_INLINE int cf_check xsm_domain_resource_map( +static XSM_INLINE int xsm_domain_resource_map( XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_DM_PRIV); From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244839; cv=none; d=zohomail.com; s=zohoarc; b=b5LK8a/QsO+6Cs/ocljivzrQIc2OSQxHtn0rg8FDqNygMAOjqL+y+XIn6bLpKiRapen31x2lfNKNEEe2d22jL5I68M4THNgrddck+X7ASyxZS4GhyPHYYEUtEzFcTslR/K8Yy6kGS6Y/bxPK+ZUiYW9f/Es4I/O7nU4rzEBORRA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244839; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=TWHkG2xeRgNhqN/Mj6/qpIb3RG1kSl+PjY/er3+dPcU=; b=Qmj64n+mY20X4zcP5AXnZO6poft/KbmjVYAKDhkE9oWw+SOf6cxLkX3/V6wvY9/aF5WMcJNJ9BgpX0u7WCz1cvzbkhG+EzvNjhpVwd1ONdt+56nSujs/6+rCTR5ResAQTmvvKvFjv8bWl2ZLL/pF+HAD+wuvaGQHeR2y5N6Nfv8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244839080966.35443399753; Tue, 28 Jul 2026 06:20:39 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374120.1621091 (Exim 4.92) (envelope-from ) id 1wohjL-0002Xe-2c; Tue, 28 Jul 2026 13:20:23 +0000 Received: by outflank-mailman (output) from mailman id 1374120.1621091; Tue, 28 Jul 2026 13:20: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 1wohjK-0002XX-Vy; Tue, 28 Jul 2026 13:20:22 +0000 Received: by outflank-mailman (input) for mailman id 1374120; Tue, 28 Jul 2026 13:20:21 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohjJ-0002Vy-Ig for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:20:21 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohjI-002uha-VS for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:20:20 +0200 Received: from [10.42.69.2] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ac93-2eae-0a2a0a5409dd-0a2a4502ea58-8 for ; Tue, 28 Jul 2026 15:20:20 +0200 Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com) by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ac94-6ca4-0a2a45020019-d1558030bc5f-3 for ; Tue, 28 Jul 2026 15:20:20 +0200 Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-4921eed3fa2so26977315e9.0 for ; Tue, 28 Jul 2026 06:20:20 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4957f9ae5c3sm424174045e9.3.2026.07.28.06.20.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:20:19 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244820; x=1785849620; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=TWHkG2xeRgNhqN/Mj6/qpIb3RG1kSl+PjY/er3+dPcU=; b=TKtFk6zfxNc7abTsf2vjSP/PjqRkTAamwAy+2KsWjgIv9F0HuvEesURpnwgXdFOHgd NQKYEwIuD5P7RY57VeFC6ROp/lHAoT8yORQbotfIDMx8uorLsIvX9WEuTrN+LUvVxNsg qT/qzf3ASDciSqybnLYCluSQ7jD3bF5fPTCVm7G0VGdBX9rN4ySkKI3P5nSoDkTlA5mP PBnifEmDADcF04qhFFxn4ALx0+tCvRlK5KBo+o/Etbsa6+AO98XDUBtoAX32L4sxauY9 /mcO8S3/YyjPnAizwMyJbENBdgu19P1KiamTndEUauteOGUWBSMHwNQQ8dPXTVEOTeHM AnGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244820; x=1785849620; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=TWHkG2xeRgNhqN/Mj6/qpIb3RG1kSl+PjY/er3+dPcU=; b=eaDOcovgC+Lz6oaZgEPqK3b3hBEkfoXap0TcDEN9Pxv4Ga+kaj7Pg1bLFpdl1H9iSO iOs6KHNCrL+29hyQrEQaZqDj1eWXcD8OHLwxPqum3eqf6EMj1vaZxrX3rmmlZlWYn+/e Md0Ba7XMUk0F5aL/ZZRRyct1Nd5F1fB3luWFaRMrGqGSObIsKhkulvq63pFvU3+O/V2C ph25DauV0qWFF6tkgSimjOPG6ygVCV22X4p8uKxg3npObqxhg2iqP2R2if7bw/HEua5i 6bfGaW4tbRt8AAeo8roqVzfGwkMh4WDDtBi5MS0yoOLVPTBY+xa5+evzqG9F96JIMZZd T7RA== X-Gm-Message-State: AOJu0YwBqwOERhZ8U2Ie6djIMEEQzKONwz5BhXdYu/fbAI7XT0HzTiY6 tweKwqIJmIEHsMR9wFE8rSQVagARD6xTsCL2SqU73DqUSNk8kllVoaUxxi4jqMMJsEKzmljtz/x Wq481Jw== X-Gm-Gg: AR+sD12ARq423711ZZ5jDIYj4OyHtRgfP9kKp03EctZgpor6+Ngz60LPrLJ2vGTO/KC kP8NNbREcm/qsac3RIY8OcDs7Gp6XzJaqAh/sesBcYZGALEdwd9Se1jnqIUkeRBgv7hgb/gWIYC 3AHKWzxOmTMlax9b63t3NOEEtcGxPGpsb60k4ZKAt8CWwBDpqQRV11y56AI6hFC8Ex0/PotQm+X VyfEPgipKZvpmMWkX2YgFRadxWiLJ3PU5OWl+GgObGbGKw+kzZD0MXsOLNBYfjxQcZnP9/uNc2Q 3GOSlFF76g4lLZcBcmIRuxDvTIEz1af4P3YBUPoMLLudTyYcQUXRwkbNHfivXw3psfOpi4ykQzv lvNdLqF8yodzhbcOowJT78YO2L0t9sgMhcr9f+1LphqHVAl/HfipZko2xO4RGqmzPH0rWJ/dEbK pV+LmVTo085FPGV4x2QI4BaNnkEUSac6vSGGLH4LbZSt9WIGdAzVaVUJ6OUHpNBkY82w== X-Received: by 2002:a05:600c:46ca:b0:495:6338:1453 with SMTP id 5b1f17b1804b1-496c653ec08mr24938355e9.16.1785244820125; Tue, 28 Jul 2026 06:20:20 -0700 (PDT) Message-ID: Date: Tue, 28 Jul 2026 15:20:18 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 15/24] XSM/dummy: drop redundant return statements From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-720697/1785244820-66AB52AC-BF2F49C8/0/0 X-purgate-type: clean X-purgate-size: 1231 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244841092158500 Content-Type: text/plain; charset="utf-8" They're meaningless when no value is returned. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -123,9 +123,7 @@ static XSM_INLINE int xsm_set_system_act =20 static XSM_INLINE void xsm_security_domaininfo( struct domain *d, struct xen_domctl_getdomaininfo *info) -{ - return; -} +{} =20 static XSM_INLINE int xsm_domain_create( XSM_DEFAULT_ARG struct domain *d, uint32_t ssidref) @@ -187,9 +185,7 @@ static XSM_INLINE int xsm_alloc_security } =20 static XSM_INLINE void xsm_free_security_domain(struct domain *d) -{ - return; -} +{} =20 #ifdef CONFIG_GRANT_TABLE =20 @@ -316,9 +312,7 @@ static XSM_INLINE int xsm_evtchn_interdo } =20 static XSM_INLINE void xsm_evtchn_close_post(struct evtchn *chn) -{ - return; -} +{} =20 static XSM_INLINE int xsm_evtchn_send( XSM_DEFAULT_ARG struct domain *d, struct evtchn *chn) @@ -349,9 +343,7 @@ static XSM_INLINE int xsm_alloc_security =20 static XSM_INLINE void xsm_free_security_evtchns( struct evtchn chn[], unsigned int nr) -{ - return; -} +{} =20 static XSM_INLINE char *xsm_show_security_evtchn( struct domain *d, const struct evtchn *chn) From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244874; cv=none; d=zohomail.com; s=zohoarc; b=jZCbhhuU+8I3i3pbslDoCuJfrVI9pE5akTxAR9bw3sIuZpNmZy1nOuSCwgCnJuCB2t04Ja0fpDViNvlQjWEH+M3xDR+9E6yx/LF48uO9wwZoLB3nS1Y087E+/WxRIYnGlBGmGTnHJDP/h1NHRHawEHpr5Ds1ESq6v9Z6+B1iLPE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244874; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=0PmC8Zogi7r4VxLB73pUpdZ4yUx5kl2KjhxmqXlA2+U=; b=LvfkRGaQCsJkeOEowzD5B9UTdKG6TmLDSf0G1o3E31P9v8epqk/q9+iQs9wMMMJMZq0yE1ZdTW2+HF07s+JGpuwCj7AugfP5YRRLKdYVfJtF70gi8XBdVzIteJwiAefWKcgUEt57K5+KqEn0RA69Jy4MVUniBlvSDeqEy5qcOKE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244874960278.37950334699156; Tue, 28 Jul 2026 06:21:14 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374134.1621100 (Exim 4.92) (envelope-from ) id 1wohjx-000397-Ao; Tue, 28 Jul 2026 13:21:01 +0000 Received: by outflank-mailman (output) from mailman id 1374134.1621100; Tue, 28 Jul 2026 13:21:01 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohjx-000390-7z; Tue, 28 Jul 2026 13:21:01 +0000 Received: by outflank-mailman (input) for mailman id 1374134; Tue, 28 Jul 2026 13:21:00 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohjw-00038k-1X for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:21:00 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohjv-00BRoD-EQ for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:20:59 +0200 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68acb1-2eae-0a2a0a5409dd-0a2a45059e5c-20 for ; Tue, 28 Jul 2026 15:20:59 +0200 Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68acbb-4cb1-0a2a45050019-d155802dcd95-3 for ; Tue, 28 Jul 2026 15:20:59 +0200 Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-493f75f7172so32693445e9.1 for ; Tue, 28 Jul 2026 06:20:59 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-496c45e0424sm80298925e9.13.2026.07.28.06.20.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:20:58 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244859; x=1785849659; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=0PmC8Zogi7r4VxLB73pUpdZ4yUx5kl2KjhxmqXlA2+U=; b=ZkZPq9Io0OPWTavaDQm9w3HHkCAm0B5plhL9a2FsrR+S2s+CCAf1EQ2lMrxjqCvAHz PNc2hIPjrR4cuk+mBxVF1PPm5fjFJ03JPZZXP/tmbQpZgZJCSmrLg7SfkgX022bYiGe3 DqfGAy3TXkSAypWgFdozTqOlX4+2ca8u7UVpxSkKhiaDXoqRWrGgskt0dJA895zX7MdX YVFfBKo2EyeODVsAm9G3WW8PUkt1rCW07B4TdPn65vPuVljndFSaKtk0AhVesUjK+TMO zU/H3ReYmhLvK0oMp4jc0KgDvNzxS876ttj9nn8YeTyJJCkv99Ji593CvOZwfTiATDHa 0Nlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244859; x=1785849659; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=0PmC8Zogi7r4VxLB73pUpdZ4yUx5kl2KjhxmqXlA2+U=; b=JDwUtdqRVPvd4K6UTGbVbf//rTy0+TF79Ro8UcGWlp3mrWWBmNt8Ac3AFlQ1QKyi/w M7JWpPNYo54of0iKhGvwxYfCYqptlG7Vech5RvYv1dsfPjuMV2Y0VZRkV3cenXmAG84j z2Tt3mlbtQ69jQ125xsUPTxEFV0jCmq87+0ji7SU5Eq7BMNFwUzYdBZyTcIPstMFzwja 5OpmU+rbqlC/f5oK3BLDhtMfnCw+HVX7OFpUV35/hvjI/3P4xfsSuyS2zthdFqllEzLp vR1HxFDdy6mqXH55Y5iJ6yynXoQKtXpsYocGfRSh2O5cpHZ/L0d/O3Btd9GAAqEGT1U4 R5uw== X-Gm-Message-State: AOJu0Yxpjh/LD/LUoNK5vgbnUnO6k9Igkm/VzUTAyUPAxMdIKZMQds7l w1yucGt69ShZ9YAGlPjRBEN1NWJ+4qe+5XQspi3u2uzNRhhGQ5VdERDsCSPvUm9kwWXxWwMpd/g Wv0PMdg== X-Gm-Gg: AR+sD11W520jpuf4crI71QTJkKgyeTF6xoZwoc9JWyuOyVd1iX11y0czDtrRJ5+AyA3 YXmwNcvk2MPSr9sJikKZvulFJxjy1enfqy9OKmPoz/HibpcbJJJoDPv6kWUP6NZj/YaPtKN8asT 4QNmrv9hZhQXKpjgnRGcoWwUsnJ4RRyzKS4Or21qJs7Jmvx1zl8oL31c8AAtO5YHU15ObdCRd8d skkvN2HFG/P4nSSjbFGH+SXb/ulbNJv+7Qxmh3JrG8SVzvnt4prb58RwSO4vJ/pVFXGOhxu3jXb LeE80DU7kr9w/7JSGCtIeBiJ1MuivW7he+j2bKkJLnsXt1kI5wyI/xqa2nAoGIr0UVi+egoyUW7 +Muu619LWqN27GM2v0+y/4rU7Bu0FzhWVHUmpd3WogYrWqx8eoadCNpoTqViDOB/9VoaSp3QPIM /JvSjLKb7kllVjDyYTtUypd/AlgU6Zoi2gjJLp+rpQ82AnIgN8ILA8M6TTIkNhJDOaHA== X-Received: by 2002:a05:600c:524e:b0:495:63f5:7a4f with SMTP id 5b1f17b1804b1-496c6591b63mr24709475e9.33.1785244858711; Tue, 28 Jul 2026 06:20:58 -0700 (PDT) Message-ID: Date: Tue, 28 Jul 2026 15:20:57 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 16/24] XSM: suppress hypercall when XSM=n From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith , Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-c201ff/1785244859-F64B42A1-02C874DE/0/0 X-purgate-type: clean X-purgate-size: 2760 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244877124158500 Content-Type: text/plain; charset="utf-8" This can be easily done in hypercall-defs.c, thus avoiding the need to dive into xsm/ when building Xen, just to add code which does what is done for an absent hypercall handler anyway (returning -ENOSYS). Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- a/xen/Makefile +++ b/xen/Makefile @@ -458,7 +458,7 @@ CFLAGS +=3D -I$(objtree)/arch/$(SRCARCH)/i ALL_OBJS-y :=3D common/built_in.o ALL_OBJS-y +=3D drivers/built_in.o ALL_OBJS-y +=3D lib/built_in.o -ALL_OBJS-y +=3D xsm/built_in.o +ALL_OBJS-$(CONFIG_XSM) +=3D xsm/built_in.o ALL_OBJS-y +=3D arch/$(SRCARCH)/built_in.o ALL_OBJS-$(CONFIG_CRYPTO) +=3D crypto/built_in.o =20 --- a/xen/include/hypercall-defs.c +++ b/xen/include/hypercall-defs.c @@ -119,7 +119,9 @@ prefix: do PREFIX_compat xen_version(int cmd, void *arg) vcpu_op(int cmd, unsigned int vcpuid, void *arg) sched_op(int cmd, void *arg) +#ifdef CONFIG_XSM xsm_op(void *op) +#endif callback_op(int cmd, const void *arg) #ifdef CONFIG_ARGO argo_op(unsigned int cmd, void *arg1, void *arg2, unsigned long arg3, unsi= gned long arg4) @@ -264,7 +266,9 @@ set_segment_base do:2 #ifdef CONFIG_PV mmuext_op compat:2 do:2 compat do - #endif +#ifdef CONFIG_XSM xsm_op compat do compat do do +#endif nmi_op compat do - - - sched_op compat do compat do do callback_op compat do - - - --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -437,6 +437,8 @@ static XSM_INLINE int xsm_hypfs_op(XSM_D } #endif =20 +#ifdef CONFIG_XSM + static XSM_INLINE long xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op) { return -ENOSYS; @@ -449,6 +451,8 @@ static XSM_INLINE int xsm_do_compat_op(X } #endif =20 +#endif /* CONFIG_XSM */ + static XSM_INLINE char *xsm_show_irq_sid(int irq) { return NULL; --- a/xen/xsm/Makefile +++ b/xen/xsm/Makefile @@ -1,6 +1,6 @@ obj-y +=3D xsm_core.o -obj-$(CONFIG_XSM) +=3D xsm_policy.o -obj-$(CONFIG_XSM) +=3D dummy.o +obj-y +=3D xsm_policy.o +obj-y +=3D dummy.o obj-$(CONFIG_XSM_SILO) +=3D silo.o =20 obj-$(CONFIG_XSM_FLASK) +=3D flask/ --- a/xen/xsm/xsm_core.c +++ b/xen/xsm/xsm_core.c @@ -18,8 +18,6 @@ #include #include =20 -#ifdef CONFIG_XSM - #ifdef CONFIG_MULTIBOOT #include #include @@ -216,8 +214,6 @@ bool __init has_xsm_magic(paddr_t start) } #endif =20 -#endif - long do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op) { return xsm_do_xsm_op(op); From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244943; cv=none; d=zohomail.com; s=zohoarc; b=PjPod7jF2biinx5DmybUYI7svRx1cc41UxI7Ik6ehh540Xkj1eETW9mIjEJwFEAW0QjL7EVIc+MKa5WJuNsVQ2lhsOs16v2bsVCFPaJAl6rAqHzjScb+bkIq5aTmrZBrigpqDb5WjwX2GVK0RXluwaj01jSvKziYr36JQRqDWGo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244943; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=sNb6MGDbLdhr/i+rLQSnZDarDQNYYzkY9sEEN53Af6U=; b=cLAWn8VyZoJErx3DsIVboHOZhpf+iweLn5yZgS8GlCjXp3Ujb8ePJ3fqj80xOni1+VZECuVJWP5lMrKcR7YGP3HOwiJBJ5e9PLqdBAfHZVyNpM1ywsxhGcS33Fir1IfFta4bG5bBKHWXrYaK9FHV0sAr+BxL2umOQdZFtJZiyn4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 178524494379313.396871030105672; Tue, 28 Jul 2026 06:22:23 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374141.1621108 (Exim 4.92) (envelope-from ) id 1wohky-0003ds-Ke; Tue, 28 Jul 2026 13:22:04 +0000 Received: by outflank-mailman (output) from mailman id 1374141.1621108; Tue, 28 Jul 2026 13:22:04 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohky-0003dl-Ht; Tue, 28 Jul 2026 13:22:04 +0000 Received: by outflank-mailman (input) for mailman id 1374141; Tue, 28 Jul 2026 13:22:03 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohkx-0003df-Jw for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:22:03 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohkx-00EqnP-0c for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:22:03 +0200 Received: from [10.42.69.7] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68acfa-5cb7-0a2a0a5109dd-0a2a4507c6ba-2 for ; Tue, 28 Jul 2026 15:22:02 +0200 Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com) by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68acf9-b4ea-0a2a45070019-d155802ed879-3 for ; Tue, 28 Jul 2026 15:22:01 +0200 Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-496b7622a83so20085585e9.2 for ; Tue, 28 Jul 2026 06:22:01 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-496c46160dfsm73379215e9.10.2026.07.28.06.22.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:22:01 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244921; x=1785849721; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=sNb6MGDbLdhr/i+rLQSnZDarDQNYYzkY9sEEN53Af6U=; b=cPizdE7vC5cI7j99kTq0FjhU8Q2j3/hbkEND6JoOVBETgcEE7j4q6DnuyA3fVOyf94 ms4b1QXxgS0iwmTMvykbICiak/tAvttDrBKzEPIEtLpZlQPF0k9xQG0HIcH2qLs1/uYd VVWlyyoZ/MtK1xtcF0ulJMlwk8PBz3yYgLhG9QXYr/wi2NiEGfmaI7/qGtlA7KGXHDV0 Az3Xed8Jh7Qh9T+Jw8BFcUURJrfjXZnmo4Vg/ZWUadRr0/GNsUCpBibqaroJalluvwhH hYHQj+Uh9XmVD/fyEOAwm8C4Irhc2cInV3oHoZRfoWAxCEvTM53BUSYgE659iFn3RdXB Y1oA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244921; x=1785849721; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=sNb6MGDbLdhr/i+rLQSnZDarDQNYYzkY9sEEN53Af6U=; b=tXxiVcMpLnL34ZT+3VyvBC1NxG4Y5ok3GY8P/yAL1b9XGQwuVch3u3nIxcR69pSgC3 lILUC3LyOfUQ7x7wT44loqV83wXYrMaIz3vwpIQ2y4z9SJ2KDvA/rgZ/jemdXpPFjzdr ul2vkq6zcpjMitpb/rjTjG07LuQjXgn6IfJ1C2VgY9yMpz7TXzmCOSENA5vsZe9tFz96 y3XbizLDrMmT4TLJl1kmcFqEgPM14mc5Izap68jQuG3LRs8YPh1gO1qOAPLkKacZQ4NK UgNyrrsmNAQH4pJee8WIpGKOG6jU5tJWwbhzChecah/4HYMpvbIbQpQiKneLYm5ZTT+I MVAQ== X-Gm-Message-State: AOJu0YyNLPi3NSOf/Dv+ElJXm98yJCBhQA4st+sJ4YceDcQa4bafkM22 OMcicF1xwTJGbFAzBI0Fe3Fdg2LF209IgqUQuzklUUg1ToNlok5SiwbJJCbPwc4tqnL4DoRj1Oc hTQtAIw== X-Gm-Gg: AR+sD10quUmtGlKaj9em4gkF8MqqE6KzgXUSIeoq+dWghK7PT+eJel7y91ehkkKaYTl 1xUf2fW1XSbGnGJTx/LgHUzQHtDyAY2bYSEEFIHI1I68wagh1IaGFYCJOw/HmsL5iHP57U8WJdi IKYUtt1n3SV/AxtTnK7dH9Fba08gmV0iLdBSknFPH1CN7uga/ddhw059W99cnblQjIsi4INe5IY QCqmoO9vvIZDd2SF4SLPCX5vYMCnLHXP1f/rU/IBzf+oA0Dfpa1i7ee5gxEPZ2J7lbjBThEL+SM pJNwBxaMfN5VP8qogmekdVrscBcY7v+KesRp60fz50++eIMRS1a5sCPTNFpd5/TGwU6fHbk5C8+ RCGEZCd8SG7rqMnUBeCHYU0TqdZhPNyzwEMmQyJTTHLSDl2FS5Z6Q4zbjSyoLMp0XAXC8tJwt1i 69bzk7h7/gIG3AYyS8k/sx/hclFoyD6KMdLkNXsuLnzYXT6daG8Ha955l7f7D0ys8CWg== X-Received: by 2002:a05:600c:e548:10b0:495:518a:5cbf with SMTP id 5b1f17b1804b1-496c657241bmr18313625e9.32.1785244921399; Tue, 28 Jul 2026 06:22:01 -0700 (PDT) Message-ID: <4bd4e7f7-e005-45b4-a543-98597a9de707@suse.com> Date: Tue, 28 Jul 2026 15:22:00 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 17/24] XSM: make Argo hooks well-formed ones From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith , Jason Andryuk References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-ef75cf/1785244921-344CBAE4-7ED74FC8/0/0 X-purgate-type: clean X-purgate-size: 7692 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244945734158500 Content-Type: text/plain; charset="utf-8" For whatever reason they didn't have an xsm_default_t first argument (to cope with XSM=3Dn mode), making it impossible to (easily) cover them in xsm/hooks.h. To be able to retain the const on their function parameters, adjust xsm_default_action() accordingly. Signed-off-by: Jan Beulich Reviewed-by: Jason Andryuk --- a/xen/common/argo.c +++ b/xen/common/argo.c @@ -1341,7 +1341,7 @@ fill_ring_data(const struct domain *curr * Don't supply information about rings that a guest is not * allowed to send to. */ - ret =3D xsm_argo_send(currd, dst_d); + ret =3D xsm_argo_send(XSM_HOOK, currd, dst_d); if ( ret ) goto out; =20 @@ -1666,8 +1666,9 @@ register_ring(struct domain *currd, =20 if ( reg.partner_id =3D=3D XEN_ARGO_DOMID_ANY ) { - ret =3D opt_argo_mac_permissive ? xsm_argo_register_any_source(cur= rd) : - -EPERM; + ret =3D opt_argo_mac_permissive + ? xsm_argo_register_any_source(XSM_HOOK, currd) + : -EPERM; if ( ret ) return ret; } @@ -1680,7 +1681,7 @@ register_ring(struct domain *currd, return -ESRCH; } =20 - ret =3D xsm_argo_register_single_source(currd, dst_d); + ret =3D xsm_argo_register_single_source(XSM_HOOK, currd, dst_d); if ( ret ) goto out; =20 @@ -2002,7 +2003,7 @@ sendv(struct domain *src_d, xen_argo_add if ( !dst_d ) return -ESRCH; =20 - ret =3D xsm_argo_send(src_d, dst_d); + ret =3D xsm_argo_send(XSM_HOOK, src_d, dst_d); if ( ret ) { gprintk(XENLOG_ERR, "argo: XSM REJECTED %i -> %i\n", @@ -2100,7 +2101,7 @@ do_argo_op(unsigned int cmd, XEN_GUEST_H if ( unlikely(!opt_argo) ) return -EOPNOTSUPP; =20 - rc =3D xsm_argo_enable(currd); + rc =3D xsm_argo_enable(XSM_HOOK, currd); if ( rc ) return rc; =20 @@ -2242,7 +2243,7 @@ compat_argo_op(unsigned int cmd, XEN_GUE if ( unlikely(!opt_argo) ) return -EOPNOTSUPP; =20 - rc =3D xsm_argo_enable(currd); + rc =3D xsm_argo_enable(XSM_HOOK, currd); if ( rc ) return rc; =20 @@ -2307,7 +2308,7 @@ argo_init(struct domain *d) { struct argo_domain *argo; =20 - if ( !opt_argo || xsm_argo_enable(d) ) + if ( !opt_argo || xsm_argo_enable(XSM_HOOK, d) ) { argo_dprintk("argo disabled, domid: %u\n", d->domain_id); return 0; @@ -2365,8 +2366,8 @@ argo_soft_reset(struct domain *d) wildcard_rings_pending_remove(d); =20 /* - * Since neither opt_argo or xsm_argo_enable(d) can change at runt= ime, - * if d->argo is true then both opt_argo and xsm_argo_enable(d) mu= st be + * Since neither opt_argo nor xsm_argo_enable() can change at runt= ime, + * if d->argo is true then both opt_argo and xsm_argo_enable() mus= t be * true, and we can assume that init is allowed to proceed again h= ere. */ argo_domain_init(d->argo); --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -76,7 +76,7 @@ void __xsm_action_mismatch_detected(void #endif /* CONFIG_XSM */ =20 static always_inline int xsm_default_action( - xsm_default_t action, struct domain *src, struct domain *target) + xsm_default_t action, const struct domain *src, const struct domain *t= arget) { switch ( action ) { case XSM_HOOK: @@ -751,27 +751,32 @@ static XSM_INLINE int xsm_dm_op(XSM_DEFA #endif =20 #ifdef CONFIG_ARGO -static XSM_INLINE int xsm_argo_enable(const struct domain *d) + +static XSM_INLINE int xsm_argo_enable(XSM_DEFAULT_ARG const struct domain = *d) { - return 0; + XSM_ASSERT_ACTION(XSM_HOOK); + return xsm_default_action(action, current->domain, d); } =20 static XSM_INLINE int xsm_argo_register_single_source( - const struct domain *d, const struct domain *t) + XSM_DEFAULT_ARG const struct domain *d, const struct domain *t) { - return 0; + XSM_ASSERT_ACTION(XSM_HOOK); + return xsm_default_action(action, d, t); } =20 static XSM_INLINE int xsm_argo_register_any_source( - const struct domain *d) + XSM_DEFAULT_ARG const struct domain *d) { - return 0; + XSM_ASSERT_ACTION(XSM_HOOK); + return xsm_default_action(action, current->domain, d); } =20 static XSM_INLINE int xsm_argo_send( - const struct domain *d, const struct domain *t) + XSM_DEFAULT_ARG const struct domain *d, const struct domain *t) { - return 0; + XSM_ASSERT_ACTION(XSM_HOOK); + return xsm_default_action(action, d, t); } =20 #endif /* CONFIG_ARGO */ --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -156,6 +156,14 @@ XSM_HOOK(int, dm_op, struct domain *) XSM_HOOK(int, xen_version, uint32_t) XSM_HOOK(int, domain_resource_map, struct domain *) =20 +#ifdef CONFIG_ARGO +XSM_HOOK(int, argo_enable, const struct domain *) +XSM_HOOK(int, argo_register_single_source, const struct domain *, + const struct domain *) +XSM_HOOK(int, argo_register_any_source, const struct domain *) +XSM_HOOK(int, argo_send, const struct domain *, const struct domain *) +#endif + #undef XSM_HOOK0 #undef XSM_HOOK1 #undef XSM_HOOK2 --- a/xen/include/xsm/xsm.h +++ b/xen/include/xsm/xsm.h @@ -90,14 +90,6 @@ struct xsm_ops { #ifdef CONFIG_COMPAT int (*do_compat_op)(XEN_GUEST_HANDLE_PARAM(void) op); #endif - -#ifdef CONFIG_ARGO - int (*argo_enable)(const struct domain *d); - int (*argo_register_single_source)(const struct domain *d, - const struct domain *t); - int (*argo_register_any_source)(const struct domain *d); - int (*argo_send)(const struct domain *d, const struct domain *t); -#endif }; =20 #ifdef CONFIG_XSM @@ -213,30 +205,6 @@ static inline int xsm_do_compat_op(XEN_G } #endif =20 -#ifdef CONFIG_ARGO -static inline int xsm_argo_enable(const struct domain *d) -{ - return alternative_call(xsm_ops.argo_enable, d); -} - -static inline int xsm_argo_register_single_source( - const struct domain *d, const struct domain *t) -{ - return alternative_call(xsm_ops.argo_register_single_source, d, t); -} - -static inline int xsm_argo_register_any_source(const struct domain *d) -{ - return alternative_call(xsm_ops.argo_register_any_source, d); -} - -static inline int xsm_argo_send(const struct domain *d, const struct domai= n *t) -{ - return alternative_call(xsm_ops.argo_send, d, t); -} - -#endif /* CONFIG_ARGO */ - #endif /* XSM_NO_WRAPPERS */ =20 #ifdef CONFIG_MULTIBOOT --- a/xen/xsm/dummy.c +++ b/xen/xsm/dummy.c @@ -40,13 +40,6 @@ static const struct xsm_ops __initconst_ #ifdef CONFIG_COMPAT .do_compat_op =3D xsm_do_compat_op, #endif - -#ifdef CONFIG_ARGO - .argo_enable =3D xsm_argo_enable, - .argo_register_single_source =3D xsm_argo_register_single_source, - .argo_register_any_source =3D xsm_argo_register_any_source, - .argo_send =3D xsm_argo_send, -#endif }; =20 void __init xsm_fixup_ops(struct xsm_ops *ops) --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1977,13 +1977,6 @@ static const struct xsm_ops __initconst_ #ifdef CONFIG_COMPAT .do_compat_op =3D compat_flask_op, #endif - -#ifdef CONFIG_ARGO - .argo_enable =3D flask_argo_enable, - .argo_register_single_source =3D flask_argo_register_single_source, - .argo_register_any_source =3D flask_argo_register_any_source, - .argo_send =3D flask_argo_send, -#endif }; =20 const struct xsm_ops *__init flask_init( From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785244978; cv=none; d=zohomail.com; s=zohoarc; b=d9Epfj0/7IXh7x/dhyF1qg0Tq6MljD10HRllYxE6JW02UcwzhBAJ+oxj/WqTQZnJkwiaj1kuukme/jMNvecFkMSK8aYHn99Vg5QwnTO4Xskqv5CvgFgThG76Qj1GhuSTOdFtUbaTsaq1GkTzpkkNpkpsjhE4ampzvgvqbMraZhs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785244978; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=OH3UAuRhXGzvJgR+A7mAaphd4Y33/NLRNKKXxQdQ/ok=; b=QewVJu/FL4RhZPYjGVzbu+VxQTZc8cOLsQDPekcnmcvRj94Gbk3uYLyTv+WJu+VtIWQMuCIfNE3NF2Ev7wN8wOA+hed493ZMmftY1FZG5l/jcJjRNSNdH0THMpZirL408+MJIH+GJwWXT4CivyXxGo0QPahcG0DQpIYVIA51QuE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785244978890986.9201423389391; Tue, 28 Jul 2026 06:22:58 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374150.1621119 (Exim 4.92) (envelope-from ) id 1wohlf-0004An-2V; Tue, 28 Jul 2026 13:22:47 +0000 Received: by outflank-mailman (output) from mailman id 1374150.1621119; Tue, 28 Jul 2026 13:22:47 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohle-0004Af-UJ; Tue, 28 Jul 2026 13:22:46 +0000 Received: by outflank-mailman (input) for mailman id 1374150; Tue, 28 Jul 2026 13:22:46 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohld-0004AV-Rr for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:22:45 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohld-004dx0-8p for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:22:45 +0200 Received: from [10.42.69.3] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ad24-bab6-0a2a0a5309dd-0a2a4503bc34-6 for ; Tue, 28 Jul 2026 15:22:45 +0200 Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com) by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ad25-fae8-0a2a45030019-d155802ec9cf-3 for ; Tue, 28 Jul 2026 15:22:45 +0200 Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-493b966dd74so24103115e9.3 for ; Tue, 28 Jul 2026 06:22:45 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-496c45cb67esm82409305e9.8.2026.07.28.06.22.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:22:44 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785244965; x=1785849765; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=OH3UAuRhXGzvJgR+A7mAaphd4Y33/NLRNKKXxQdQ/ok=; b=QYa5n6YhASWl0zwXLc+mfzaRNNS+Ta//XVzUXJZQu9G5ilkThr4ZIqzC6Aqh1Swgql BYiBqEXnokOlGOwBPwCCwjJvIxsjoGERsylVBptMLZQwFExkZ9QRpP+yV45vd1jiRCQ3 Tl1Ua1EC5GBajfDkSQoumUtqPdOnvYOdHTXvfGYtr+S9wXQB83U5dR982kaVm69f8ajZ p/8bTlq0CAH5dw3WjtCoYO2PUmqLDvctni9W6Baymfbde3K5y9UIKeCexfNHNutE0DBc rxB3nky7sH9W+UtQAZizTDPFjqvDyeLkOs7O8l48ZBGcI6JJ6nyhIAQgEVSmhMRPqeH3 NLeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785244965; x=1785849765; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=OH3UAuRhXGzvJgR+A7mAaphd4Y33/NLRNKKXxQdQ/ok=; b=PsqoQ8aUaM3qyfunONUz5c7884wy9BowUYmULhQ97ry37s+kTYDZW4VCUC06qvCInZ sr8Mq5g6pHO2ziI4qCgEgunhHNUj0MXfKGv8wDG0Gh3HbtJtRqqVquc2mfWTSFo6tMQw pzQvxDVkmF/yOPrTzWq1FXgAJz4kMjwmDxkSIOAB6u94t4PvcN+G5kXI2IyJZ2lmyywz Q/wNJheJ0doeNshz0IToKQ6Q+VEpi3H4wP6NsxACgRvHw2qJMnznhzh9kIQlOEGtLTFV EWimXjzksMIJlAotdnz7aKT338IvlJ8vLk4quFIZB4G8U76JRyKK2NuU/ShmsV7fyBYO S1Hg== X-Gm-Message-State: AOJu0YweVlGXSgvnzuuugYcmFMUdMv8jkDI0S8ZWT81MGaAHZ7sS3Y/m 46jr2RuotormhpalLCIqH1WlxEOVXd4ikjY//UFQB2YykStr7p/RjVcb6dcwSTnQ7+g3Jm1H20n SMlhSuQ== X-Gm-Gg: AR+sD134y7bWXw1eAx2XXeg106ChU/ZSAD6C8EQaF1mRo+qkmvzwwXA4h945Allo3yp bVw53sXIulT3pZf+RulcNB0VbSmMU5Y6VbTd5HbKtLdyUXX3emQWrTDjNXgzMzNP3S891ulU+c7 u7kVyOx9eILE2pe2uHttep4xJbJ3eYHcWw3QXKdEJ7nV9Uy2JoCsJiC74lk+75GzphF2G6vQdv2 tXhthfUwvcv/atgF8/DkePOj8sJ57eeoc2VA7qXEqKBcFRMkthG3zevqNW/QFD2qCY7whc/lek+ ExXSdTOfS5j93IWoNdVS5t8wR63EltJdfX/qHJDPKW/FkQQbg4i6PecUj1sIDMblBF23skr0J9I 0W3y06bIsduAayLHjmyvokeYk5WGTAnKI7r3axhKuWDMFsNv9F9PU3mRh+lL/6H9KWjnRqJPvdB 0Ext7filpCII2ev4xO2yXMjVDnDdxbxMX30hIYMyelhwBB66aPww5540OHZhCWz6NsapoLcKrMQ rJx X-Received: by 2002:a05:600c:1d19:b0:493:aa0a:45ad with SMTP id 5b1f17b1804b1-496c641518dmr30726955e9.2.1785244964461; Tue, 28 Jul 2026 06:22:44 -0700 (PDT) Message-ID: <2c108d3c-eef1-4d4b-9874-b0721fd7560f@suse.com> Date: Tue, 28 Jul 2026 15:22:43 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 18/24] XSM: make XSM hooks well-formed ones From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-33051d/1785244965-770F64E9-21C563A3/0/0 X-purgate-type: clean X-purgate-size: 4877 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785244979787158500 Content-Type: text/plain; charset="utf-8" For whatever reason they didn't have an xsm_default_t first argument (to cope with XSM=3Dn mode), making it impossible to (easily) cover them in xsm/hooks.h. flask_do_xsm_op() is also changed to return int, as all the function ever returns is an int. This way no new machinery needs adding to xsm/hooks.h. Instead one piece of compat machinery can then be dropped from xsm/flask/flask_op.c. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- Instead of XSM_HOOK, using XSM_OTHER may also be a sensible option here. Question is whether some/all of the other hooks still declared explicitly in struct xsm_ops should follow suit. --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -439,7 +439,7 @@ static XSM_INLINE int xsm_hypfs_op(XSM_D =20 #ifdef CONFIG_XSM =20 -static XSM_INLINE long xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op) +static XSM_INLINE int xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op) { return -ENOSYS; } --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -156,6 +156,11 @@ XSM_HOOK(int, dm_op, struct domain *) XSM_HOOK(int, xen_version, uint32_t) XSM_HOOK(int, domain_resource_map, struct domain *) =20 +XSM_HOOK(int, do_xsm_op, XEN_GUEST_HANDLE_PARAM(void)) +#ifdef CONFIG_COMPAT +XSM_HOOK(int, do_compat_op, XEN_GUEST_HANDLE_PARAM(void)) +#endif + #ifdef CONFIG_ARGO XSM_HOOK(int, argo_enable, const struct domain *) XSM_HOOK(int, argo_register_single_source, const struct domain *, --- a/xen/include/xsm/xsm.h +++ b/xen/include/xsm/xsm.h @@ -85,11 +85,6 @@ struct xsm_ops { char *(*show_security_evtchn)(struct domain *d, const struct evtchn *c= hn); =20 char *(*show_irq_sid)(int irq); - - long (*do_xsm_op)(XEN_GUEST_HANDLE_PARAM(void) op); -#ifdef CONFIG_COMPAT - int (*do_compat_op)(XEN_GUEST_HANDLE_PARAM(void) op); -#endif }; =20 #ifdef CONFIG_XSM @@ -193,18 +188,6 @@ static inline char *xsm_show_irq_sid(int return alternative_call(xsm_ops.show_irq_sid, irq); } =20 -static inline long xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op) -{ - return alternative_call(xsm_ops.do_xsm_op, op); -} - -#ifdef CONFIG_COMPAT -static inline int xsm_do_compat_op(XEN_GUEST_HANDLE_PARAM(void) op) -{ - return alternative_call(xsm_ops.do_compat_op, op); -} -#endif - #endif /* XSM_NO_WRAPPERS */ =20 #ifdef CONFIG_MULTIBOOT --- a/xen/xsm/dummy.c +++ b/xen/xsm/dummy.c @@ -35,11 +35,6 @@ static const struct xsm_ops __initconst_ .show_security_evtchn =3D xsm_show_security_evtchn, =20 .show_irq_sid =3D xsm_show_irq_sid, - - .do_xsm_op =3D xsm_do_xsm_op, -#ifdef CONFIG_COMPAT - .do_compat_op =3D xsm_do_compat_op, -#endif }; =20 void __init xsm_fixup_ops(struct xsm_ops *ops) --- a/xen/xsm/flask/flask_op.c +++ b/xen/xsm/flask/flask_op.c @@ -23,7 +23,6 @@ #include #include "private.h" =20 -#define ret_t long #define _copy_to_guest copy_to_guest #define _copy_from_guest copy_from_guest =20 @@ -606,7 +605,7 @@ static int flask_relabel_domain(const st =20 #endif /* !COMPAT */ =20 -ret_t cf_check do_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op) +int cf_check flask_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op) { xen_flask_op_t op; int rv; @@ -772,9 +771,7 @@ CHECK_flask_transition; #define flask_devicetree_label compat_devicetree_label =20 #define xen_flask_op_t compat_flask_op_t -#undef ret_t -#define ret_t int -#define do_flask_op compat_flask_op +#define flask_do_xsm_op flask_do_compat_op =20 #include "flask_op.c" #endif --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1971,12 +1971,6 @@ static const struct xsm_ops __initconst_ .show_security_evtchn =3D flask_show_security_evtchn, =20 .show_irq_sid =3D flask_show_irq_sid, - - .do_xsm_op =3D do_flask_op, - -#ifdef CONFIG_COMPAT - .do_compat_op =3D compat_flask_op, -#endif }; =20 const struct xsm_ops *__init flask_init( --- a/xen/xsm/flask/private.h +++ b/xen/xsm/flask/private.h @@ -3,7 +3,7 @@ =20 #include =20 -long cf_check do_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op); -int cf_check compat_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op); +int cf_check flask_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op); +int cf_check flask_do_compat_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op); =20 #endif /* XSM_FLASK_PRIVATE */ --- a/xen/xsm/xsm_core.c +++ b/xen/xsm/xsm_core.c @@ -216,12 +216,12 @@ bool __init has_xsm_magic(paddr_t start) =20 long do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op) { - return xsm_do_xsm_op(op); + return xsm_do_xsm_op(XSM_HOOK, op); } =20 #ifdef CONFIG_COMPAT int compat_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op) { - return xsm_do_compat_op(op); + return xsm_do_compat_op(XSM_HOOK, op); } #endif From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785245028; cv=none; d=zohomail.com; s=zohoarc; b=ZvWNqHbZwU+7veaXP4WeQczRwjTRXmMDfV9jpxuS1QGUYqQq/uB1KuhwVHerCuq2vZJYj1yqiGtWWz0hw9NHagmZiBMqOwa/oLg9iGxgIXFfqmUkSfGQOajhuMhmNpYzJzA/JTHOUasuufTukyAhaorvpARh9aYiCgSFyqpgJ8o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785245028; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=uWalkTy0K6dBubCLA5u6FxobY3yZutCgqd3ZaxzhGJc=; b=gYekiwq32iqFO2J7l9GeP/ErRJG6PD1axjtrWIOfJkUEi8gX7wle9KQMK8fPkLdGnIyYmAF2X5zI9Ng5LZDJ4IF2wDHPviMrcJwgxE7jug805hpbsq1K9DBncCym+UY9NukYbDZ8+AL23iwLIl4rc5HI0eVC2YB5EBEHH8QlFSA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785245028693341.63067466962684; Tue, 28 Jul 2026 06:23:48 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374157.1621127 (Exim 4.92) (envelope-from ) id 1wohmO-0004ee-8J; Tue, 28 Jul 2026 13:23:32 +0000 Received: by outflank-mailman (output) from mailman id 1374157.1621127; Tue, 28 Jul 2026 13:23:32 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohmO-0004eX-5c; Tue, 28 Jul 2026 13:23:32 +0000 Received: by outflank-mailman (input) for mailman id 1374157; Tue, 28 Jul 2026 13:23:31 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohmM-0004eL-Rq for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:23:30 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohmM-004meQ-8J for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:23:30 +0200 Received: from [10.42.69.6] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ad48-bab6-0a2a0a5309dd-0a2a4506bea2-30 for ; Tue, 28 Jul 2026 15:23:30 +0200 Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com) by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ad52-195a-0a2a45060019-d1558036cc2c-3 for ; Tue, 28 Jul 2026 15:23:30 +0200 Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-4955aa106b1so36863885e9.0 for ; Tue, 28 Jul 2026 06:23:30 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-496c45de1a3sm88411125e9.11.2026.07.28.06.23.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:23:28 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785245010; x=1785849810; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=uWalkTy0K6dBubCLA5u6FxobY3yZutCgqd3ZaxzhGJc=; b=HUnYihVJ3A3HADe6SfY1OVrqXKv614wkHx/eweK0BPyDiafhXhFvbKrdPytMcZELb2 cwS5tiA9CW3LldU8Wa2tyRW1B3jzxAb5Yw+GqQEiFByjvNsASGcXHXCdjRbn0r8kQuQD 4W+RfY2l0W5arYCwAOreggVs06Odj7Zp8SkACjwg0QC1v5soSvVwecZykCPDVVBDlRmI 9X5T7WeK0ipt9utPb/F64Ac/V+1Vf36apu+voUKchyQMGwl61GPFc21f8crZLz0gSAYa kakk41zMhldps5WGmW1i3KvVphx1R4sgAXtBAr1LGKDfK3zAqVbH4PO/7TB00QKLb1DK kBvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785245010; x=1785849810; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=uWalkTy0K6dBubCLA5u6FxobY3yZutCgqd3ZaxzhGJc=; b=GCdb5Bck4t94wvcHV9L4kto6+fIZWLsmWiDeIy87PLXzFj5oRCEUqA43cIiVL74f0u r1UVSGULETjS5+6mmu/5ZObT0yVgbWB312bPiRSoL3jC7NF6MWgQS2a8n0EdJffXCZlB 7xZiM+fM7fxL/90uQ3fK8K4nhoOPdbS54TChBfCKXFU1aaGIO4pbK4NaVOXkDFTy6a4r 2XGhwyBiWeRruLa/RvytOB6Il/ASbmCBQZGjRQmhhCCpNxAWHvJmxY3hxWpHjihWJLSx qtDrnXvN80pwocgj1C9uKHpC/tCe4dMHDdCMQAqa2SAtj6iW8pc8CaoSEOfGythPp651 SMyw== X-Gm-Message-State: AOJu0YxonsjZq1hTFksMPGqJqSA1usW/Vo/7pH5kaaQEF/37XVPxxowt VOlJ87ayVE3hRtdpbuR7UjNLRI7eCAn+2deY8HVII4Xf3EjVdfv+Yqdyg8yEGMioiQocHSwkADK 46xyhmg== X-Gm-Gg: AR+sD13TSqs0LooMXLAdUAAwQj8pkEGZvEOjaE2gglSgVRk8cuVGh8VV1QAGhJFrkAC NfJ0UTAkUrru+yWH7yWclONjGiaq6CqQhvpCOqNxeZ4xxWwGJ5DiiOHKj51vo/D2HN1o8FNP7v/ tnB9NOu/z7jGl65DXcJco/bxzdxUJPyCCgcbD/Iugz3WCLG7CMBlEhTmYSGLgI9N/tEAR7kRJGt BLkfKuDmtfk0Hfk0LlpoMsFLzlIbPbT3zvNw7aoNm3evTL1PruhRBq4N/pyELd+IyjG/v/0jLm+ BnFJcD3leR46tfY9aScHS3bQv4rTK+kt3os62gEpcefDlWwgofimhBftZH5NEkc2Lu48QC6Tb7d aIcjRTtq+6954285I5yjUPM1UA00cZyZf57WLAsBnpHGpdrT+j9FmFDJ3JRoZ5pgbb33ultG3TN ORpyf/Kk3HIsHKf/1SSyojydbLsz0ZS7afgsvMnmHglQzpM7oajKAxN88WXnQEgUBatw== X-Received: by 2002:a05:600c:5298:b0:495:4df2:b8c1 with SMTP id 5b1f17b1804b1-496c659dd06mr25253695e9.35.1785245009342; Tue, 28 Jul 2026 06:23:29 -0700 (PDT) Message-ID: Date: Tue, 28 Jul 2026 15:23:26 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 19/24] XSM: convert "allow" (Flask: "access") parameters to bool From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith , Andrew Cooper , Teddy Astie , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-16d1c6/1785245010-F540B77B-F487D2A6/0/0 X-purgate-type: clean X-purgate-size: 9351 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785245030349158500 Content-Type: text/plain; charset="utf-8" These are boolean, so they should always have used bool (originally bool_t), not uint8_t. Leverage recent changes to arrange for this with (now) fewer places which need changing (within the XSM machinery itself). Adjust call sites as well, where the conversion wasn't done so far. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- Why is it that Arm doesn't use xsm_irq_permission() at all? Same for Arm64 vs xsm_pci_config_permission(). --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -235,7 +235,7 @@ long arch_do_domctl( { unsigned int fp =3D domctl->u.ioport_permission.first_port; unsigned int np =3D domctl->u.ioport_permission.nr_ports; - int allow =3D domctl->u.ioport_permission.allow_access; + bool allow =3D domctl->u.ioport_permission.allow_access; =20 ret =3D -EINVAL; if ( (fp + np) <=3D fp || (fp + np) > MAX_IOPORTS ) @@ -306,7 +306,8 @@ long arch_do_domctl( break; } =20 - ret =3D xsm_irq_permission(XSM_PRIV, d, irq, flags); + ret =3D xsm_irq_permission(XSM_PRIV, d, irq, + flags & XEN_DOMCTL_GSI_ACTION_MASK); if ( ret ) break; =20 @@ -687,7 +688,7 @@ long arch_do_domctl( unsigned int fgp =3D domctl->u.ioport_mapping.first_gport; unsigned int fmp =3D domctl->u.ioport_mapping.first_mport; unsigned int np =3D domctl->u.ioport_mapping.nr_ports; - unsigned int add =3D domctl->u.ioport_mapping.add_mapping; + bool add =3D domctl->u.ioport_mapping.add_mapping; struct hvm_domain *hvm; struct g2m_ioport *g2m_ioport; int found =3D 0; --- a/xen/arch/x86/pci.c +++ b/xen/arch/x86/pci.c @@ -78,7 +78,7 @@ int pci_conf_write_intercept(unsigned in { struct pci_dev *pdev; int rc =3D xsm_pci_config_permission(XSM_HOOK, current->domain, bdf, - reg, reg + size - 1, 1); + reg, reg + size - 1, true); =20 if ( rc < 0 ) return rc; --- a/xen/arch/x86/pv/emul-priv-op.c +++ b/xen/arch/x86/pv/emul-priv-op.c @@ -260,7 +260,7 @@ static bool pci_cfg_ok(struct domain *cu =20 return !write ? xsm_pci_config_permission(XSM_HOOK, currd, machine_bdf, - start, start + size - 1, 0) =3D=3D 0 : + start, start + size - 1, false) =3D= =3D 0 : pci_conf_write_intercept(0, machine_bdf, start, size, write) >= =3D 0; } =20 --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -505,21 +505,21 @@ static XSM_INLINE int xsm_unmap_domain_i } =20 static XSM_INLINE int xsm_irq_permission( - XSM_DEFAULT_ARG struct domain *d, int pirq, uint8_t allow) + XSM_DEFAULT_ARG struct domain *d, int pirq, bool allow) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, d); } =20 static XSM_INLINE int xsm_iomem_permission( - XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allo= w) + XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, bool allow) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, d); } =20 static XSM_INLINE int xsm_iomem_mapping( - XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allo= w) + XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, bool allow) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); @@ -527,7 +527,7 @@ static XSM_INLINE int xsm_iomem_mapping( =20 #ifdef CONFIG_HAS_VPCI static XSM_INLINE int xsm_iomem_mapping_vpci( - XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allo= w) + XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, bool allow) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, current->domain, d); @@ -537,7 +537,7 @@ static XSM_INLINE int xsm_iomem_mapping_ #ifdef CONFIG_HAS_PCI static XSM_INLINE int xsm_pci_config_permission( XSM_DEFAULT_ARG struct domain *d, uint32_t machine_bdf, uint16_t start, - uint16_t end, uint8_t access) + uint16_t end, bool access) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, current->domain, d); @@ -711,14 +711,14 @@ static XSM_INLINE int xsm_priv_mapping( #endif =20 static XSM_INLINE int xsm_ioport_permission( - XSM_DEFAULT_ARG struct domain *d, uint32_t s, uint32_t e, uint8_t allo= w) + XSM_DEFAULT_ARG struct domain *d, uint32_t s, uint32_t e, bool allow) { XSM_ASSERT_ACTION(XSM_PRIV); return xsm_default_action(action, current->domain, d); } =20 static XSM_INLINE int xsm_ioport_mapping( - XSM_DEFAULT_ARG struct domain *d, uint32_t s, uint32_t e, uint8_t allo= w) + XSM_DEFAULT_ARG struct domain *d, uint32_t s, uint32_t e, bool allow) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -77,12 +77,12 @@ XSM_HOOK(int, unmap_domain_irq, struct d XSM_HOOK(int, bind_pt_irq, struct domain *, struct xen_domctl_bind_pt_irq = *) XSM_HOOK(int, unbind_pt_irq, struct domain *, struct xen_domctl_bind_pt_ir= q *) =20 -XSM_HOOK(int, irq_permission, struct domain *, int, uint8_t) -XSM_HOOK(int, iomem_permission, struct domain *, uint64_t, uint64_t, uint8= _t) +XSM_HOOK(int, irq_permission, struct domain *, int, bool) +XSM_HOOK(int, iomem_permission, struct domain *, uint64_t, uint64_t, bool) =20 -XSM_HOOK(int, iomem_mapping, struct domain *, uint64_t, uint64_t, uint8_t) +XSM_HOOK(int, iomem_mapping, struct domain *, uint64_t, uint64_t, bool) #ifdef CONFIG_HAS_VPCI -XSM_HOOK(int, iomem_mapping_vpci, struct domain *, uint64_t, uint64_t, uin= t8_t) +XSM_HOOK(int, iomem_mapping_vpci, struct domain *, uint64_t, uint64_t, boo= l) #endif =20 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) @@ -97,7 +97,7 @@ XSM_HOOK(int, resource_setup_misc) XSM_HOOK(int, resource_setup_pci, uint32_t) XSM_HOOK(int, resource_setup_gsi, int) XSM_HOOK(int, pci_config_permission, struct domain *, uint32_t, uint16_t, - uint16_t, uint8_t) + uint16_t, bool) #endif =20 #ifdef CONFIG_HYPFS @@ -144,8 +144,8 @@ XSM_HOOK(int, update_va_mapping, struct #if defined(CONFIG_PV) || defined(CONFIG_SHADOW_PAGING) XSM_HOOK(int, priv_mapping, struct domain *, struct domain *) #endif -XSM_HOOK(int, ioport_permission, struct domain *, uint32_t, uint32_t, uint= 8_t) -XSM_HOOK(int, ioport_mapping, struct domain *, uint32_t, uint32_t, uint8_t) +XSM_HOOK(int, ioport_permission, struct domain *, uint32_t, uint32_t, bool) +XSM_HOOK(int, ioport_mapping, struct domain *, uint32_t, uint32_t, bool) XSM_HOOK(int, pmu_op, struct domain *, unsigned int) #endif /* CONFIG_X86 */ =20 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -998,7 +998,7 @@ static int cf_check flask_sysctl(const s } #endif /* CONFIG_SYSCTL */ =20 -static inline uint32_t resource_to_perm(uint8_t access) +static inline uint32_t resource_to_perm(bool access) { if ( access ) return RESOURCE__ADD; @@ -1166,7 +1166,7 @@ static int cf_check flask_unbind_pt_irq( } =20 static int cf_check flask_irq_permission( - struct domain *d, int pirq, uint8_t access) + struct domain *d, int pirq, bool access) { /* the PIRQ number is not useful; real IRQ is checked during mapping */ return current_has_perm(d, SECCLASS_RESOURCE, resource_to_perm(access)= ); @@ -1199,7 +1199,7 @@ static int cf_check _iomem_has_perm( } =20 static int cf_check flask_iomem_permission( - struct domain *d, uint64_t start, uint64_t end, uint8_t access) + struct domain *d, uint64_t start, uint64_t end, bool access) { struct iomem_has_perm_data data; int rc; @@ -1221,7 +1221,8 @@ static int cf_check flask_iomem_permissi return security_iterate_iomem_sids(start, end, _iomem_has_perm, &data); } =20 -static int cf_check flask_iomem_mapping(struct domain *d, uint64_t start, = uint64_t end, uint8_t access) +static int cf_check flask_iomem_mapping( + struct domain *d, uint64_t start, uint64_t end, bool access) { return flask_iomem_permission(d, start, end, access); } @@ -1230,7 +1231,7 @@ static int cf_check flask_iomem_mapping( #ifdef CONFIG_HAS_PCI static int cf_check flask_pci_config_permission( struct domain *d, uint32_t machine_bdf, uint16_t start, uint16_t end, - uint8_t access) + bool access) { uint32_t dsid, rsid; int rc =3D -EPERM; @@ -1709,7 +1710,7 @@ static int cf_check _ioport_has_perm( } =20 static int cf_check flask_ioport_permission( - struct domain *d, uint32_t start, uint32_t end, uint8_t access) + struct domain *d, uint32_t start, uint32_t end, bool access) { int rc; struct ioport_has_perm_data data; @@ -1733,7 +1734,7 @@ static int cf_check flask_ioport_permiss } =20 static int cf_check flask_ioport_mapping( - struct domain *d, uint32_t start, uint32_t end, uint8_t access) + struct domain *d, uint32_t start, uint32_t end, bool access) { return flask_ioport_permission(d, start, end, access); } From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785245057; cv=none; d=zohomail.com; s=zohoarc; b=K0wrf0uHpJjl0TbiYrTDqSF21FWz6p+Dy+SISMWqyeIWDakhw+JSvMhNNevQTosRqHrSbGUOBYBFnsdOUjYjcWRlm7rmOLZ5Iog77ITzo9Q75EVgvEEp0PQDMWcShLxaX42qmX5me+0DmfjkSeU8NeYsazcTXZNexyGjwNWgpUU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785245057; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UbHOO48bxllxTgePghgzdylwCnZvEEGiTmisl0RNAjk=; b=Mo44MlCuomCVGXLJCX9IPhvs0yiQEQjC8WYgfHq7eBTOgcCbsEkIvOxrNunTGMM6UIDJLT3U3cJpMD2xjN7+CxQ7McALoTBrb25blEGrp9hx9WKMEjVOcHylswanpjEAAOsP/z91+i6e89LC1igFj/oRKlflEZKCbpxxfLudcT4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785245057110251.35012747763744; Tue, 28 Jul 2026 06:24:17 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374163.1621135 (Exim 4.92) (envelope-from ) id 1wohmu-00055x-Er; Tue, 28 Jul 2026 13:24:04 +0000 Received: by outflank-mailman (output) from mailman id 1374163.1621135; Tue, 28 Jul 2026 13:24:04 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohmu-00055q-C8; Tue, 28 Jul 2026 13:24:04 +0000 Received: by outflank-mailman (input) for mailman id 1374163; Tue, 28 Jul 2026 13:24:02 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohms-00055Y-NH for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:24:02 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohms-00ET9U-43 for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:24:02 +0200 Received: from [10.42.69.2] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ad72-5cb7-0a2a0a5109dd-0a2a45029d7a-0 for ; Tue, 28 Jul 2026 15:24:02 +0200 Received: from [209.85.221.42] (helo=mail-wr1-f42.google.com) by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ad71-6ca4-0a2a45020019-d155dd2adca8-3 for ; Tue, 28 Jul 2026 15:24:02 +0200 Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-47f92e3c14bso3470097f8f.0 for ; Tue, 28 Jul 2026 06:24:01 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47f96b9abc0sm37655516f8f.32.2026.07.28.06.24.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:24:00 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785245041; x=1785849841; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=UbHOO48bxllxTgePghgzdylwCnZvEEGiTmisl0RNAjk=; b=V0VJWrEeQzZ8V0lAInWhk61Ys4kaEywpcupcpe02f2QcNmr09hgVnlVojijSUDmkGl RwJsw9zX0UquyKh1RFJWqU2PdqTCYen3hdMAQEEbEwt8pQwo/Pg62r4lOfK6wz1k2fQd Pa+RK8UQoJG9cDfTwP8lxVY2jRDhdPP0ZNCOrHurANdlqe10QSW0yce2bVjJDPkKEdXw 7fYpuxeG4Oo5RRhqicwLEzNoa2QLrFAjGqdfxa5jOj/oV1MQz9elxwsbSJ/6uSuqmlnp MwBaps3RZ13ak92CumkPNWY6ixCasTNNFato/YMb6WmMG6UlizaUF7VnmkY8OuxVO4WI 5++w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785245041; x=1785849841; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=UbHOO48bxllxTgePghgzdylwCnZvEEGiTmisl0RNAjk=; b=nR64FZM59oRpQYgCQGgDkLviiqUczxu97avEL/edyG2FXNc3Q9m63fyW7nZ0gpvAWl k14YWg8U6IF9b2ZlVmK+YhguzTkOEctZxr6rWwaTSF0J6LnlRllF3EaYN+5Meog9x6Ka X2ZM8xpn8ul6I6Lsez9fsQcPcUOi059Vu7qxVTvmRxjHxisoJEPdvRB9vPS+gXebjbx7 BSgVJGqfwtN3YaGyvhgicF6zPzTswon2PCTGKWd1CYwbfBhV+seHKqlC/EGiYFk0TPtt msZqBc5E0f2rYodBiUMuI2YsV37xi9kkiOCgGVlryEK8uMRSrgjSrzQAvaa4+HfqJ2B7 TOxA== X-Gm-Message-State: AOJu0YyT4yyqmG3k6faIWBnKkkAIKvMeZcGNmSVFzQPCMJ1KwIAbwTOz ZE5myf398Hi1n38zQm7I5t2BKimL9bxsctOjTAA9x1CSrArXAHBpA9ri9LZVBb7xFwT7/yIxUb6 sKm+bNQ== X-Gm-Gg: AR+sD11ObgxhKS8Ax2jNlv46wHa4i4yL+wwqIRANg8gSYDZUUhF2TiDKJYk66cxr6Km TbDL3j0SBSdpDG8ieutJnVO4xxiO9Lu+fEuQ8QBUjicfnpwIelSL4O0zaPOokjtJErMPKBlF4gT tib1XVHD2nIEWRZgoSv4MAoZy8Lz5/djy3ZOmBwef2eHK5nYf1JiOzS5pzUeKonxRTowwWdNZ2u v8iazOkJQH28YBXPhzHq60hCCg1ThYqI0/qkyBQ/lUPWsPH30OtSWsuPjsbc+rL8DkC0L1dnzh7 hDAwQDS8mtDBnjyjwAblkGKZNMK8j1X6YbBzXGDbBpbsMyzgKM5TQqoJmy48zrfh6ALzG9W6LE0 h0PZe5F2XXy0Mc4/CEM5bYz3chzFNOHtlTm8xUBTvngWF+GhlgOoa4PHLBwAFRltROb7bsMCEPd TR4afO3pKcmx1vXDllQCBsFz6JoA3ymuhZb181sHLLAkIu7SLjCKtXQ3wtgeudOakglQ== X-Received: by 2002:a05:6000:2403:b0:47f:9661:6766 with SMTP id ffacd0b85a97d-47fb1ec4d77mr2993788f8f.61.1785245041294; Tue, 28 Jul 2026 06:24:01 -0700 (PDT) Message-ID: Date: Tue, 28 Jul 2026 15:23:59 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 20/24] XSM: fold xsm_{,un}map_domain_pirq() hooks From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith , Andrew Cooper , Teddy Astie , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-720697/1785245042-319CB2AC-6E26CAA7/0/0 X-purgate-type: clean X-purgate-size: 2536 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785245059196158500 Content-Type: text/plain; charset="utf-8" Like other resource management hooks they are different in just "add resource" vs "remove resource". Hence like in other cases a single hook can easily serve both purposes. Signed-off-by: Jan Beulich --- a/xen/arch/x86/physdev.c +++ b/xen/arch/x86/physdev.c @@ -109,7 +109,7 @@ int physdev_map_pirq(struct domain *d, i return physdev_hvm_map_pirq(d, type, index, pirq_p); } =20 - ret =3D xsm_map_domain_pirq(XSM_DM_PRIV, d); + ret =3D xsm_map_domain_pirq(XSM_DM_PRIV, d, true); if ( ret ) return ret; =20 @@ -142,7 +142,7 @@ int physdev_unmap_pirq(struct domain *d, int ret =3D 0; =20 if ( d !=3D current->domain || !is_hvm_domain(d) || !has_pirq(d) ) - ret =3D xsm_unmap_domain_pirq(XSM_DM_PRIV, d); + ret =3D xsm_map_domain_pirq(XSM_DM_PRIV, d, false); if ( ret ) return ret; =20 --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -461,14 +461,7 @@ static XSM_INLINE char *xsm_show_irq_sid #ifdef CONFIG_HAS_PIRQ =20 static XSM_INLINE int xsm_map_domain_pirq( - XSM_DEFAULT_ARG struct domain *d) -{ - XSM_ASSERT_ACTION(XSM_DM_PRIV); - return xsm_default_action(action, current->domain, d); -} - -static XSM_INLINE int xsm_unmap_domain_pirq( - XSM_DEFAULT_ARG struct domain *d) + XSM_DEFAULT_ARG struct domain *d, bool allow) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -68,8 +68,7 @@ XSM_HOOK(int, kexec) XSM_HOOK(int, schedop_shutdown, struct domain *, struct domain *) =20 #ifdef CONFIG_HAS_PIRQ -XSM_HOOK(int, map_domain_pirq, struct domain *) -XSM_HOOK(int, unmap_domain_pirq, struct domain *) +XSM_HOOK(int, map_domain_pirq, struct domain *, bool) #endif =20 XSM_HOOK(int, map_domain_irq, struct domain *, int, const void *) --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1022,14 +1022,9 @@ static char *cf_check flask_show_irq_sid =20 #ifdef CONFIG_HAS_PIRQ =20 -static int cf_check flask_map_domain_pirq(struct domain *d) +static int cf_check flask_map_domain_pirq(struct domain *d, bool access) { - return current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__ADD); -} - -static int cf_check flask_unmap_domain_pirq(struct domain *d) -{ - return current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__REMOVE); + return current_has_perm(d, SECCLASS_RESOURCE, resource_to_perm(access)= ); } =20 #endif /* CONFIG_HAS_PIRQ */ From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785245099; cv=none; d=zohomail.com; s=zohoarc; b=Lc8AaAIFjC0LkhANHAE6LYYEjxv/YuZycbiYbEHLjaBYRl6gWD3j6qVja9yI6vk8zwLITC2agZWF7akRTO37XkzE5dgbr2oCG/5ltccuBbjSEa6iqDEZ8Zbv78fzLJ3+9Rb6hp8uT9eGUXMN6dELqkbw+DOJd2KYP7L0FVNONgw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785245099; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=31bEzBE374yqE4es14uilqJ/7IGdLVYHPRoJ2VGKJ8Y=; b=AD7tA7n96XuTXtvNaPbd3ulQHFc3+C/5GZd6JDLUlJZeHavOcOFKc4Mh/aEaZ+QWPw+YOp7GDBHbefhfOvJhHxEJSIW0waktHFMNZLDFpdBxHRlGtKE9OqmN7WIXiCQm5468rhSfLmf8+N+4vo8o+NtPpvxbPvnRoeN5Q0eT2tg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785245099957125.23042757580492; Tue, 28 Jul 2026 06:24:59 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374173.1621146 (Exim 4.92) (envelope-from ) id 1wohnW-0005jk-Ra; Tue, 28 Jul 2026 13:24:42 +0000 Received: by outflank-mailman (output) from mailman id 1374173.1621146; Tue, 28 Jul 2026 13:24:42 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohnW-0005jd-OC; Tue, 28 Jul 2026 13:24:42 +0000 Received: by outflank-mailman (input) for mailman id 1374173; Tue, 28 Jul 2026 13:24:41 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohnV-0005jM-Dv for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:24:41 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohnU-002vuo-Qv for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:24:40 +0200 Received: from [10.42.69.12] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ad98-e002-0a2a0a5209dd-0a2a450cee00-0 for ; Tue, 28 Jul 2026 15:24:40 +0200 Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com) by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ad98-f479-0a2a450c0019-d1558035d914-3 for ; Tue, 28 Jul 2026 15:24:40 +0200 Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-4954a32cf1eso20203925e9.3 for ; Tue, 28 Jul 2026 06:24:40 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47f85bc62basm61860788f8f.13.2026.07.28.06.24.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:24:39 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785245080; x=1785849880; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=31bEzBE374yqE4es14uilqJ/7IGdLVYHPRoJ2VGKJ8Y=; b=P9U2qKww9AQtG3VFAf3RjUgAESmqEdskQWIPmmKEvi8SM3u44uGOYzI+2YoUiuCcwW ygAKfR567D165ZNf+2X9kIxWjKrmY4QgOa1KwVngcMXmAwgjOoVO9d8psrAhTHGXS1D0 DUf74AcWmc6oLvFUt1jMa0n+hMOmUv8pB1xrMpPIY5pQ3F+aTDyxeC4+uI6SeYBGizAw zalQpWUUWeHVjpIL80tREhu0IbPihYDw+2e9MAgp0t3syeTsWbSOx4JjNcq63JkfYc+W U1KqLWlj0o140Rv3vAlfSHMsiVRKQtkZJxO22KYnpa3a7IIbNn4ZB2rOfkqv3bAvXsVt FVxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785245080; x=1785849880; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=31bEzBE374yqE4es14uilqJ/7IGdLVYHPRoJ2VGKJ8Y=; b=BeRLB6WTCXmorQ8l2EShHjDLZhn1EMK5Y+DeUxIujNw3aPEvM2Xs78l8GQ1Gi/jsTw VCltLAshVCCVdIBcvDSPW+nc9XpCA/2NaHnqjxSYcwqJEQaYAt4PR66Mk8vLoIHFvvKM KnDkAyM1oBTwtmsTL6wC43F5KFMYU1iWm1lEwdulutDHylsa+a7vKLVuQTJghMaifj6X cJcX2Dp49aqi0Fj3zdvY/V69zM+o2mjbhJp+85sw4ta+Yi7HmxMdYZvrFTWOnSzfoD29 NiRwwzVKYfvjU1kjnC5AeYiPc2NgWzWA6/RXYb9ubtFqkFEWxg+Ma25fCpdRji2yVaHA lYlA== X-Gm-Message-State: AOJu0YwnPWgBNGzNLT1q7GGmvUbH3TiBz3+GVPwEE7MCgDvDoGZbHDRd ijhmA+B3XbbTEbPPQsRjqLMiy7fvrPCE2xQomyurvykXiLKiNPNE9U3yq9UgWjqmJ2C6S44teIi gHqyHbg== X-Gm-Gg: AR+sD13bSy9QoD5K4KEddsgjrNp0RIS2R9Z8BwYq0eM7HU7LQ7Cu8FuVkHETF+5PkBV ZxSRxguVijSLvdI+BRLmjk5yAGUEqeZtfQ/DkO9jixe0SQ1zzSpgCDjB4vjW4t+aW2rBNc50Po3 p05Srdo3M6B3vOWGastOX3+pHWP5sK6KYYRZJ7Elk6LFvALeuI/0E5n0UcZ6MPyQMDI1q1PFwFp 431+dhRbW8pqeBKvwj0RArdNqP147uyo0rBZdFscoPLC2D3zIYdVjdvmflX8P1D0g6zwRVJEQBz io6McO7FW9mxw4y2++nrvZVnJvP/WmyC0nFvDuNJ+nM/++apnKH+Wyc+qqFfKMaRZU1OawH7zCO KXt3t7aqUIawPXwirl3S7Rr6hhCpy2DKPzuu4dU6qOHb1ke5ZdB2QF/nKwf101e1ud7voReTjfJ ySSQ/tn5OPUSlwxDuSsOPfLLh73NH+BFgtjauJw5eJ79BJWkHjfdfRL/K52gJpHvbCB9BwtloMU 3Zc X-Received: by 2002:a05:600c:524f:b0:495:51b6:174f with SMTP id 5b1f17b1804b1-496c656539amr27433565e9.20.1785245080164; Tue, 28 Jul 2026 06:24:40 -0700 (PDT) Message-ID: <4ea749a8-4bc4-41c7-92fe-ceb029ab9afb@suse.com> Date: Tue, 28 Jul 2026 15:24:37 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 21/24] x86: type-correct last parameter of map_domain_pirq() From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Teddy Astie , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-d25034/1785245080-026DEA5B-E641C06B/0/0 X-purgate-type: clean X-purgate-size: 2091 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785245106530158500 Content-Type: text/plain; charset="utf-8" This was meant to allow for non-MSI data to be passed if necessary, but the way XSM/Flask uses the (propagated) argument that's not going to work anyway without further adjustments. As no secondary use has surfaced in many years, switch to using the correct type. Leave XSM alone, as that'll be changed subsequently anyway (to then also no longer use plain void). Signed-off-by: Jan Beulich --- a/xen/arch/x86/include/asm/irq.h +++ b/xen/arch/x86/include/asm/irq.h @@ -27,6 +27,7 @@ typedef struct { } vmask_t; =20 struct irq_desc; +struct msi_info; =20 /* * Xen logic for moving interrupts around CPUs allows manipulating interru= pts @@ -161,7 +162,7 @@ struct arch_pirq { int pirq_shared(struct domain *d , int pirq); =20 int map_domain_pirq(struct domain *d, int pirq, int irq, int type, - void *data); + struct msi_info *msi); int unmap_domain_pirq(struct domain *d, int pirq); int get_free_pirq(struct domain *d, int type); int get_free_pirqs(struct domain *d, unsigned int nr); --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -2180,7 +2180,7 @@ int get_free_pirqs(struct domain *d, uns #define MAX_MSI_IRQS 32 /* limited by MSI capability struct properties */ =20 int map_domain_pirq( - struct domain *d, int pirq, int irq, int type, void *data) + struct domain *d, int pirq, int irq, int type, struct msi_info *msi) { int ret =3D 0; int old_irq, old_pirq; @@ -2214,7 +2214,7 @@ int map_domain_pirq( return 0; } =20 - ret =3D xsm_map_domain_irq(XSM_HOOK, d, irq, data); + ret =3D xsm_map_domain_irq(XSM_HOOK, d, irq, msi); if ( ret ) { dprintk(XENLOG_G_ERR, "dom%d: could not permit access to irq %d ma= pping to pirq %d\n", @@ -2245,7 +2245,6 @@ int map_domain_pirq( =20 if ( type =3D=3D MAP_PIRQ_TYPE_MSI || type =3D=3D MAP_PIRQ_TYPE_MULTI_= MSI ) { - struct msi_info *msi =3D (struct msi_info *)data; struct msi_desc *msi_desc; struct pci_dev *pdev; unsigned int nr =3D 0; From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785245133; cv=none; d=zohomail.com; s=zohoarc; b=bhUnOcXL/iz4Vz2Hl0WgOmihMOjLkrxB3ENHdiZHqNsGBZcsl6/0r276jNr05nJ/0KPfcnWz7XisiIv6LG1tgawsXSE/N15AXXN28+zkG2Rb1AYXMeUJQiXGEo0sButGKlVojnPo66L+J8BmDcc1HowzCm9llgwZ0SmCI0Hj898= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785245133; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1ExWWmCax9YKIf9+ZpJTMdhUNqkD9KZ5pQgLLOZBXpU=; b=AOHAp+Ooqi5aNCbcnpghb+fOTiy6v+5A8e+EDEbxI/tzQQOPDaeQJ3laGJhVqW1KrCDpUh5im1xeCIZCSoww1VkVIwNjAXbdpPdRvpDq855ytac0Qcb2qDeP8bmjTtm7g276IYhWJdz1dJRPdDFS5G1tUa1SAbbCGVpBKS2mawY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785245133729908.6519288937775; Tue, 28 Jul 2026 06:25:33 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374180.1621154 (Exim 4.92) (envelope-from ) id 1wohoC-0006I6-2S; Tue, 28 Jul 2026 13:25:24 +0000 Received: by outflank-mailman (output) from mailman id 1374180.1621154; Tue, 28 Jul 2026 13:25:24 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohoB-0006Hz-Vr; Tue, 28 Jul 2026 13:25:23 +0000 Received: by outflank-mailman (input) for mailman id 1374180; Tue, 28 Jul 2026 13:25:23 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohoB-0006Hn-68 for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:25:23 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohoA-00HBk8-F3 for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:25:22 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68adb5-2eae-0a2a0a5409dd-0a2a450b9cb2-40 for ; Tue, 28 Jul 2026 15:25:22 +0200 Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68adc2-b7e8-0a2a450b0019-d155802cb9d0-3 for ; Tue, 28 Jul 2026 15:25:22 +0200 Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-4954a2e73a9so20486015e9.3 for ; Tue, 28 Jul 2026 06:25:22 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-496c4615f5fsm74360985e9.9.2026.07.28.06.25.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:25:21 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785245122; x=1785849922; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=1ExWWmCax9YKIf9+ZpJTMdhUNqkD9KZ5pQgLLOZBXpU=; b=XvDk9J0A4GlaKJnHhe55VwETJh1a/ttqhWKkJ0ia0c0wHJQdCoqC72jBq71FWet28T 4fndU7xgLGU7ERhn+oUozJawErKY+eS0dthmimk0swTcHtErLaYNBROT9SC/RrpdTZx2 EnEyiO6h8MKLGHof0TXAdkvWv4Qy6VM8+zWajoohI87hQQPh+bbwK9/ipAYvegPFZ9JX Gqj8KgiUXMIqf9xbXI1l0Goss2w8xLOs3/h3WYFL9rWkmnPSuJUf4COHrNs4/cG4PoG0 MaDY5xxz0d6C44ITL0bvFpriwCGQAv4nr2CBP6kVezMFy/8UjR8WMggg4wj+iDJFnx9L J7jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785245122; x=1785849922; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=1ExWWmCax9YKIf9+ZpJTMdhUNqkD9KZ5pQgLLOZBXpU=; b=UuN+9xR+jdM2h6KKXHtk4vun7Kdbo1VOvLaj9bwtYmLEYfAesplSSQNpS2VmbbokFT x9NRa3CU9ep3uKx7bDysCXdsE2douo70O+Iy40cU+P6W6bq1Wc/8vuNWuVy16EN5S608 muH5flpRy+LNPU4DbPQDRNOa7rpeLk7ULsQ6XyQpvwV+CgFWauTOGg6pIjQqSdjdmMkp ojN3QneR7cEZG3wb6KnWR5DfToOo0lYetlH6Ti5pgSRObOGCBK4Xep2C1bMg7jitAmTP +Z0Bg/WvNZ78KOzjuxUy44GjwkwwCTMYrDKRGRZdVO2BSnJU5NNidQRS7aiimQ2hxaoH /sLg== X-Gm-Message-State: AOJu0YwwC4vrd6dKHnjxmryuSHDVzUQABY71PIi+FMQNZ1s7ZPj8ViHy gAGBI92S0i2jrAth4bDzM6Gj5Z5ShjsWzPqMGGDOFeItKdgAzOxeE5bWZugtiaVLyet88NwJtIH n3un4rQ== X-Gm-Gg: AR+sD10fC+7dsVU/bX5wm+mDu1mPoPMJm3G7WjWhb2YyXRYN4E35Lp6AD8q2BSxU790 X8dNymzcDGjhZQ2mutUzBgDkeFFki6Z9eIZaYr0SbQgWukBJY3aBVYw/oFqzJgGCY2qiGU1vP9y OGQXjOsIbNpydF4tXt0Tu0wrh4ky8ZujVb0aKFfGqjwCb9Ti2JcT+pc6+dPTKhkHS1Z1VBf5DS8 Gw2uDcIbcNdRo5HhVF8841eIe+Jf3KDQkxAoFRxC90sLdJ167RRMQptKdfa+cI8Rqv0j3UlkJKZ nNAGkbj2I7CrTp2ACN12FquvxU8AzzklwTgMF6kF0hlKkaUHrFWQ7ikuF6AzzEYdLONY2CtIwVR Zj/EQgZR0lpzrfeFw6AvnSjn6fYgqwMlw79eAbysYVBg1ghzb4L7YElnVxiUKF0T644wuhSeJb0 SiNd3w26OTfwR5/TNCDDpJ5aNVFdLe/Lsrtc2KyLp32psrk5hs0CIE7l05Jpuwf7xP5A== X-Received: by 2002:a05:600c:4fc7:b0:493:f140:c3fb with SMTP id 5b1f17b1804b1-496c6414d84mr33949815e9.7.1785245121792; Tue, 28 Jul 2026 06:25:21 -0700 (PDT) Message-ID: Date: Tue, 28 Jul 2026 15:25:20 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 22/24] XSM: pass just SBDF to xsm_{,un}map_domain_irq() From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith , Andrew Cooper , Teddy Astie , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-42698a/1785245122-AA0C59EA-B7762E0C/0/0 X-purgate-type: clean X-purgate-size: 4820 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785245134658158500 Content-Type: text/plain; charset="utf-8" That's what Flask needs, and by unifying the hooks flask_map_domain_msi() can then also serve both flask_{,un}map_domain_irq(). Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- How come Arm doesn't use xsm_unmap_domain_irq()? --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -2214,7 +2214,7 @@ int map_domain_pirq( return 0; } =20 - ret =3D xsm_map_domain_irq(XSM_HOOK, d, irq, msi); + ret =3D xsm_map_domain_irq(XSM_HOOK, d, irq, msi ? &msi->sbdf : NULL); if ( ret ) { dprintk(XENLOG_G_ERR, "dom%d: could not permit access to irq %d ma= pping to pirq %d\n", @@ -2442,7 +2442,7 @@ int unmap_domain_pirq(struct domain *d, */ if ( !d->is_dying ) ret =3D xsm_unmap_domain_irq(XSM_HOOK, d, irq, - msi_desc ? msi_desc->dev : NULL); + msi_desc ? &msi_desc->dev->sbdf : NULL); =20 if ( ret ) goto done; --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -470,7 +470,7 @@ static XSM_INLINE int xsm_map_domain_pir #endif /* CONFIG_HAS_PIRQ */ =20 static XSM_INLINE int xsm_map_domain_irq( - XSM_DEFAULT_ARG struct domain *d, int irq, const void *data) + XSM_DEFAULT_ARG struct domain *d, int irq, const pci_sbdf_t *sbdf) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, current->domain, d); @@ -491,7 +491,7 @@ static XSM_INLINE int xsm_unbind_pt_irq( } =20 static XSM_INLINE int xsm_unmap_domain_irq( - XSM_DEFAULT_ARG struct domain *d, int irq, const void *data) + XSM_DEFAULT_ARG struct domain *d, int irq, const pci_sbdf_t *sbdf) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, current->domain, d); --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -71,8 +71,8 @@ XSM_HOOK(int, schedop_shutdown, struct d XSM_HOOK(int, map_domain_pirq, struct domain *, bool) #endif =20 -XSM_HOOK(int, map_domain_irq, struct domain *, int, const void *) -XSM_HOOK(int, unmap_domain_irq, struct domain *, int, const void *) +XSM_HOOK(int, map_domain_irq, struct domain *, int, const pci_sbdf_t *) +XSM_HOOK(int, unmap_domain_irq, struct domain *, int, const pci_sbdf_t *) XSM_HOOK(int, bind_pt_irq, struct domain *, struct xen_domctl_bind_pt_irq = *) XSM_HOOK(int, unbind_pt_irq, struct domain *, struct xen_domctl_bind_pt_ir= q *) =20 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1030,17 +1030,14 @@ static int cf_check flask_map_domain_pir #endif /* CONFIG_HAS_PIRQ */ =20 static int flask_map_domain_msi ( - struct domain *d, int irq, const void *data, uint32_t *sid, + struct domain *d, int irq, pci_sbdf_t sbdf, uint32_t *sid, struct avc_audit_data *ad) { #ifdef CONFIG_HAS_PCI_MSI - const struct msi_info *msi =3D data; - uint32_t machine_bdf =3D msi->sbdf.sbdf; - AVC_AUDIT_DATA_INIT(ad, DEV); - ad->device =3D machine_bdf; + ad->device =3D sbdf.sbdf; =20 - return security_device_sid(machine_bdf, sid); + return security_device_sid(sbdf.sbdf, sid); #else return -EINVAL; #endif @@ -1066,15 +1063,15 @@ static uint32_t flask_iommu_resource_use } =20 static int cf_check flask_map_domain_irq( - struct domain *d, int irq, const void *data) + struct domain *d, int irq, const pci_sbdf_t *sbdf) { uint32_t sid, dsid; int rc =3D -EPERM; struct avc_audit_data ad; uint32_t dperm =3D flask_iommu_resource_use_perm(d); =20 - if ( irq >=3D nr_static_irqs && data ) - rc =3D flask_map_domain_msi(d, irq, data, &sid, &ad); + if ( irq >=3D nr_static_irqs && sbdf ) + rc =3D flask_map_domain_msi(d, irq, *sbdf, &sid, &ad); else rc =3D get_irq_sid(irq, &sid, &ad); =20 @@ -1091,32 +1088,15 @@ static int cf_check flask_map_domain_irq return rc; } =20 -static int flask_unmap_domain_msi ( - struct domain *d, int irq, const void *data, uint32_t *sid, - struct avc_audit_data *ad) -{ -#ifdef CONFIG_HAS_PCI_MSI - const struct pci_dev *pdev =3D data; - uint32_t machine_bdf =3D (pdev->seg << 16) | (pdev->bus << 8) | pdev->= devfn; - - AVC_AUDIT_DATA_INIT(ad, DEV); - ad->device =3D machine_bdf; - - return security_device_sid(machine_bdf, sid); -#else - return -EINVAL; -#endif -} - static int cf_check flask_unmap_domain_irq( - struct domain *d, int irq, const void *data) + struct domain *d, int irq, const pci_sbdf_t *sbdf) { uint32_t sid; int rc =3D -EPERM; struct avc_audit_data ad; =20 - if ( irq >=3D nr_static_irqs && data ) - rc =3D flask_unmap_domain_msi(d, irq, data, &sid, &ad); + if ( irq >=3D nr_static_irqs && sbdf ) + rc =3D flask_map_domain_msi(d, irq, *sbdf, &sid, &ad); else rc =3D get_irq_sid(irq, &sid, &ad); From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785245257; cv=none; d=zohomail.com; s=zohoarc; b=AyRHweULIVqIwg2IvX8lEhS/nC29eewWd/hb5EKqzgx1KTzhKqjiBjqeWIe8CgCA4x+T80OqbGUnfjliLTahWdZ1FQjVRcEaNVwseKiDfjjw+WMGqFue95s7mcu9U7wB9STBQ89T1AvtWAZXAjj4j0BALdzWw5El01QRsZLXWx0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785245257; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=A9LQ0YbONOfKcGHn8Pxg/3chj8rv49uQXmbI7DaWPL4=; b=elayB2Kok7F+yfOnWdzdWxdnFKNzk+THM2+XHnVz+emKS686ASAFMN2J93Smj+xT1XL1KZ0oU+3ikHFQQy9X2Om56K3/V0D2/cmh89enkaOyk3J6jnjj20OKUpt6CAjT8zIDw5uZi1jXJejRkP8YKf1LFIiY20AAK1HRSwUO0+A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 178524525722165.41246518840592; Tue, 28 Jul 2026 06:27:37 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374188.1621164 (Exim 4.92) (envelope-from ) id 1wohq0-0006vw-EN; Tue, 28 Jul 2026 13:27:16 +0000 Received: by outflank-mailman (output) from mailman id 1374188.1621164; Tue, 28 Jul 2026 13:27:16 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohq0-0006vp-AM; Tue, 28 Jul 2026 13:27:16 +0000 Received: by outflank-mailman (input) for mailman id 1374188; Tue, 28 Jul 2026 13:27:15 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohpz-0006vj-03 for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:27:15 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohpy-00ETnQ-9V for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:27:14 +0200 Received: from [10.42.69.8] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ae30-2eae-0a2a0a5409dd-0a2a4508dce4-8 for ; Tue, 28 Jul 2026 15:27:14 +0200 Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com) by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68adf6-f659-0a2a45080019-d1558030c5ef-3 for ; Tue, 28 Jul 2026 15:26:14 +0200 Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-4954c0833b4so28701745e9.1 for ; Tue, 28 Jul 2026 06:26:14 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-496c45c297dsm74981765e9.7.2026.07.28.06.26.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:26:13 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785245174; x=1785849974; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=A9LQ0YbONOfKcGHn8Pxg/3chj8rv49uQXmbI7DaWPL4=; b=ALD7ehf8X2hr6B7NlbpfYaR/uBVVFP3PCxsVwVPDQ7uzE/S1OoBupM8G2MRvHDAb9j x1W6Oa6yFHJl5BglrC8o5pqxdAbLr1RHFEYs17mNt/dLP1behYGILbObT5onyhVF3DCE nlbCXC0VvU0IdekkfGIwKEKSbgbLGf5s93pLdGkvfqjcRUhYxB6Jd7v45pAT7mLjbYxf vO85IFoZ+SsX++G6RRkan3UvwjCutK75Vj8zJDYgJd3bVdAuektCX73cpOgvUx3mA+o9 T5gnK7DRUmdMt/rZ/QNeyeIXtzOczlkuNBUHKqaUr7vvU8khPCmgcgHbZkcH6ZJPTbh4 S/yA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785245174; x=1785849974; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=A9LQ0YbONOfKcGHn8Pxg/3chj8rv49uQXmbI7DaWPL4=; b=SLSptZWxY2di8EcpoK5vpcaex1DlJiVnyN2yco3Q2IrRYJ4MwynVxH34+PjQs0mveT s9MksIcfZhHeKqt316MIIHwHwix9eg0P7tsnWHAItJch9O+Xe8DWY7s2p6zjKWhhJRn/ fu/xqCog4iRxTK91MJ1/8+aIZaCeOTpMy5+IxcWNoanhibL2xjc0fezLlL3f4NBV3dXy 5kSVQ9oS/Xpu5KQZx2M8lcfp94n0hHMn+oRLrtBm0RYyuR8Ma6ZE/62HtTPkzq/KYIsI ELzQL+MrfFN0lrcyMSr5f+qpW5gzlBdkOLmHzN+BreVKOwPZ/KrYNsMY7LO4gl93IUV/ dzVA== X-Gm-Message-State: AOJu0YzURQaJkSNKPTzHUIH5OpiY64oi8AT6dYP0L5Pyb7aWPybFqjX1 P1uaq0ucL1qauDblJmAeHAbJt8MJWvzLUduEMvOl3CVx+VnXcATr/Nx2XeQIh8xwLsxVJeic8Zm Qj6EWEg== X-Gm-Gg: AR+sD10SaFB+3RVCVnte/naHeQCDVRpq33o0Eitm/l5epxJaSlSTqGH5Puu3xuNhOxK VHnfQixDIC87dyQWRckc8i/rN4bKUuWEbepZA2yASWisBZJKaGwn9Tv5yG4gBTUn0ngdLtYULHo C6hmWXJ8V9bi9pY233xee/I567ZIpjwPg2p930Y2sUI75HK4KpTz+b6Ym6bnnhFXUuLkqNLPvhr pvzA+ced1yOqF7tvm31JIg4FrlADC6AcKQ9NN+JyBkCjSVz7DWG1SrbCRomMtKMsBwrEfac66ox UO8tZIYRw3IFw66KajdwfzavvHSVSGhbEEGaPrAhqsUv05O8hh/pwqrxVGogCI9lmeU02E8wSyM Mq47/LD0ldmlTDYlzzFvoLIGhG9cdn3wBhcnLW+tR25xWh5JP/4TtUsyZe+3riuk2Sr1I7RSe6m wMC/9OC8dHXmFHdX/Bf9+T3FBVRjfJ8ceOqiLrMLtRF2RoWmQMo3+O43k89HDngDCEtQ== X-Received: by 2002:a05:600c:630d:b0:495:6134:6d61 with SMTP id 5b1f17b1804b1-496c6568d4bmr30173215e9.19.1785245173544; Tue, 28 Jul 2026 06:26:13 -0700 (PDT) Message-ID: Date: Tue, 28 Jul 2026 15:26:11 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 23/24] XSM: fold xsm_{,un}map_domain_irq() hooks From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith , Andrew Cooper , Teddy Astie , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Julien Grall , Stefano Stabellini , Volodymyr Babchuk , Bertrand Marquis , Michal Orzel References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-c1860d/1785245174-D694287B-30B7C026/0/0 X-purgate-type: clean X-purgate-size: 5016 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785245257539158500 Content-Type: text/plain; charset="utf-8" Like other resource management hooks they are (now) mainly different in "add resource" vs "remove resource". Hence like in other cases a single hook can easily serve both purposes, with minor tweaking of flask_map_domain_irq(). While adjusting that function, also defer the setting of local variables only needed in the "map" case. Signed-off-by: Jan Beulich --- a/xen/arch/arm/domctl.c +++ b/xen/arch/arm/domctl.c @@ -100,7 +100,7 @@ long arch_do_domctl(struct xen_domctl *d * done by the 2 hypercalls for consistency with other * architectures. */ - rc =3D xsm_map_domain_irq(XSM_HOOK, d, irq, NULL); + rc =3D xsm_map_domain_irq(XSM_HOOK, d, irq, NULL, true); if ( rc ) return rc; =20 --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -2214,7 +2214,7 @@ int map_domain_pirq( return 0; } =20 - ret =3D xsm_map_domain_irq(XSM_HOOK, d, irq, msi ? &msi->sbdf : NULL); + ret =3D xsm_map_domain_irq(XSM_HOOK, d, irq, msi ? &msi->sbdf : NULL, = true); if ( ret ) { dprintk(XENLOG_G_ERR, "dom%d: could not permit access to irq %d ma= pping to pirq %d\n", @@ -2441,8 +2441,8 @@ int unmap_domain_pirq(struct domain *d, * domain. Skip the XSM check since this is a Xen-initiated action. */ if ( !d->is_dying ) - ret =3D xsm_unmap_domain_irq(XSM_HOOK, d, irq, - msi_desc ? &msi_desc->dev->sbdf : NULL); + ret =3D xsm_map_domain_irq(XSM_HOOK, d, irq, + msi_desc ? &msi_desc->dev->sbdf : NULL, f= alse); =20 if ( ret ) goto done; --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -470,7 +470,8 @@ static XSM_INLINE int xsm_map_domain_pir #endif /* CONFIG_HAS_PIRQ */ =20 static XSM_INLINE int xsm_map_domain_irq( - XSM_DEFAULT_ARG struct domain *d, int irq, const pci_sbdf_t *sbdf) + XSM_DEFAULT_ARG struct domain *d, int irq, const pci_sbdf_t *sbdf, + bool allow) { XSM_ASSERT_ACTION(XSM_HOOK); return xsm_default_action(action, current->domain, d); @@ -490,13 +491,6 @@ static XSM_INLINE int xsm_unbind_pt_irq( return xsm_default_action(action, current->domain, d); } =20 -static XSM_INLINE int xsm_unmap_domain_irq( - XSM_DEFAULT_ARG struct domain *d, int irq, const pci_sbdf_t *sbdf) -{ - XSM_ASSERT_ACTION(XSM_HOOK); - return xsm_default_action(action, current->domain, d); -} - static XSM_INLINE int xsm_irq_permission( XSM_DEFAULT_ARG struct domain *d, int pirq, bool allow) { --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -71,8 +71,7 @@ XSM_HOOK(int, schedop_shutdown, struct d XSM_HOOK(int, map_domain_pirq, struct domain *, bool) #endif =20 -XSM_HOOK(int, map_domain_irq, struct domain *, int, const pci_sbdf_t *) -XSM_HOOK(int, unmap_domain_irq, struct domain *, int, const pci_sbdf_t *) +XSM_HOOK(int, map_domain_irq, struct domain *, int, const pci_sbdf_t *, bo= ol) XSM_HOOK(int, bind_pt_irq, struct domain *, struct xen_domctl_bind_pt_irq = *) XSM_HOOK(int, unbind_pt_irq, struct domain *, struct xen_domctl_bind_pt_ir= q *) =20 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1063,12 +1063,11 @@ static uint32_t flask_iommu_resource_use } =20 static int cf_check flask_map_domain_irq( - struct domain *d, int irq, const pci_sbdf_t *sbdf) + struct domain *d, int irq, const pci_sbdf_t *sbdf, bool access) { - uint32_t sid, dsid; + uint32_t sid, dsid, dperm; int rc =3D -EPERM; struct avc_audit_data ad; - uint32_t dperm =3D flask_iommu_resource_use_perm(d); =20 if ( irq >=3D nr_static_irqs && sbdf ) rc =3D flask_map_domain_msi(d, irq, *sbdf, &sid, &ad); @@ -1078,33 +1077,16 @@ static int cf_check flask_map_domain_irq if ( rc ) return rc; =20 - dsid =3D domain_sid(d); - - rc =3D avc_current_has_perm(sid, SECCLASS_RESOURCE, RESOURCE__ADD_IRQ,= &ad); - if ( rc ) + rc =3D avc_current_has_perm(sid, SECCLASS_RESOURCE, + access ? RESOURCE__ADD_IRQ : RESOURCE__REMOV= E_IRQ, + &ad); + if ( rc || access ) return rc; =20 - rc =3D avc_has_perm(dsid, sid, SECCLASS_RESOURCE, dperm, &ad); - return rc; -} - -static int cf_check flask_unmap_domain_irq( - struct domain *d, int irq, const pci_sbdf_t *sbdf) -{ - uint32_t sid; - int rc =3D -EPERM; - struct avc_audit_data ad; - - if ( irq >=3D nr_static_irqs && sbdf ) - rc =3D flask_map_domain_msi(d, irq, *sbdf, &sid, &ad); - else - rc =3D get_irq_sid(irq, &sid, &ad); - - if ( rc ) - return rc; + dsid =3D domain_sid(d); + dperm =3D flask_iommu_resource_use_perm(d); =20 - rc =3D avc_current_has_perm(sid, SECCLASS_RESOURCE, RESOURCE__REMOVE_I= RQ, &ad); - return rc; + return avc_has_perm(dsid, sid, SECCLASS_RESOURCE, dperm, &ad); } =20 static int cf_check flask_bind_pt_irq( From nobody Thu Aug 27 01:20:12 2026 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; dkim=pass; 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1785245341; cv=none; d=zohomail.com; s=zohoarc; b=ZqbBZMKu/W2V6GfHke9l0hiWFhl8CjvVcoHvznptw/83PvV3dThrg7/r0wiXmxJOrRb83+VEWqY91/EJhl90I9jH3DN/fTwRmoTNBe8VR3aHrMJFlcp4MBCvUMpwrd2+x8z34nN8kms+6pibQ1Ulfxq81SxWWrxfHzcnMbzyx6w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785245341; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=HrOvCzsNhd33qamE+cZ36ihr91EVmBqcRr+fANgYdRs=; b=lCPO112sYQJpvI+bFadL1tsyBc6wdJ5UO1BedWB9Yo/eOwg7xynoD7m7NJMsQOnTx4hZ6UWAP5JHFY6oVX4tOeEHr5IyYtNS8pFhKdwWfn+nFqpFf1xqRjKluEFXybXdPYFksKVGIbeVBmjoTHJuOgQcoBqEkVpBYbD8l60SPgs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 17852453412931002.0859189143677; Tue, 28 Jul 2026 06:29:01 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1374204.1621181 (Exim 4.92) (envelope-from ) id 1wohrP-000834-VQ; Tue, 28 Jul 2026 13:28:43 +0000 Received: by outflank-mailman (output) from mailman id 1374204.1621181; Tue, 28 Jul 2026 13:28:43 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wohrP-00082x-Sh; Tue, 28 Jul 2026 13:28:43 +0000 Received: by outflank-mailman (input) for mailman id 1374204; Tue, 28 Jul 2026 13:28:42 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) id 1wohrO-00082j-HY for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 13:28:42 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wohrN-00BTIz-UW for xen-devel@lists.xenproject.org; Tue, 28 Jul 2026 15:28:41 +0200 Received: from [10.42.69.3] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a68ae88-e002-0a2a0a5209dd-0a2a450398ea-10 for ; Tue, 28 Jul 2026 15:28:41 +0200 Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com) by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a68ae11-fae8-0a2a45030019-d155dd2de4f9-3 for ; Tue, 28 Jul 2026 15:26:41 +0200 Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-47f703a9d05so2588410f8f.0 for ; Tue, 28 Jul 2026 06:26:41 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47f85b9a596sm57279913f8f.4.2026.07.28.06.26.40 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jul 2026 06:26:40 -0700 (PDT) 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1785245201; x=1785850001; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=HrOvCzsNhd33qamE+cZ36ihr91EVmBqcRr+fANgYdRs=; b=FO7NDSEzzQGO9KLDEY6CQPkJi09d8bVOH2fMmBGSFw+ZhyPRQLBGoBmKkjqkCcChay r9xWd81hrHwYJSmQj0nqMgxouvi3AklwPy+Rz5g8CyoocyOm0PIrqwbld3lv6oiKYLcR 8662nVQ9zUax1CpOy7a2Kx+vRMCgkefjv2s8HSUmDh44pcCi59llwFOg9BV/7V4rI4Pq Xt1srIViMJ3twBMbgGNMaUGR12FBALCKYsf63yfF1Z/q7ViHXUU6GephWzPKwMJcV+13 2WbAMq4ylAdOyRE+IZAd29YJYcfE70EEGtxYi0qosC7uB2ufpW0/eDwZ8FfFZga0fclK ulxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785245201; x=1785850001; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=HrOvCzsNhd33qamE+cZ36ihr91EVmBqcRr+fANgYdRs=; b=aj074I9aeEkQ523PY0aQ75PKjga3NCEr33ItXNxOey53Xg2+LRaVn8Cv+0bERCCOWD bXfCJFrqmxjrw5OJBF5F9/dqdng3rpvGGcViIDqWbBKmU4fWX7yy0HWFQB3I21vFbaxE AhExaed6WsIEeItd2zx1a/3+IKL1jfKUWwcdaxJaqsw/NG9sUbPjNlufa6LY2vGfTk9U TfWUoRIiVtrQzJjNjqejOtDPyAWZWgzr52xr4mCBbav2ZY9uKazGPuvwQkeeiZ/JHrsX nfwkjvMmkph6JCXCCINNJztvoZAYutSEsdxQf6TV4OKIB3OzeZhNkF62yADZWXn99mJv sGAw== X-Gm-Message-State: AOJu0YwuWrci2TU7JzzjmOkJXj19JxJ9YMxl+Xn+cmsB9B34O13tiKI2 D9F1hqWf6DK3wtn5eaRX5QJ7KMfT4QTrF9nlUSh+ajwN6VzlQlB1uavYwWkDgepx++Wym9OCEGj gtwrNLw== X-Gm-Gg: AR+sD10CiynUpKMhfELLFtgKBcTrJpRB18GtZ4pMofDY4sqsx3wNvG86YawcTEIOOj4 t86p3Ji9ZvnNInDqpfvayr4lTOc1HOgC0EEb9AdseEmdhIvtwecALI1kjcSdiiCai0j3HIwlOKt 1pS/edwuLzubhlq5om4MUAKdOp00QkHa0wDx6gECfcVoa0ZWzwyIcCzj3CmpYUenxw1fQckP9mE XWl6YGPpRqggp+7g7XU2kScR51XcHZf9HiHryHEvVmybNB/DBkKTZcruTcoPdrS1Y2oFxkc2HYc B8kvhIzJLXynL7yUW25dkeLM6sad5ZwY+z+QA3sOr4SifvvZJPkT0VegIt0p5A/EF0Wg5CajsL0 wWJO3Yucmzk+ISfjbpp3/Q4xCMCzq5kIJVYyyZSEU8BD1txSk3+xj3xuLLHqDqbtDnF7d0Tpbey You3k1PetH5PNJfLYhgkM2J4XEb1qct8MT5WXcBM+lYboOJtslvw+R61n0b3177VI2JAOh0vvPV Ain X-Received: by 2002:a05:6000:2c04:b0:47f:8887:3b07 with SMTP id ffacd0b85a97d-47fb1e6992fmr3249734f8f.13.1785245201130; Tue, 28 Jul 2026 06:26:41 -0700 (PDT) Message-ID: <03d4456b-9e85-469c-a2a1-769faad67bb0@suse.com> Date: Tue, 28 Jul 2026 15:26:39 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 24/24] XSM: fold xsm_{,un}bind_pt_irq() hooks From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Daniel Smith , Andrew Cooper , Teddy Astie , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Julien Grall , Stefano Stabellini , Volodymyr Babchuk , Bertrand Marquis , Michal Orzel References: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <758c8410-a18e-45dc-8944-5913e5832397@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-33051d/1785245201-76CF84E9-42ED0A11/20/8814405245 X-purgate-type: spam X-purgate-size: 4199 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1785245342492158500 Content-Type: text/plain; charset="utf-8" Like other resource management hooks they are mainly different in "add resource" vs "remove resource". Hence like in other cases a single hook can easily serve both purposes, with minor tweaking of flask_bind_pt_irq(). While adjusting that function, also defer the setting of "dperm", which is only needed in the "map" case. Signed-off-by: Jan Beulich --- a/xen/arch/arm/domctl.c +++ b/xen/arch/arm/domctl.c @@ -104,7 +104,7 @@ long arch_do_domctl(struct xen_domctl *d if ( rc ) return rc; =20 - rc =3D xsm_bind_pt_irq(XSM_DM_PRIV, d, bind); + rc =3D xsm_bind_pt_irq(XSM_DM_PRIV, d, bind, true); if ( rc ) return rc; =20 @@ -140,7 +140,7 @@ long arch_do_domctl(struct xen_domctl *d if ( irq !=3D virq ) return -EINVAL; =20 - rc =3D xsm_unbind_pt_irq(XSM_DM_PRIV, d, bind); + rc =3D xsm_bind_pt_irq(XSM_DM_PRIV, d, bind, false); if ( rc ) return rc; =20 --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -622,7 +622,7 @@ long arch_do_domctl( if ( !is_hvm_domain(d) ) break; =20 - ret =3D xsm_bind_pt_irq(XSM_DM_PRIV, d, bind); + ret =3D xsm_bind_pt_irq(XSM_DM_PRIV, d, bind, true); if ( ret ) break; =20 @@ -660,7 +660,7 @@ long arch_do_domctl( if ( !is_hvm_domain(d) ) break; =20 - ret =3D xsm_unbind_pt_irq(XSM_DM_PRIV, d, bind); + ret =3D xsm_bind_pt_irq(XSM_DM_PRIV, d, bind, false); if ( ret ) break; =20 --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -478,14 +478,8 @@ static XSM_INLINE int xsm_map_domain_irq } =20 static XSM_INLINE int xsm_bind_pt_irq( - XSM_DEFAULT_ARG struct domain *d, struct xen_domctl_bind_pt_irq *bind) -{ - XSM_ASSERT_ACTION(XSM_DM_PRIV); - return xsm_default_action(action, current->domain, d); -} - -static XSM_INLINE int xsm_unbind_pt_irq( - XSM_DEFAULT_ARG struct domain *d, struct xen_domctl_bind_pt_irq *bind) + XSM_DEFAULT_ARG struct domain *d, struct xen_domctl_bind_pt_irq *bind, + bool allow) { XSM_ASSERT_ACTION(XSM_DM_PRIV); return xsm_default_action(action, current->domain, d); --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -72,8 +72,8 @@ XSM_HOOK(int, map_domain_pirq, struct do #endif =20 XSM_HOOK(int, map_domain_irq, struct domain *, int, const pci_sbdf_t *, bo= ol) -XSM_HOOK(int, bind_pt_irq, struct domain *, struct xen_domctl_bind_pt_irq = *) -XSM_HOOK(int, unbind_pt_irq, struct domain *, struct xen_domctl_bind_pt_ir= q *) +XSM_HOOK(int, bind_pt_irq, struct domain *, struct xen_domctl_bind_pt_irq = *, + bool) =20 XSM_HOOK(int, irq_permission, struct domain *, int, bool) XSM_HOOK(int, iomem_permission, struct domain *, uint64_t, uint64_t, bool) --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1090,16 +1090,15 @@ static int cf_check flask_map_domain_irq } =20 static int cf_check flask_bind_pt_irq( - struct domain *d, struct xen_domctl_bind_pt_irq *bind) + struct domain *d, struct xen_domctl_bind_pt_irq *bind, bool access) { - uint32_t dsid, rsid; + uint32_t dsid, rsid, dperm; int rc =3D -EPERM; int irq; struct avc_audit_data ad; - uint32_t dperm =3D flask_iommu_resource_use_perm(d); =20 - rc =3D current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__ADD); - if ( rc ) + rc =3D current_has_perm(d, SECCLASS_RESOURCE, resource_to_perm(access)= ); + if ( rc || access ) return rc; =20 irq =3D domain_pirq_to_irq(d, bind->machine_irq); @@ -1113,13 +1112,9 @@ static int cf_check flask_bind_pt_irq( return rc; =20 dsid =3D domain_sid(d); - return avc_has_perm(dsid, rsid, SECCLASS_RESOURCE, dperm, &ad); -} + dperm =3D flask_iommu_resource_use_perm(d); =20 -static int cf_check flask_unbind_pt_irq( - struct domain *d, struct xen_domctl_bind_pt_irq *bind) -{ - return current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__REMOVE); + return avc_has_perm(dsid, rsid, SECCLASS_RESOURCE, dperm, &ad); } =20 static int cf_check flask_irq_permission(