From nobody Thu Jul 23 22:28:21 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=1781532751; cv=none; d=zohomail.com; s=zohoarc; b=c9zNMJFv1v+YDXwh82SA+MM7hTevyYBMWph3OpPnh3VnreToqbURbunrFyIfyz9rK4r/tJCS8chGfiCThSjnKYLphwQGfESdUDxSzqwDWzCfAp3BTnfyWJTwDGKf+KWiPjjhLEJiiCGweOu1SfZniP9e3CEuqRFrGmGvJlh0W6M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781532751; 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=C0VpXX4v4yr6XMrCiBGbEm94k+mIh1Al+9FcfNgLo2I=; b=AKHDawEOZ2QPMM1G5OOwuX+s/WaI//QJHsRtzaihnee5Z2W0dljm+HjJyrM2zj+qUO0JcfzZEdz2Yefjj4q4nEz0geMIjAtU+414/BxocYVO0nflGrKDTnHn37YfH3+MKpBn1ijkT/rJAstq1pSX8SFQbe+cP21EivpvDymEGaU= 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 1781532751610775.6955595438675; Mon, 15 Jun 2026 07:12:31 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1338259.1599263 (Exim 4.92) (envelope-from ) id 1wZ82y-0000Yv-5z; Mon, 15 Jun 2026 14:12:16 +0000 Received: by outflank-mailman (output) from mailman id 1338259.1599263; Mon, 15 Jun 2026 14:12: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 1wZ82y-0000Yn-3H; Mon, 15 Jun 2026 14:12:16 +0000 Received: by outflank-mailman (input) for mailman id 1338259; Mon, 15 Jun 2026 14:12:14 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ82w-0000Ya-8m for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 14:12:14 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZ82v-002zjv-Lq for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 16:12:13 +0200 Received: from [10.42.69.3] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a30083a-2eae-0a2a0a5409dd-0a2a4503e68e-4 for ; Mon, 15 Jun 2026 16:12:13 +0200 Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com) by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a30083d-672d-0a2a45030019-d1558029b478-3 for ; Mon, 15 Jun 2026 16:12:13 +0200 Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-4908b92904fso41578735e9.0 for ; Mon, 15 Jun 2026 07:12:13 -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-490ea4b2e8esm216642525e9.0.2026.06.15.07.12.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Jun 2026 07:12:11 -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: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=1781532733; x=1782137533; darn=lists.xenproject.org; h=content-transfer-encoding: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; bh=C0VpXX4v4yr6XMrCiBGbEm94k+mIh1Al+9FcfNgLo2I=; b=COswnfE1icG6Gm+mmOEzTvzo8KOcNH+Epia2foZvX27F/hCoYfS0gXWn56NSOTXnZ5 /0EpcGbI2p4ByZILjxtSAguZchpmRgHWkKmtm1HxcCkNxDM/ber5nIPwir4QRU7tSmYJ jLU3+6rg8TPor3kybcyjG9F9hNMIjkz0L4i8BapKkebP8QNgPla5Ih3w9ItW/gcVP13f s86TAs7uOjBzl6nwKIxeIH3k16YuZmgG8j5cA0o9EioYacDJbIfpNOHa2t5ZsMH3T4Gh RhlnpysdBI+xh8RaA0O9wkOU/SIo6JKFbtfL/CWPY4pJF90M/Mhdp9YfbdxU/1hV/E4z VIfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781532733; x=1782137533; h=content-transfer-encoding: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; bh=C0VpXX4v4yr6XMrCiBGbEm94k+mIh1Al+9FcfNgLo2I=; b=PkJhmiigFfHdqduezmDi+AsIgKqOdwXzG4tCg/BK+yQMjG0jm5Dn0I3xgzqCIpIsyl nRFV7KptxA4tZN76y6XKNlDbKuV39jZqMrrtCPrsOrgZgTdnaaxTAC6IPo9KSkLU/J7q g8SUG/eC7miJDZu9cB2J34DUJwxNbrumu+U5Dpc2Dis33AbyECjD3EsZYnl3x96HeaEz 51OR/0sWkkeBTGZLjumimvo5v2u7shur/Tl15UHLjaEhEe/NMx3qO/Ojj3A6u/Rc6sQj nF8j/lEuBbAdWLEykfANxNCD/3BWGqGXLkc3KxUO8KWGKoEMpxU0mMkeITR9O3rhc8O2 AyhA== X-Gm-Message-State: AOJu0Yyv1fZczBc/bUMgmvDb39MjtLMGeXPWvNSJ3aUKTO1H3xnUupm4 DEe1qPNLHXq8o84DFZsSz2RCgBl8fo4XicSY4T4pKYioCK7tYiV6QoCIwf/zm7cBDPrJ1NVrHhw EuCM= X-Gm-Gg: Acq92OGJ2BeF0NER0xBYZB03ppVbsVL1lDBF6TCPKlmd7JqWN0yWQ1dvqoJmvoogiID pDMBqEKjZLSbwTDpWvJMt3wuOv6IBt3XGMPRpGTjYrueDndIaMzrLPzUPrfYW2IaULTFq0CoJF0 TZG2XF+bmMoTnMydJR9DYNKurD7ZDGR91S12Y4hJhpXs6nhEGAK7UgbIYc+MAVGWTo1LTsORQnr ZQa8/LNWASgUPqx4IF32CXYxFL4Jgf7TqbIVIkI9WRSj9axE8eW8wEaPuN1UoivQUd1Wqh0jCsK wY2DjnL06hOnvn6/N3omjWvyouBhHm6SFWf/wX17kat/MlRTA8NQc2mPLXS2+3hXljvfAwzCgxE UaV/5XOhfgUP6HWz1bvY7EKx8T0WHB3yXCs30EO91XOX655hYKDxzbh5HHQ1u5dZ+O+Mjsef0aa yvNPdHHuj7992abLqzvLxenkF8E6tP3H0W0QAeMXu3P+iCpz5cdr/yDZle87ErH44ZZAjcyOU1b cfBcjDSF0QZErI6rzmdIX1boA== X-Received: by 2002:a05:600d:8494:10b0:490:c7dd:de3e with SMTP id 5b1f17b1804b1-490ec521187mr134538065e9.31.1781532732839; Mon, 15 Jun 2026 07:12:12 -0700 (PDT) Message-ID: <67d1e638-a2ab-4d03-b9be-915a8c42e095@suse.com> Date: Mon, 15 Jun 2026 16:12:11 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH for-4.22? 1/9] sched: introduce specialization of "running only" vcpu_runstate_get() From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Oleksii Kurochko , Dario Faggioli , Juergen Gross , George Dunlap References: 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: Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-33051d/1781532733-36B44938-ED8400ED/0/0 X-purgate-type: clean X-purgate-size: 3665 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781532754266158500 Content-Type: text/plain; charset="utf-8" About half the callers of vcpu_runstate_get() are solely after the "running" time of a vCPU. Introduce a specialization with a smaller read critical section and thus reduced risk of a need for retries. Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 Reviewed-by: Juergen Gross --- The function name was chosen such that grep-ing for "vcpu_runstate_get" would still turn up all uses. If that was deemed largely irrelevant, a better name might be e.g. vcpu_get_running_time(). --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -56,7 +56,6 @@ void getdomaininfo(struct domain *d, str struct vcpu *v; u64 cpu_time =3D 0; int flags =3D XEN_DOMINF_blocked; - struct vcpu_runstate_info runstate; =20 memset(info, 0, sizeof(*info)); =20 @@ -69,8 +68,7 @@ void getdomaininfo(struct domain *d, str */ for_each_vcpu ( d, v ) { - vcpu_runstate_get(v, &runstate); - cpu_time +=3D runstate.time[RUNSTATE_running]; + cpu_time +=3D vcpu_runstate_get_running(v); info->max_vcpu_id =3D v->vcpu_id; if ( !(v->pause_flags & VPF_down) ) { @@ -829,8 +827,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe =20 case XEN_DOMCTL_getvcpuinfo: { - struct vcpu *v; - struct vcpu_runstate_info runstate; + const struct vcpu *v; =20 ret =3D -EINVAL; if ( op->u.getvcpuinfo.vcpu >=3D d->max_vcpus ) @@ -840,12 +837,10 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe if ( (v =3D d->vcpu[op->u.getvcpuinfo.vcpu]) =3D=3D NULL ) break; =20 - vcpu_runstate_get(v, &runstate); - op->u.getvcpuinfo.online =3D !(v->pause_flags & VPF_down); op->u.getvcpuinfo.blocked =3D !!(v->pause_flags & VPF_blocked); op->u.getvcpuinfo.running =3D v->is_running; - op->u.getvcpuinfo.cpu_time =3D runstate.time[RUNSTATE_running]; + op->u.getvcpuinfo.cpu_time =3D vcpu_runstate_get_running(v); op->u.getvcpuinfo.cpu =3D v->processor; ret =3D 0; copyback =3D 1; --- a/xen/common/sched/core.c +++ b/xen/common/sched/core.c @@ -325,15 +325,35 @@ void vcpu_runstate_get(const struct vcpu } } =20 -uint64_t get_cpu_idle_time(unsigned int cpu) +uint64_t vcpu_runstate_get_running(const struct vcpu *v) { - struct vcpu_runstate_info state =3D { 0 }; - const struct vcpu *v =3D idle_vcpu[cpu]; + struct seqcount seq =3D SEQCNT_ZERO(); + const struct seqcount *s =3D v =3D=3D current ? &seq : &v->runstate_se= q; + unsigned int count; + uint64_t running; + s_time_t delta; + + do { + count =3D read_seqcount_begin(s); + + running =3D v->runstate.time[RUNSTATE_running]; + delta =3D v->runstate.state =3D=3D RUNSTATE_running + ? NOW() - v->runstate.state_entry_time + : 0; + } while ( read_seqcount_retry(s, count) ); + + if ( delta > 0 ) + running +=3D delta; =20 + return running; +} + +uint64_t get_cpu_idle_time(unsigned int cpu) +{ if ( cpu_online(cpu) && get_sched_res(cpu) ) - vcpu_runstate_get(v, &state); + return vcpu_runstate_get_running(idle_vcpu[cpu]); =20 - return state.time[RUNSTATE_running]; + return 0; } =20 /* --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -1121,6 +1121,7 @@ int vcpu_affinity_domctl(struct domain * =20 void vcpu_runstate_get(const struct vcpu *v, struct vcpu_runstate_info *runstate); +uint64_t vcpu_runstate_get_running(const struct vcpu *v); uint64_t get_cpu_idle_time(unsigned int cpu); void sched_guest_idle(void (*idle) (void), unsigned int cpu); void scheduler_enable(void); From nobody Thu Jul 23 22:28:21 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=1781532778; cv=none; d=zohomail.com; s=zohoarc; b=XQnAugZi6K9EhQlXvDW8AA+0/5LXxiZ0YS4KK4aw9SXYbBu2eLF42BwAp3H8jhPY93te+gMgKBpbi3Lvp6UlA17V86aB/PDOvTlPnI5HU4zsvKL+0q2EuJRWmdq0XP463hYUPdrb1BLeLTmu5SELtVylsGfjDhUg1VWagmTDu1E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781532778; 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=fK7QM9bVPTyHbmVo2K2FzO8qnNGFwS/xRqf+62OlG7M=; b=H4dZnfFDk5xQ/nS7/ZlrlBKUcZP6JFNVtvyuA0h8rKWTrW4Tl+F3ZqI310el/t3vvFlkWCtURFZal4SyJlVzDPBA1IL9lGWG/UejAFWID7bm7b19M1hhVYaij/Rf7e1xp7SoahjnzcXlw1B04pNzig2njn4NarDELfGmFSCI8eQ= 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 17815327786301017.1455870428907; Mon, 15 Jun 2026 07:12:58 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1338262.1599272 (Exim 4.92) (envelope-from ) id 1wZ83N-000106-DX; Mon, 15 Jun 2026 14:12:41 +0000 Received: by outflank-mailman (output) from mailman id 1338262.1599272; Mon, 15 Jun 2026 14:12:41 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ83N-0000zz-Ap; Mon, 15 Jun 2026 14:12:41 +0000 Received: by outflank-mailman (input) for mailman id 1338262; Mon, 15 Jun 2026 14:12:40 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ83M-0000zl-Mi for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 14:12:40 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZ83M-002zqf-3P for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 16:12:40 +0200 Received: from [10.42.69.6] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a300851-2eae-0a2a0a5409dd-0a2a4506d8c6-16 for ; Mon, 15 Jun 2026 16:12:40 +0200 Received: from [209.85.221.47] (helo=mail-wr1-f47.google.com) by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a300857-7371-0a2a45060019-d155dd2fc5e5-3 for ; Mon, 15 Jun 2026 16:12:40 +0200 Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-4619990ca5fso677726f8f.1 for ; Mon, 15 Jun 2026 07:12:39 -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-4606f2c3fcfsm30875264f8f.26.2026.06.15.07.12.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Jun 2026 07:12:38 -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: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=1781532759; x=1782137559; darn=lists.xenproject.org; h=content-transfer-encoding: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; bh=fK7QM9bVPTyHbmVo2K2FzO8qnNGFwS/xRqf+62OlG7M=; b=aNmehiaE+K4GWliA7sc1Wu7AiiLBrnz1MqMXahBr/u9JYkLUU6kH3H8nO9uoivH/HR I4kEgzwSb/4NUyckYVQjAl/acYh2FFCvBB45XJ/TUWj0sSgO2Zuc/09Yl8gNzKtLSxwv j0JcpyQxQNUmt9NFEnmBqfMQ5eTX38rPkOJT/329pFdEhjCAgYtcY1eEVZGEZrTb5YQC ra4cX2+yCXCCijknyRkKlGWXa+Xbz+EDZ5YyOUTecedtccIY/jyTcnvYo13Za9hyp5yM mldgoogT11pPbWfXUiom3UJQ7F1a+Q88/ixsVTRzAcDtMXYx6kFidN0ZBwU0i1LToVjY I5AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781532759; x=1782137559; h=content-transfer-encoding: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; bh=fK7QM9bVPTyHbmVo2K2FzO8qnNGFwS/xRqf+62OlG7M=; b=Js6M3Z5JFTQhtuTsRXFX9RAE7PElo+8pL+pdnTu4f8ZBPQ+7PbFEiSFrF5dCqId/f2 TKg0QGQwPJlmKgTXG2dIortzQb7Brl0d98t8Cgkk85xWFgj9wQ+4UMwdaWgkwYocBH4S AICzQOAZJlvAaO3FRRPjwPp7AJf1Fqri5EWpMh21US5G3dWDY/qwPwd/kT6d5s1fg8I+ 6n6KMR/x9bStDY+WjSt+h8uH3QxeLjWxHyuFtEe/nDeJUm5JBnibyDJpChAwV/E4cmQw Bo1808sJnF7lezyc6YUJbfU0TMgdGqtrjubZ9SS/4DgvtmcuHfOMDmLFgvCpqQQ4Dooh gtiQ== X-Gm-Message-State: AOJu0Yx52luQGgOdU3c5sjuHZnvVOdePffAE/7ty+D8670fGaQSPFdQD DipcYFZEWIO6ZODEJsC1vDEis9gbHzpxof+e8jgPdqzLhov310uJSqO1vfglHAQTX7dUI/GY8Xs 4oTM= X-Gm-Gg: Acq92OGdRgcL8/bwEhjh6MCPo4kLCs1fMWbg0njzKND3oUTDRH3UK1kJ0OX/rW1jB29 Ji65rVn3XDi6prfu5fPE3sbSmZbWeHBCGO/JqbND2bsbWYs9CIo1wacRPce3mCMSDf5d2X6GeOm EIkxuh+MM53PxFB4vsX5erZuvXs1XjTLVCLoQUopMm+h8TUWCrm3/RFFLpOUqnebSfOJANSXtRA 6IqybT87umtpG7ut/eY4JGoIZ8kB8fBv1Ll9vhR4v37NGDkrQ/vzft1EHkFen21RlBG+wb3ZItf EZwWY1FGoR1HnSu0A1kR/igDKRAbyA11MwMbkrO58rizFJ0iNmHFJUrXXK+1Bn024HCvkWqIlXR 6SEICpCIQA+Wfx+HJ/Wt5fR2EgPHnf6oaRu8Chiu8eEA/RhOVwGAbQpGSTDBVoFoxu7+eQwn4gb 6quhTRRwYOFpWKP/8v6R87SUJvCwJEYa+iaWcgTa6QQOLnlV+YHNBf1NPUbcqJN/B+/Fp3UMb5u h9bpllvbLeihwU= X-Received: by 2002:a05:6000:1446:b0:43c:fb48:6856 with SMTP id ffacd0b85a97d-46074a5bdeamr15698080f8f.13.1781532759294; Mon, 15 Jun 2026 07:12:39 -0700 (PDT) Message-ID: <96a089dc-a0dd-4f40-b1e4-5573202bf532@suse.com> Date: Mon, 15 Jun 2026 16:12:39 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH for-4.22? 2/9] domctl: move XEN_DOMCTL_irq_permission handling to x86 code From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Oleksii Kurochko References: 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: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-16d1c6/1781532760-86168D75-1721B01B/0/0 X-purgate-type: clean X-purgate-size: 2830 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781532780223158500 HAS_PIRQ is selected by x86 only, and that's expected to remain that way. Avoid the #ifdef needed by moving the logic to arch_do_domctl(). Leverage "currd" being available as a local variable there while doing so. Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monn=C3=A9 --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -258,6 +258,36 @@ long arch_do_domctl( break; } =20 + case XEN_DOMCTL_irq_permission: + { + unsigned int pirq =3D domctl->u.irq_permission.pirq, irq; + bool allow =3D domctl->u.irq_permission.allow_access; + + ret =3D -EINVAL; + if ( pirq >=3D currd->nr_pirqs ) + break; + + irq =3D domain_pirq_to_irq(currd, pirq); + + ret =3D -EPERM; + if ( irq ) + ret =3D xsm_irq_permission(XSM_PRIV, d, irq, allow); + if ( ret ) + break; + + iocaps_double_lock(d, true); + + if ( !irq_access_permitted(currd, irq) ) + ret =3D -EPERM; + else if ( allow ) + ret =3D irq_permit_access(d, irq); + else + ret =3D irq_deny_access(d, irq); + + iocaps_double_unlock(d, true); + break; + } + case XEN_DOMCTL_gsi_permission: { int irq; --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -471,38 +471,6 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe goto domctl_out_unlock_domonly; } =20 -#ifdef CONFIG_HAS_PIRQ - case XEN_DOMCTL_irq_permission: - { - unsigned int pirq =3D op->u.irq_permission.pirq, irq; - bool allow =3D op->u.irq_permission.allow_access; - - ret =3D -EINVAL; - if ( pirq >=3D current->domain->nr_pirqs ) - goto domctl_out_unlock_domonly; - - irq =3D domain_pirq_to_irq(current->domain, pirq); - - ret =3D -EPERM; - if ( irq ) - ret =3D xsm_irq_permission(XSM_PRIV, d, irq, allow); - if ( ret ) - goto domctl_out_unlock_domonly; - - iocaps_double_lock(d, true); - - if ( !irq_access_permitted(current->domain, irq) ) - ret =3D -EPERM; - else if ( allow ) - ret =3D irq_permit_access(d, irq); - else - ret =3D irq_deny_access(d, irq); - - iocaps_double_unlock(d, true); - goto domctl_out_unlock_domonly; - } -#endif - case XEN_DOMCTL_set_target: { struct domain *e =3D get_domain_by_id(op->u.set_target.target); @@ -563,6 +531,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe =20 case XEN_DOMCTL_ioport_permission: case XEN_DOMCTL_ioport_mapping: + case XEN_DOMCTL_irq_permission: case XEN_DOMCTL_gsi_permission: case XEN_DOMCTL_bind_pt_irq: case XEN_DOMCTL_unbind_pt_irq: From nobody Thu Jul 23 22:28:21 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=1781532797; cv=none; d=zohomail.com; s=zohoarc; b=NsD3gfapje9Ege2ejU5dkLu404TssrSFL7iksMQyhcdCcyfu9PZyVFFj5BgNjkSBRVY2ATibuux+yQ69t6rn129aieoWoih5dGJ+iVJh9bGQD9RhHN1FoRuNMNJq5Vfewyoc/FOJl6tMpYygEqvN9cT+ncyNj5FfeBdgynb0GoY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781532797; 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=K9wWG9O+maNG12dOUcbH4HjESbxFZUtQp5qiz1i/uAI=; b=cDD1LXCEJgspIyCqZWdF01AR8Mxyu+YtChV7phTnGtO0rK8UnmpDnY0z0Xd59qt6ru8ggwQP2cSqw0noCBoBfIcssAPTdxxsy5tgzTewA1+5ZIkIBKXidPulndjyfB5IUkwl/tmsd4kzFKc97/UpPgcnIYH0YrYY37IgQ4hjd3k= 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 1781532797965456.47393063814206; Mon, 15 Jun 2026 07:13:17 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1338268.1599281 (Exim 4.92) (envelope-from ) id 1wZ83j-0001Sr-Lw; Mon, 15 Jun 2026 14:13:03 +0000 Received: by outflank-mailman (output) from mailman id 1338268.1599281; Mon, 15 Jun 2026 14:13:03 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ83j-0001Sk-Im; Mon, 15 Jun 2026 14:13:03 +0000 Received: by outflank-mailman (input) for mailman id 1338268; Mon, 15 Jun 2026 14:13:02 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ83i-0001SV-MD for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 14:13:02 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZ83i-002zx9-2u for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 16:13:02 +0200 Received: from [10.42.69.6] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a30086d-e002-0a2a0a5209dd-0a2a450698b4-2 for ; Mon, 15 Jun 2026 16:13:01 +0200 Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com) by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a30086d-7371-0a2a45060019-d155802ec47f-3 for ; Mon, 15 Jun 2026 16:13:01 +0200 Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-490cdae130cso16438005e9.0 for ; Mon, 15 Jun 2026 07:13: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-49220372ed0sm229600395e9.14.2026.06.15.07.13.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Jun 2026 07:13: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: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=1781532781; x=1782137581; darn=lists.xenproject.org; h=content-transfer-encoding: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; bh=K9wWG9O+maNG12dOUcbH4HjESbxFZUtQp5qiz1i/uAI=; b=K4QJfLPnCQSR4HM1CLgxZACY6deIVayQGtTK9D6Foq3hsFlBMac+nIrZu6Cd70B7Dr wKX8qPsQ1kQmkxfYttG2woMDnzUN9M8JnlHz+j2ZTTGUVVmShU/Q4Ejpvy/q3ngUYAvq CbkLmSLcvBqQt9OIl+xHq6y1GcpFoOQbBCrnvxeXghI0N8jM0GPdPe25nmKk/EgZSjpE 5XEzQliayxNfi0evrLBBFYb9d2WtPhR8H3ZKjqv/duUHZTioGxqkIDregoz+/h4nC8Mk DmlF8DmEZRLnvlI6RjIEcaUxQ7xd1d4abc9EYB39m+u0+zclMnDiRXVyCZbAVJW3FI14 U14A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781532781; x=1782137581; h=content-transfer-encoding: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; bh=K9wWG9O+maNG12dOUcbH4HjESbxFZUtQp5qiz1i/uAI=; b=nyiW2Hb4l0ySW2pxn7GSQRRi42UaEiKSwPqRQ8vg1VwkXs4AvwJi3ULyvYU9aR8XMw C0mkRYQO+WYhCVpRh7ZUTU5+KU8OEuPABsK23Y5lDuEymF/RwZi9CwW0xvH2W5giP2ll QaT25/vNFVKHQhgdjFx7XY++tqruWJ1m2j/44Ilt5mmLh3nc4Z18mGLoj/qh7/Lq1nxH 2wOYoRGfgvawRjXKwbRtNyYf4lXg5WNNY67IrwPvHrE464M7dubiDWRaADmh6h62HILN T0f7ZKb4rXgnOfDtoZprhXFqvbapnYQRC0a5mpRuxupdFipyydklqxSNIbZha9NXyQgr 7+Rw== X-Gm-Message-State: AOJu0Yz+0xmSwNLZbtx69MXy9/6Bj1sLun4UuwuAxj7A+CNyi50nztH+ 4gvgaRSr6c3fStrvS5juVfnc4rz9YHH8DNCIVClgAnivW+QCpM1lmADGSwQb+GDwFJqcvlGJg7W tcoo= X-Gm-Gg: Acq92OHuRU5Umh/Umuns7Rgug3x1vfoUZAlNIO0OIDFVfmffVNrPNOsEwyfN8vbd+ok YINXwRx9DSswHKWU3MUA0REzholKbKz324wWXD130gYw6rolaIvwQKU2E18NDUO/rUcQBvXF2Cv x44QJOX0dgW5GNkOlIG4a7KC8FU4psWCC+Lvgr+IF1jYlq6bDoM050ffZDdURErttTuTIf+rOYS WbbNgYmkUBUXzkWg1WT0uGz+3Qh1+DIjpi43bcWuyuOJTipdRnm80wmHf2pCq2lNneCQItnQEsL 3itHRF8zTb1eYRtZMFcN+hiDZ7TYF5eOYtZzv0PW86P9hDvjOGWZBx/3EQno6OSmCZt+rByQXIY JC/r1crG/gbXgy3UNQPqaooS7ihI5/VISHUZ3l8UuvJcRoO6HrB3ZMYiKsclTAASXEGDNmooi+M u+Fok3P9uh/sr1x1JlG6gHmtus9rR8BCcu226kypgH8ts6fx40P2+xtNWcfHQgK0zUiOwX4il+7 veX+mMYfrOhgQQ= X-Received: by 2002:a05:600c:6287:b0:485:9a50:3370 with SMTP id 5b1f17b1804b1-492200516d4mr135546605e9.8.1781532781169; Mon, 15 Jun 2026 07:13:01 -0700 (PDT) Message-ID: Date: Mon, 15 Jun 2026 16:13:01 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH for-4.22? 3/9] domctl: rename a label From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Oleksii Kurochko References: 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: Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-16d1c6/1781532781-8777FD75-00145725/0/0 X-purgate-type: clean X-purgate-size: 5383 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781532798152158500 Content-Type: text/plain; charset="utf-8" There's no real domain unlocking here, it's merely RCU which is being "unlocked". Suggested-by: Andrew Cooper Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -373,7 +373,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe copyback =3D true; } =20 - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; =20 case XEN_DOMCTL_get_domain_state: ret =3D xsm_get_domain_state(XSM_XS_PRIV, d); @@ -381,7 +381,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe ret =3D get_domain_state(&op->u.get_domain_state, d, &op->doma= in); if ( !ret ) copyback =3D true; - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; =20 case XEN_DOMCTL_iomem_permission: { @@ -391,11 +391,11 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe =20 ret =3D -EINVAL; if ( (mfn + nr_mfns - 1) < mfn ) /* Wrap? */ - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; =20 ret =3D xsm_iomem_permission(XSM_PRIV, d, mfn, mfn + nr_mfns - 1, = allow); if ( ret ) - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; =20 iocaps_double_lock(d, true); =20 @@ -408,7 +408,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe ret =3D iomem_deny_access(d, mfn, mfn + nr_mfns - 1); =20 iocaps_double_unlock(d, true); - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; } =20 case XEN_DOMCTL_memory_mapping: @@ -423,17 +423,17 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe if ( mfn_end < mfn || /* Wrap? */ ((mfn | mfn_end) >> (paddr_bits - PAGE_SHIFT)) || (gfn + nr_mfns - 1) < gfn ) /* Wrap? */ - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; =20 ret =3D xsm_iomem_mapping(XSM_DM_PRIV, d, mfn, mfn_end, add); if ( ret || !paging_mode_translate(d) ) - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; =20 #ifndef CONFIG_X86 /* XXX ARM!? */ ret =3D -E2BIG; /* Must break hypercall up as this could take a while. */ if ( nr_mfns > 64 ) - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; #endif =20 iocaps_double_lock(d, false); @@ -468,7 +468,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe } =20 iocaps_double_unlock(d, false); - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; } =20 case XEN_DOMCTL_set_target: @@ -477,7 +477,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe =20 ret =3D -ESRCH; if ( !e ) - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; =20 if ( d =3D=3D e ) ret =3D -EINVAL; @@ -492,7 +492,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe =20 if ( ret ) put_domain(e); - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; } =20 case XEN_DOMCTL_vm_event_op: @@ -502,12 +502,12 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe ret =3D vm_event_domctl(d, &op->u.vm_event_op); if ( !ret ) copyback =3D true; - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; } if ( !d ) { ret =3D -ESRCH; - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; } /* Other sub-ops handled further down. */ break; @@ -517,17 +517,15 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe op->u.shadow_op.op =3D=3D XEN_DOMCTL_SHADOW_OP_PEEK ) { ret =3D xsm_domctl(XSM_OTHER, d, op); - if ( ret ) - goto domctl_out_unlock_domonly; - - ret =3D arch_do_domctl(op, d, u_domctl); - goto domctl_out_unlock_domonly; + if ( !ret ) + ret =3D arch_do_domctl(op, d, u_domctl); + goto domctl_out_unlock_rcuonly; } break; =20 case XEN_DOMCTL_get_device_group: ret =3D iommu_do_domctl(op, d, u_domctl); - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; =20 case XEN_DOMCTL_ioport_permission: case XEN_DOMCTL_ioport_mapping: @@ -537,7 +535,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe case XEN_DOMCTL_unbind_pt_irq: case XEN_DOMCTL_getpageframeinfo3: ret =3D arch_do_domctl(op, d, u_domctl); - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; =20 default: /* Everything else handled further down. */ @@ -546,7 +544,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe =20 ret =3D xsm_domctl(XSM_OTHER, d, op); if ( ret ) - goto domctl_out_unlock_domonly; + goto domctl_out_unlock_rcuonly; =20 if ( !domctl_lock_acquire() ) { @@ -941,7 +939,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe =20 domctl_lock_release(); =20 - domctl_out_unlock_domonly: + domctl_out_unlock_rcuonly: if ( d && !is_system_domain(d) ) rcu_unlock_domain(d); From nobody Thu Jul 23 22:28:21 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=1781532821; cv=none; d=zohomail.com; s=zohoarc; b=CemH3GZzmric4bSPc33+f7DqTkK/uCTuqecv86RgseH4sF9D4j696qDewvPtFx7Q34cguMFpvPZTeEfRVtD6LLkdRiEebFowjoCycSruC1J0+15nUg2Ipif26i5RmcEFqh5ZuRtFATMgR41ak38VvpDF5phqWkoTd38Sb7ZKrIQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781532821; 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=81E6k+ygViV9U22cpFsmJTigOesewusphjAS3Y1bdII=; b=JppXhKJ8/hoMsa+7yZLsmmm8eaWX7QucFLFQVXtMDrOvzs0sCd96/lxih7N+vV+KlxgXKwLCoFQdKRtlbi+QAstpR9jYumJ9ws4E5gcxdKs1ncp8whkvF8RKEjqqKwo9x297uZmxm+Hj+c/+eeahk7vHDFe0gJaC5+J/lJBlPTc= 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 1781532821426949.6858958892689; Mon, 15 Jun 2026 07:13:41 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1338274.1599290 (Exim 4.92) (envelope-from ) id 1wZ846-0001vb-1v; Mon, 15 Jun 2026 14:13:26 +0000 Received: by outflank-mailman (output) from mailman id 1338274.1599290; Mon, 15 Jun 2026 14:13:26 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ845-0001vU-V2; Mon, 15 Jun 2026 14:13:25 +0000 Received: by outflank-mailman (input) for mailman id 1338274; Mon, 15 Jun 2026 14:13:25 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ845-0001tz-22 for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 14:13:25 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZ844-006m5v-F8 for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 16:13:24 +0200 Received: from [10.42.69.4] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a300876-e002-0a2a0a5209dd-0a2a4504df92-30 for ; Mon, 15 Jun 2026 16:13:24 +0200 Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com) by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a300882-1dec-0a2a45040019-d155dd2be589-3 for ; Mon, 15 Jun 2026 16:13:22 +0200 Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-46066e640easo1965456f8f.1 for ; Mon, 15 Jun 2026 07:13: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 ffacd0b85a97d-4606f26f726sm32610829f8f.15.2026.06.15.07.13.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Jun 2026 07:13: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: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=1781532802; x=1782137602; darn=lists.xenproject.org; h=content-transfer-encoding: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; bh=81E6k+ygViV9U22cpFsmJTigOesewusphjAS3Y1bdII=; b=Cc3dRRzcXvIAJpXIK3teMhqPV0/n6jMSWdZBP744K/JeOWMBAGUVRzZnFtzC+7SFm/ y2nxjkFSzJmQ11rcZNMbH64VjenjqF6HZYGyqQxmftzQGeawPkUX6IiB0VTWSDF12VvV hJmJUPxwGmOjrlrTbQgtLfqc7I4DQVwIzEGwnvVGD0KT/oNLTX2g9u0VPWo6anbo+SMC vqUwlbMbktN+z9aLqwspMiaPrz+A4t9pYvVabwQh8IuO3rGcJNGxYiJNznf0xwvNDj+O enzK4z2BLwmzMzMNHVSMvlCrHa8NMDQN9nH1dSSQIpdSm+qkmQb29LheL2+2gk9LqbsC nQpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781532802; x=1782137602; h=content-transfer-encoding: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; bh=81E6k+ygViV9U22cpFsmJTigOesewusphjAS3Y1bdII=; b=d+JwSVMP+UqRDcDgLBLU3blxJ1lKz0r2K2dEE0o99UCqEqWj8taFO8AF9nVdcbxlYi y36810Kx+ra39MxVedFlv+XLKkXBS/3VNVnw0lI8NDa3+Dj7HLMUMKHffs/+mb7u+bZz nuNEp+9olE0816Skx5syEsf6NWCshdjcpWUU8/7PghkeKFa/rWawvylSI3IHpntgWOyJ IdqU2LMUiMBu+5QTGoefRtdZVmFjXg7o8mGF6XgNdwdPvx2cLcoEiiKbfE/kVRJqL/Zc EOyI+qAhs5AikeY+MtE5l4XBlFH9BGLe3zKwk64v1t1Odg/bsFeIwuVFRmRI9uUU89/S u3qQ== X-Gm-Message-State: AOJu0Yx6PHCXcaiv7hJrMlIisBzr17S+yZNouRf1+yLAt6fdQGB1w8oi Ro7W/a85WwaNJ1JFES/Pn/OgjZBGiT4yCwGwzSzE4aWqyv3p87LYFaKyEwh1wTY2/FtbjsYT0rG SwQM= X-Gm-Gg: Acq92OFMCLLpmDwrr3r3/wxNDP9GK9+gSbU3SvQgCSDwSD5FTzP85a0XWg35VwM4uu0 rcx5s5SeRbHTPq3d+FLyNiXkBObghD25iaSmKCpMVWVqt/h+Chpu82pXjPZ2ktH7ZhdDY3eQ5dD Jfjn6KU00udEBje5hK0JzZXTCZSjCdGZyhPvh1Wv8o3PKO8rp8+LKUwKBTRhpE/sPcbWi+mPG0L 4flz3w62uwKYEAurFwgXRx4k1MBgE+4MqGKwN1dlZkTR8KkrztMa3Nu0dFl4Gbq8rS5wxvZpZsC gE7/fH/jb/IxFxjRFnlvC0utbSw+MNbdy8nBV0xAcZrwPWhQA2lKYGm/NF3XGe0R8BPCvanku8l +ERTHpFuImHZ+bnvu0o9WTD0mCT4j0xj1TvRFKpRPpYVCgGXNk7VqHw8E3SeLLdTOmFw0RpFkxH o7H2xtS9dzctJg3IUSRD7FMrcEm7tfpZO/ZonJ9q/dNrVeTq7oNsPU36h5c8DSMq0IkWAqGlJXI vIl3FU4j3hZZdU= X-Received: by 2002:a05:6000:1acb:b0:455:fbb:28bb with SMTP id ffacd0b85a97d-4606dbd7797mr19395256f8f.35.1781532802026; Mon, 15 Jun 2026 07:13:22 -0700 (PDT) Message-ID: Date: Mon, 15 Jun 2026 16:13:21 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH for-4.22? 4/9] domctl: error code adjustment for unpriv callers From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Oleksii Kurochko References: 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: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-ebf023/1781532802-2B96A3FF-C8C9C551/0/0 X-purgate-type: clean X-purgate-size: 912 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781532822374158500 Unprivileged callers better wouldn't be in the position of figuring out domain existence from error codes. Adjust the respective path sitting ahead of XSM checks to produce -EPERM in such cases, just like the subsequent XSM check would yield. Suggested-by: Andrew Cooper Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 --- With more lockless cases likely to appear down the road, we may want to centralize determining which error code to use, latching the result into a local variable. --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -356,7 +356,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe default: d =3D rcu_lock_domain_by_id(op->domain); if ( !d ) - return -ESRCH; + return is_control_domain(current->domain) ? -ESRCH : -EPERM; break; } =20 From nobody Thu Jul 23 22:28:21 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=1781532859; cv=none; d=zohomail.com; s=zohoarc; b=cjIMX5x+FdWxYZ8lR92hJb9zSeD2bW7/KrVuXJOiIswHxy/RE6BbRYMIB2L161ZoasC6NQsG2dDS5rbG30WetqlWEGRmVbEGF2ErTF9UsbiviochB2eEyxF5CjZSSjbKjl2eGeBJa79XHAlMCLdUwZUUGngiwPB5jxjoLJCRlaY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781532859; 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=zMGq+ldkZYUEV1vp7v9zJ2c75lUX/WxhphkfBdJ74bA=; b=Zdqu9U5I71TfP4oQd+l8s6hNmcN91co4ospvE7f5GSaY2OtfBnGE7On1GlmqHcN8YD9AZO2YeU5YX2TlKR638BVCSagFRIHxM+dHk+PfBK9PpInN+0fTN0+43iCz+/nL+n3CinotR43Knz+ID0IuuwF1gefluK+0D/13qoZ3/VA= 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 1781532859646705.333857302752; Mon, 15 Jun 2026 07:14:19 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1338282.1599299 (Exim 4.92) (envelope-from ) id 1wZ84Z-0002V6-9M; Mon, 15 Jun 2026 14:13:55 +0000 Received: by outflank-mailman (output) from mailman id 1338282.1599299; Mon, 15 Jun 2026 14:13:55 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ84Z-0002Ux-6M; Mon, 15 Jun 2026 14:13:55 +0000 Received: by outflank-mailman (input) for mailman id 1338282; Mon, 15 Jun 2026 14:13:54 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ84Y-0002UK-0Q for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 14:13:54 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZ84W-006mCl-Tu for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 16:13:52 +0200 Received: from [10.42.69.12] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a30089a-e002-0a2a0a5209dd-0a2a450c9d2c-16 for ; Mon, 15 Jun 2026 16:13:52 +0200 Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com) by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a3008a0-62f1-0a2a450c0019-d1558035dc20-3 for ; Mon, 15 Jun 2026 16:13:52 +0200 Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-4905529b933so34284455e9.0 for ; Mon, 15 Jun 2026 07:13:52 -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-4922033156csm242890575e9.7.2026.06.15.07.13.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Jun 2026 07:13:51 -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: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=1781532832; x=1782137632; darn=lists.xenproject.org; h=content-transfer-encoding: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; bh=zMGq+ldkZYUEV1vp7v9zJ2c75lUX/WxhphkfBdJ74bA=; b=eLslGjymOfRi7dYoMnv0R4c37z0in3BWdsV9f5nbADwcMMPx1xZWxXj/Rnp9NbcpGj s0DpYO1XDOQuvNGSRyKeYUWs3dxRKpSwniCgC5D+itO3Z37LUnSpGNC+/jowv7U5bkWy iCGWInD8SFHWVzgHmUCTT4QPguxKJbOo4FpeLmBDecKPrkGmt9VKJHidp6tB7SEM+Zrs SwbjLqXBtV79CVY6AB1WQ2vUEsmi7yOmy28iGPyHZl3GlkoXKIa/XJHaHVHP0rpRUQgF td0YNaygx1ZeM7DsoE2ov3Am4C/5gPc9p9xG9L9b2snDypfwmcQvrXpphpOVFf6gOFHl RHGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781532832; x=1782137632; h=content-transfer-encoding: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; bh=zMGq+ldkZYUEV1vp7v9zJ2c75lUX/WxhphkfBdJ74bA=; b=S/OJN/ivVyk6GiF2q1JtqWzKf3UASXTCbG3jjJ6/lThvsQv02rZaqUV9PHdERC6vxp PWhJoGgA+gkAUPctb7W7e7ipleGRYYlM4QqaLQWBl+XpB8l1JJIT7KK07B34yLxVDJJL GV7dWFiLK1N1//bMwQVMBzenUne2RwV00f98GNnnpXpTK9qVEqucH4VuW6qYqTU0P/xe 98BoLniKFBx9P+/o+OyAItdq6H5NGuAAkpr4GUXGTpfanHy6KxMBjRCPa1ghHHF9Ng9X +s3qyXC4EhxinLoN4hrZC1kW0FICBFDNPPi6+xaxb7OQagsqRGhiZ6z/ZSujwgRACVXy mx7A== X-Gm-Message-State: AOJu0YyMYwzpU+snsLnjyZq5GNKcEtv/TAS4+U9O7X7/wb1Md9VUliq4 PQDqbASTfUCZnloM3pf9zSJq7tgHktf140FAM6se6RIrs0SVpvE8l6u3YwAuAJKDHcKt3aR4QaE h07M= X-Gm-Gg: Acq92OE6ywmKlvybqEDqBE0a9ZpfqzJMsApXQxfqwFrKPHcibvYS+XDdPvaZW/gnUwo 7OXOljGKxzPzXh4I9Jj98KYTA7yCbSogVbJ7xx0Di2TtErh1CuO32HhD0jFHwS3nWO0gdBAdbLb kC85/EEoCdLPS1gQ1B4GL76gIt6OrPXHNzNphyeVvIjlM/6KFW5Zw+B5fuxP07Juyx5dAwjO/DM DhQeD/5wjX1zQKFIF1Ui48F3S391Vr03bo/WxBxA961xsPcbJgI2LEF7Eqb6HlYBQ0k1vqdp4/o 3OjT1veEDys+lseujRxFpcpy79JCPuPdyexGvhAAfRoIteC2+E4cUdWXPT7QTgzUpDlEBt5X9dU zMseDSkKv1lJC8bgNPPsKyJJE9MXoG9gTb/ZbXtis/N0R3Ap4PiS79ptYlRIxTalBLFr1yYAKb3 IeEaQtFTjoIlTm5Z7DWDrfr90vE6zYzdQ6A8H0VVIU3aFH7ugrCSVcoJMBUTfrGrJ3V/mbKFLj7 TTmNUHJoKBtddKssV/jZM7thA== X-Received: by 2002:a05:600c:83c8:b0:492:1e36:d16e with SMTP id 5b1f17b1804b1-4921e36d1a9mr147508545e9.36.1781532832246; Mon, 15 Jun 2026 07:13:52 -0700 (PDT) Message-ID: <0986c7e3-7a1f-4e1e-b132-78593c8b63e1@suse.com> Date: Mon, 15 Jun 2026 16:13:51 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH for-4.22? 5/9] domctl/XSM: avoid XSM_OTHER with xsm_domctl() From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Oleksii Kurochko , Daniel Smith References: 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: Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-d25034/1781532832-E2D73CF5-81C86F79/0/0 X-purgate-type: clean X-purgate-size: 2222 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781532860700158500 Content-Type: text/plain; charset="utf-8" Make explicit at the call sites what (default) permission is required. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -331,7 +331,7 @@ long arch_do_domctl( /* Games to allow this code block to handle a compat guest. */ void __user *guest_handle =3D domctl->u.getpageframeinfo3.array.p; =20 - ret =3D xsm_domctl(XSM_OTHER, d, domctl); + ret =3D xsm_domctl(XSM_PRIV, d, domctl); if ( ret ) break; =20 --- a/xen/arch/x86/mm/paging.c +++ b/xen/arch/x86/mm/paging.c @@ -743,7 +743,7 @@ long do_paging_domctl_cont( if ( d =3D=3D NULL ) return -ESRCH; =20 - ret =3D xsm_domctl(XSM_OTHER, d, &op); + ret =3D xsm_domctl(XSM_PRIV, d, &op); if ( !ret ) { bool lock =3D !(op.u.shadow_op.op =3D=3D XEN_DOMCTL_SHADOW_OP_CLEA= N || --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -516,7 +516,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe if ( op->u.shadow_op.op =3D=3D XEN_DOMCTL_SHADOW_OP_CLEAN || op->u.shadow_op.op =3D=3D XEN_DOMCTL_SHADOW_OP_PEEK ) { - ret =3D xsm_domctl(XSM_OTHER, d, op); + ret =3D xsm_domctl(XSM_PRIV, d, op); if ( !ret ) ret =3D arch_do_domctl(op, d, u_domctl); goto domctl_out_unlock_rcuonly; @@ -542,7 +542,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe break; } =20 - ret =3D xsm_domctl(XSM_OTHER, d, op); + ret =3D xsm_domctl(XSM_PRIV, d, op); if ( ret ) goto domctl_out_unlock_rcuonly; =20 --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -157,7 +157,7 @@ static XSM_INLINE int cf_check xsm_set_t static XSM_INLINE int cf_check xsm_domctl( XSM_DEFAULT_ARG struct domain *d, struct xen_domctl *op) { - XSM_ASSERT_ACTION(XSM_OTHER); + XSM_ASSERT_ACTION(XSM_PRIV); switch ( op->cmd ) { case XEN_DOMCTL_bind_pt_irq: @@ -176,7 +176,7 @@ static XSM_INLINE int cf_check xsm_domct return -EILSEQ; =20 default: - return xsm_default_action(XSM_PRIV, current->domain, d); + return xsm_default_action(action, current->domain, d); } } From nobody Thu Jul 23 22:28:21 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=1781532929; cv=none; d=zohomail.com; s=zohoarc; b=bPIKEGh7dJV4MRLwsnbMFIC3RUuWO9DrrT9maPFtaXKwt9l/h4b8Ym9V4zejvJAylBcNpIOpuKKgGXcSkbE9dInjtkhvTJPmVintzDyytLt4DuREHVHouD5kE8HkxjU+AFubWTOM5I9utDs+6lpm8+8gVjMyacWy5bynZYgXoKM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781532929; 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=bSU5BZAbb+7t8p1HVe3R8WCce3JTJoMBKaFkaOagLjk=; b=EIAeCXKeGEE8CIXO2JNxQo9sYdP4GFVVcCv4U8zycd8+27lJKcVIgQ+tNEPB5T9R+ZvuETfF2LUQUg70ZDnMi35sStrlujmqGOMCXDku1uSMg7aOgwvVQpPMjwbY4B0Uhfeiz9ejCPWsBeWuXHyqo5wj4QZWw+gIcsb49LiRTAU= 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 1781532929221284.9659122248472; Mon, 15 Jun 2026 07:15:29 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1338292.1599308 (Exim 4.92) (envelope-from ) id 1wZ85s-00033p-IB; Mon, 15 Jun 2026 14:15:16 +0000 Received: by outflank-mailman (output) from mailman id 1338292.1599308; Mon, 15 Jun 2026 14:15: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 1wZ85s-00033h-En; Mon, 15 Jun 2026 14:15:16 +0000 Received: by outflank-mailman (input) for mailman id 1338292; Mon, 15 Jun 2026 14:15:15 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ85r-00033Q-2y for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 14:15:15 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZ85q-00CXS4-Fr for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 16:15:14 +0200 Received: from [10.42.69.4] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a3008e7-2eae-0a2a0a5409dd-0a2a4504c4ec-38 for ; Mon, 15 Jun 2026 16:15:14 +0200 Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com) by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a3008f2-1dec-0a2a45040019-d1558034e98b-3 for ; Mon, 15 Jun 2026 16:15:14 +0200 Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-490aebf33e9so15384345e9.3 for ; Mon, 15 Jun 2026 07:15: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-49220304180sm252635745e9.4.2026.06.15.07.15.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Jun 2026 07:15:12 -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: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=1781532914; x=1782137714; darn=lists.xenproject.org; h=content-transfer-encoding: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; bh=bSU5BZAbb+7t8p1HVe3R8WCce3JTJoMBKaFkaOagLjk=; b=JnY8f0lC2WWkF+sdfo2yRMwBZPERnouwUyt7jrCmY0mWRtxxiBk1CdAYyKxgJUJyU6 /smZyhcCGxr5M2KCEmX/Ky9JPngqzcmDdBVkSavFdF+iC1L1dKGhTlzg3U7lTSE+kn+4 a2l96FFb/EmNtkDiEZmLb+kMajNQeeYHN33aiNUdULOONY5AaxpScuEZ9cKvPbXZgKw/ 9gVc2HoQnY9OrWmwUApLdQTUBtoZoPtJGSNxK5pguNc6u1ZAD34BRb/r5zM/YlpzwsmN pWW6Andw5viRB3i0Jtyw5VIMu7f7L+nmH9KYKf/Rjtgtwo3tAj9wac4aBeCh3xmL0Yjv nc8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781532914; x=1782137714; h=content-transfer-encoding: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; bh=bSU5BZAbb+7t8p1HVe3R8WCce3JTJoMBKaFkaOagLjk=; b=s6dNNr0Vmx9Vlr3rkveDAFE6ZtQhh77a8/7L3r7phGlJBybOlIyfb7jG1+5iyb2E/s MZoMFgbTDtQlwWPJRJcc/ReXPjxyinD2fEPI8STK/b8M0cm9p77iP4bnU9628KVJnW9M gVmR/NXRvXJd730voywa2g8bpvUWRlkwqwuUo+j2DSbt5rJQZxgcDDg7afaEUjR57ZYV qxukJo+aRxVoJN8a9lg2q02pgmNgsShjdrvsVgjiWLCsNhi4w5eiydDvj4FsznxDhjis Mj43m8i0WU82MXnZSbWBugHvkmTwZJY48DNbplwc+rZePrj5fam8OjdcINOGtUd6LDtb uePg== X-Gm-Message-State: AOJu0YwHZiRbZ50a/0n7SAYGnj1+BUoTkuzL3FCqUhqlrX4bvMGMFHNv FBO3JV7/pKsJ7LthHnxWsYK/EKDb561ZPeQx3bdlddjQu3/8subcqcNIUbnl9Q/vpwXSjfjfgKX y+Qs= X-Gm-Gg: Acq92OFES1Jfa4yUwIL8KK5tIE/wG3epTBAskrQ6WJLraxEAVmH0/Dq62cimpEqeoNd sZqmF2i0NlUhT6ztr4ya94dvwNxDx3cJUOVtMcNm8PvtpH738Ao5HrrcjvRWDXsHWPpUq242oqq VBKRHuJZ+gFfcRr6dA0IFHaUXq7rCdhZbwS154Z63tcjzXbBeRdkPXqLwY7BsN0Oqk6C3tce69e lBeSTFMuIXAkZMvLMDJnbWo0ySfBg8S9iKolsTlMcS9x3/npPp0yLDqyZvNpkTYputip3HWoYpA 9fFCWeSt/lvijH+b1NamyH/AUroLsUmOuIiBtjg0i4ELrlayEkLGbNY4p73jFGQeFTn/LdxjpK+ R2qUhRuzWr/86vy9Q0HX0yrPmBa83O6zDtA6Xt4ult2OL2oR283pa4fCTspOFqIHGJdwbC3Y8u0 X22BVrDr4yvkwim/5p3SSf70ixXQebviBpVJ/tLthz9HVAEVPc2M7m/g9mQh138ajpa06w8kDs+ MuKakEYnSu+xbk= X-Received: by 2002:a05:600c:46c4:b0:490:bad7:3634 with SMTP id 5b1f17b1804b1-490ec4fb506mr190915005e9.19.1781532912851; Mon, 15 Jun 2026 07:15:12 -0700 (PDT) Message-ID: <0e38793c-e201-4cbe-8cee-6cd26996173a@suse.com> Date: Mon, 15 Jun 2026 16:15:12 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH for-4.22? 6/9] domctl: handle XEN_DOMCTL_getvcpuinfo without acquiring domctl lock From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Oleksii Kurochko References: 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: Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-ebf023/1781532914-4396A3FF-8B3DD307/0/0 X-purgate-type: clean X-purgate-size: 2222 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781532929579158500 Content-Type: text/plain; charset="utf-8" Like for XEN_DOMCTL_getdomaininfo there's no need to hold the domctl lock for XEN_DOMCTL_getvcpuinfo. While moving the code also switch to using domain_vcpu(). Signed-off-by: Jan Beulich Tentatively-acked-by: Andrew Cooper Acked-by: Roger Pau Monn=C3=A9 --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -546,6 +546,33 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe if ( ret ) goto domctl_out_unlock_rcuonly; =20 + switch ( op->cmd ) + { + case XEN_DOMCTL_getvcpuinfo: + { + const struct vcpu *v; + + if ( (v =3D domain_vcpu(d, op->u.getvcpuinfo.vcpu)) =3D=3D NULL ) + { + ret =3D -ENOENT; + goto domctl_out_unlock_rcuonly; + } + + op->u.getvcpuinfo.online =3D !(v->pause_flags & VPF_down); + op->u.getvcpuinfo.blocked =3D !!(v->pause_flags & VPF_blocked); + op->u.getvcpuinfo.running =3D v->is_running; + op->u.getvcpuinfo.cpu_time =3D vcpu_runstate_get_running(v); + op->u.getvcpuinfo.cpu =3D v->processor; + + copyback =3D true; + goto domctl_out_unlock_rcuonly; + } + + default: + /* Everything else handled further up or further down. */ + break; + } + if ( !domctl_lock_acquire() ) { if ( d && d !=3D dom_io ) @@ -792,28 +819,6 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe break; } =20 - case XEN_DOMCTL_getvcpuinfo: - { - const struct vcpu *v; - - ret =3D -EINVAL; - if ( op->u.getvcpuinfo.vcpu >=3D d->max_vcpus ) - break; - - ret =3D -ESRCH; - if ( (v =3D d->vcpu[op->u.getvcpuinfo.vcpu]) =3D=3D NULL ) - break; - - op->u.getvcpuinfo.online =3D !(v->pause_flags & VPF_down); - op->u.getvcpuinfo.blocked =3D !!(v->pause_flags & VPF_blocked); - op->u.getvcpuinfo.running =3D v->is_running; - op->u.getvcpuinfo.cpu_time =3D vcpu_runstate_get_running(v); - op->u.getvcpuinfo.cpu =3D v->processor; - ret =3D 0; - copyback =3D 1; - break; - } - case XEN_DOMCTL_max_mem: { uint64_t new_max =3D op->u.max_mem.max_memkb >> (PAGE_SHIFT - 10); From nobody Thu Jul 23 22:28:21 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=1781532958; cv=none; d=zohomail.com; s=zohoarc; b=lHXGvtFNSJEte4LhDi0auKikPe9OGlqIYgylTZ2bkpdWILE4aljWPK/Ld4ScfDLC+t+TX3Ef1A49kkEZRv/6sOR65R8SaXy90bYs+b4MWy+9YZX9VH98SJpcVgR50IzxhP9yOhnqOuHtOQgagp4mg8+BofgF/KnqZ+MZwcCHG+U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781532958; 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=goUyIL9edhfTVAZj5FpuH2+naL6b2BcBcPbCx94rhcM=; b=fTZcvTnQMiULumRmMRaJryFtaL2ubzNJjE8mb98MOeF/LHsNcAU3nmlcZvQhu4JNYu31ixlNbqlo/c4dyEeUDbH8vcflFQpr34Gnz7BveJgGYGsMxeGab+pBKuabL8UjNHCgZZKIAJLw7fBVvwGquvmLn98a1iuzOg6maenq6fw= 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 1781532958648678.2738193454826; Mon, 15 Jun 2026 07:15:58 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1338297.1599317 (Exim 4.92) (envelope-from ) id 1wZ86G-0003UX-OF; Mon, 15 Jun 2026 14:15:40 +0000 Received: by outflank-mailman (output) from mailman id 1338297.1599317; Mon, 15 Jun 2026 14:15:40 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ86G-0003UQ-LW; Mon, 15 Jun 2026 14:15:40 +0000 Received: by outflank-mailman (input) for mailman id 1338297; Mon, 15 Jun 2026 14:15:39 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ86F-0003U7-A5 for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 14:15:39 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZ86E-00Coac-Mx for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 16:15:38 +0200 Received: from [10.42.69.3] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a3008fd-bab6-0a2a0a5309dd-0a2a4503b73e-32 for ; Mon, 15 Jun 2026 16:15:38 +0200 Received: from [209.85.221.46] (helo=mail-wr1-f46.google.com) by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a30090a-672d-0a2a45030019-d155dd2eed1e-3 for ; Mon, 15 Jun 2026 16:15:38 +0200 Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-45eeba68948so2537147f8f.1 for ; Mon, 15 Jun 2026 07:15:38 -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-4606f20e77asm36923788f8f.0.2026.06.15.07.15.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Jun 2026 07:15: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: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=1781532938; x=1782137738; darn=lists.xenproject.org; h=content-transfer-encoding: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; bh=goUyIL9edhfTVAZj5FpuH2+naL6b2BcBcPbCx94rhcM=; b=eG+1VtFAl1g7fc875nbv0QbZ6BG03iRcwPJYgseKiWL1HITrdcrbQmw1AQE3VlCfIh IVWaaOgkfXhEz4T1NNzrgPK6Y1PECpCEY5SmLRXRe1R1XNrOCoCS4wWbZSkIWQ+fMf5d Sfl3iHRzwt1VPqHTHzjkbYMUdty1klS7Cp84edYoZAan+1CnanuynG42LibaUf1UCl6z IF/01NBbU1JM/BSatJ7FqBx2Ofu2h34omhJiC1QvfSgdruZj67Qn8/D9prEh63DcwZ29 WnzCXOXwDevPdGDF/DJvV+MrfKZa/w9RZw980F/RW7/Fu3/vxEQcztkGSKx9bwFrY2/a pmCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781532938; x=1782137738; h=content-transfer-encoding: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; bh=goUyIL9edhfTVAZj5FpuH2+naL6b2BcBcPbCx94rhcM=; b=EQFK4u+QTrK6EU7xKzKLd5kz7D3yQzjuf2vkDybw63WTXNfNZn9PjwpbhlLCZqncmU 5PbeiNaMkN2LGhbQ+7LQciCWmyuOPsPlPwmzGgNkPi4vVgM9HvahfukwTWedrhYFZ9kp 1Bq8yt2GCl2cDwa489+g1rRAZgoko2CSSJ48En9aSFs0P4t5T6Qf8CbQUp+qOU4MkMtP P2suuSDN9qMn6xwNyfjRGNbIKXCOQxHafON5ltRWXNVjUbwFgfykTGZxXb6hIAGLbq+J nEYPi4IElsSlTK8Zz/c72lxT/0yBcz6CxjqpVKYMghss/1bpl9vKHHs+xCzakCvjlFoO 38ww== X-Gm-Message-State: AOJu0YziL0d40GjzYnmb56w80E8lXjNIOoiqWMoS2C0HKysSgl9XkPFc bhFtEv0CwtjO2mwyjKp7YrgIY/bvI2xbLGYMHzNKRXTu3r5oPZJcI5MXzugMJMZZRykO0bL3GyW uDL4= X-Gm-Gg: Acq92OFw4/tlDNhqEJbncVIk/Pq79BykxQV306FhPq4kJUR7n9FnXIsZg5dotaF/09J LV2XxTCVmSdgRHi2Mw1VefxG44pR/tci2BFsSMbaZYk4FGxy6shN3s9XcRHdGpHM8FnIQdoPeMZ cqYwuqZhISAIyg/+bMTSElnuAbJJT4ytNh5Fw6CyoNoTOEalUjNuJwJ42FVxF2VwwgpICqVyFhS E0ejmN7zLdlBKNYb3iroDMstQ3hQ/vtZlQE6K2y1TPoHitMjLgjuMDFv7lvVQvWGOsAigZ6rqUn 5pGSrTch/+x2Tr8xHM1oc6dt5itPnQqusCtuj74X6zbYCFuiw8gaJhaIfnK9qRnUrXvfU4B2FUN c77FTqWnYRSsMmSmB7p7epqQGPGWFJOHRHc3fSQ5X6SV31r4xQVK6u18LPdmD2TSZidRf6kn08X etDoRyeuC8sFvz0uh6CMj8Wrx7/Dyy08UCKYpmhRArSJUbkXYx+UQLhN5x4fqvoDNDg79DmoTZN ax8XuHR6nhztnoxTeFZtgzWwg== X-Received: by 2002:adf:e014:0:20b0:45e:73b3:8118 with SMTP id ffacd0b85a97d-4606dbba24amr14282315f8f.29.1781532936652; Mon, 15 Jun 2026 07:15:36 -0700 (PDT) Message-ID: <5f49f890-426e-4076-8326-c2fbff433a35@suse.com> Date: Mon, 15 Jun 2026 16:15:36 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH for-4.22? 7/9] domctl: restrict permission check for XEN_DOMCTL_memory_mapping's remove form From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Oleksii Kurochko References: 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: Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-33051d/1781532938-3A965938-7DA2D80D/0/0 X-purgate-type: clean X-purgate-size: 1010 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781532959834158500 Content-Type: text/plain; charset="utf-8" Like is already done for I/O ports on x86 and for IRQ unbinding, check only the requesting domain's permissions (for it to not interfere with MMIO backed by another stubdom DM), but not the target domain's: Removal should be okay even (perhaps: especially) when permissions were already revoked. Signed-off-by: Jan Beulich --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -436,11 +436,15 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe goto domctl_out_unlock_rcuonly; #endif =20 + /* + * NB: The double lock isn't really needed when !add, but is used = anyway + * to keep things simple. + */ iocaps_double_lock(d, false); =20 ret =3D -EPERM; if ( !iomem_access_permitted(current->domain, mfn, mfn_end) || - !iomem_access_permitted(d, mfn, mfn_end) ) + (add && !iomem_access_permitted(d, mfn, mfn_end)) ) /* Nothing. */; else if ( add ) { From nobody Thu Jul 23 22:28:21 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=1781532989; cv=none; d=zohomail.com; s=zohoarc; b=H0R5jG0Htw5o1928Ibs8Jg1n25fBLmlv4OGUjiB1s6xXkajSKSdH5Wsx4SlMYBB5WjGhi+Un8QObZn/vmVy8bEOZQuACA8mMWTQ9K+IrQT7k71F6IzLIiwNTw2X/vxZK3j7EfhscUCnLGDzTdp+5W3+Tbtyd7lwy2WdAuju8v74= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781532989; 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=7ddBo5SyZdCvv9hPrYmhMposadC8eHObQUBDrwKreYA=; b=ZeSn60dat0/ajZXM1svH6G9UCF+JLQu7yvHXZJb8f7KhUsU4VWCB5/dU3bSLhXQqqCs0J0IGkcikyRxsMDB9KuHWC0hzG44VWFXPAHktVYrFVWk66Fd9BrJjA8JKVK05pfZrwbi27/19G9U3/whZV1Ikot+d2gUYXLrepl1g6I8= 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 1781532989066168.7160081307262; Mon, 15 Jun 2026 07:16:29 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1338305.1599325 (Exim 4.92) (envelope-from ) id 1wZ86o-00044c-48; Mon, 15 Jun 2026 14:16:14 +0000 Received: by outflank-mailman (output) from mailman id 1338305.1599325; Mon, 15 Jun 2026 14:16:14 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ86o-00044V-1E; Mon, 15 Jun 2026 14:16:14 +0000 Received: by outflank-mailman (input) for mailman id 1338305; Mon, 15 Jun 2026 14:16:12 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ86m-00043p-Lx for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 14:16:12 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZ86m-000FX8-2b for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 16:16:12 +0200 Received: from [10.42.69.9] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a300922-e002-0a2a0a5209dd-0a2a45099f46-46 for ; Mon, 15 Jun 2026 16:16:12 +0200 Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com) by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a30092b-2497-0a2a45090019-d155802cc1b3-3 for ; Mon, 15 Jun 2026 16:16:12 +0200 Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-49222b6e871so20334905e9.3 for ; Mon, 15 Jun 2026 07:16:11 -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-4606f2ce361sm33888958f8f.31.2026.06.15.07.16.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Jun 2026 07:16:10 -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: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=1781532971; x=1782137771; darn=lists.xenproject.org; h=content-transfer-encoding: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; bh=7ddBo5SyZdCvv9hPrYmhMposadC8eHObQUBDrwKreYA=; b=acH5xgoK/aK4q2zlqFYz9yM8S/lAAWhT3L0mOy75RFL2y4iVX7w8Vwu+Z2uG5qD/RA TJaRT1KiLmq19ekXEH5wuIWIyjujIC+VVDedV+H1O7rIs4QsMw4qrLE5Jmhciw0GBWMF FGieGv9Zj9fCB+XaiNF08iYJjFhdB2mhWO9oKIGOo9V1nn3rpJLvyBU1e0Tr75m6e948 rMSOd1VtomTRXA3HkIyVxMXp/Ib27lO3Wu6ocbZydf2XKhPDCqh0kAz6/PKtg9iZUIUK bpeduzOrJCpNTfBL28HtNfBeI/gaJ0IsJxSLjcostZuakN8b+P6HNDHlY9510rlsZA8q DF+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781532971; x=1782137771; h=content-transfer-encoding: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; bh=7ddBo5SyZdCvv9hPrYmhMposadC8eHObQUBDrwKreYA=; b=lwK5XDrpl7FadgJirUv+FF9ZZzoP/hZjVuxqFG9RAGd5v9/nr8rW1kAm/GHCo6JaEY Q3rGW88Fcmbw3pM5d3IcEe6qsZPDpiAoCK9Bg1xfS7aoLPNEmV7yVE1k8vxuShBFptXw eMLODFUs496XwGGvprHEEY762I48f1jmsvLG1drHHZa44oZbKut8DkZ5w22lMZB7DT38 raK2JBsnXV/hh+SC4axW3YauPSviagIa1TeABKmZpWy+WyWb92xm8KlGJmP/rQjWK7oZ zoCbgRMaTON5EcwMn3AU5WO+xP6Gm8AomP1Xfzy5SQl+B/RDXTL1LhsL8EkRWPwQYL0C nNoQ== X-Gm-Message-State: AOJu0YwYz8ZGSqlts2eBBaq/kNQdmdZpBsHmCcHehTjAWF/KACoXgVXI K+ArL65oGF5WBN6cyf5ebOtPYsTcHI2S0cio4m0f+fYd+EqMEscO8rXSE53urOwkMPr+eyP0BLY Dl6U= X-Gm-Gg: Acq92OFmH3fp6quCg5ubWHS94SZX06R7JGc8ggqyPEdFUGvoJZTypfYqRXitBtxynoA mUe/ELgla4e2+TFS81H9Hf8uX2zX4A4RRgLCiymG0Ch7oSKqbLXpveAm6kfa9wtBAz0/to/u2ig 6CSqOIutSqMYsbL9kSkthSAZ70xhTkUc0jLwePy/5rCslGgngQXRiz2lizT8Y0NrDH2R7H04qvQ 0AR0zAjcrPBjxZ4jDmlqltvnKxhejI6MFO0yQrwFOwTgznG1tk+/w0GB3AN+PFSqrd+ezGUS5c4 HukWonWOi/HfXkvO9cOmbObDXxVqgB3DD5bILxCIbDUzfSmqqCAuK1b6QFQBQysg//lPQjAE1GZ zdofaqg5joQpiOCgvrA0j3f3RZqGTSVsjUs7xwJFvj9z3xzj4IlBNqPHSzAfiQ4r7hdnwVEuXNq gzzvuX89uGsKJtJCPycpfl11LYORTSIwx852jZF44b3EnSw10AMERAbZPCQeRDv1zIoKVonyLqM UPNVIWDGAC3HI0= X-Received: by 2002:a05:600c:34c8:b0:492:1e36:8c4b with SMTP id 5b1f17b1804b1-4921e368c91mr147026915e9.36.1781532971368; Mon, 15 Jun 2026 07:16:11 -0700 (PDT) Message-ID: Date: Mon, 15 Jun 2026 16:16:11 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH for-4.22? 8/9] x86/domctl: don't imply I/O port permissions from I/O port mapping From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Oleksii Kurochko References: 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: Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-bad1c0/1781532972-37979A53-6C973468/0/0 X-purgate-type: clean X-purgate-size: 2688 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781532990083158500 Content-Type: text/plain; charset="utf-8" Rather than granting permissions when mapping (an operation that DM-s are allowed to carry out, while they can't invoke ioport-permission), check whether permissions actually were granted when adding a mapping. This then also allows relaxing the necessary locking. Fixes: 192c4dabc344 ("domctl and p2m changes for PCI passthru") Signed-off-by: Jan Beulich --- libxl has libxl__grant_vga_iomem_permission(), but I can't spot any I/O port equivalent (nor a revoke counterpart, btw). Everywhere else MMIO and I/O ports look to be treated equally. Qemu uses both xc_domain_{iomem_permission,memory_mapping}() in igd_write_opregion(), but only xc_domain_{memory,ioport}_mapping() in xen_pt_region_update() and xen_pt_{,un}register_vga_regions(). Is the IGD region special in any way? Clearly this can't work from a stubdom. --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -714,9 +714,14 @@ long arch_do_domctl( break; =20 hvm =3D &d->arch.hvm; - iocaps_double_lock(d, true); + /* + * NB: The double lock isn't really needed when !add, but is used = anyway + * to keep things simple. + */ + iocaps_double_lock(d, false); =20 - if ( !ioports_access_permitted(currd, fmp, fmp + np - 1) ) + if ( !ioports_access_permitted(currd, fmp, fmp + np - 1) || + (add && !ioports_access_permitted(d, fmp, fmp + np - 1)) ) ret =3D -EPERM; else if ( add ) { @@ -747,15 +752,6 @@ long arch_do_domctl( list_add_tail(&g2m_ioport->list, &hvm->g2m_ioport_list); } write_unlock(&hvm->g2m_ioport_lock); - if ( !ret ) - ret =3D ioports_permit_access(d, fmp, fmp + np - 1); - if ( ret && !found && g2m_ioport ) - { - write_lock(&hvm->g2m_ioport_lock); - list_del(&g2m_ioport->list); - write_unlock(&hvm->g2m_ioport_lock); - xfree(g2m_ioport); - } } else { @@ -772,15 +768,9 @@ long arch_do_domctl( break; } write_unlock(&hvm->g2m_ioport_lock); - - ret =3D ioports_deny_access(d, fmp, fmp + np - 1); - if ( ret && is_hardware_domain(currd) ) - printk(XENLOG_ERR - "ioport_map: error %ld denying dom%d access to [%x,= %x]\n", - ret, d->domain_id, fmp, fmp + np - 1); } =20 - iocaps_double_unlock(d, true); + iocaps_double_unlock(d, false); break; } From nobody Thu Jul 23 22:28:21 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=1781533023; cv=none; d=zohomail.com; s=zohoarc; b=Uir9cwLkQow8dEqUUeCCc3Ndz9U4v8DjdCcRbra8TQ+vg6PHgSue0a9kKusjegdPqfg0fkHG4oI4pEzoUrbnoTZpkJV34pDv8DZ7oRG//JNaF3Wohf7SsECVfb8GD2QkehzbsAcl8ZFJlAQ/8mhhR6X08Fhzl1H/qyPJZUoDc1k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781533023; 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=rXHv9yKRduSEsLK27njfQAEzXBihUPnOeQ8o3z6l2bw=; b=EOOZyRpL3OVZoxa5/I9lOIkc7gZJyt7Lps3T+x9B8PZkZ5aCRemZjkFx+UW5qCf8RTt+r56mBYCOIaoClucgAXYwMChMb/OY3EHMSbQD4f6mLuWIf7dgf8rO+ZgcwYlvKeSjcbFbqGNlyGkW6KxcVYtZTjI8nJAtz0iXMxYj/6Q= 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 1781533023047683.9010990024872; Mon, 15 Jun 2026 07:17:03 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1338312.1599335 (Exim 4.92) (envelope-from ) id 1wZ87I-0004ah-BZ; Mon, 15 Jun 2026 14:16:44 +0000 Received: by outflank-mailman (output) from mailman id 1338312.1599335; Mon, 15 Jun 2026 14:16:44 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ87I-0004aX-8a; Mon, 15 Jun 2026 14:16:44 +0000 Received: by outflank-mailman (input) for mailman id 1338312; Mon, 15 Jun 2026 14:16:43 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZ87H-0004aJ-Eb for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 14:16:43 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZ87G-00Cp0v-RW for xen-devel@lists.xenproject.org; Mon, 15 Jun 2026 16:16:42 +0200 Received: from [10.42.69.6] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a300937-bab6-0a2a0a5309dd-0a2a4506863c-44 for ; Mon, 15 Jun 2026 16:16:42 +0200 Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com) by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a30094a-7371-0a2a45060019-d1558033c923-3 for ; Mon, 15 Jun 2026 16:16:42 +0200 Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-490ac10e337so23624925e9.3 for ; Mon, 15 Jun 2026 07:16:42 -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-492202edec6sm283417445e9.3.2026.06.15.07.16.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Jun 2026 07:16:41 -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: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=1781533002; x=1782137802; darn=lists.xenproject.org; h=content-transfer-encoding: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; bh=rXHv9yKRduSEsLK27njfQAEzXBihUPnOeQ8o3z6l2bw=; b=Pm60VdkLRrwhVQQVW5OWi3DeWCWKe6AAph688PJYiwUVZeqIcFgVHptXu2vgUK8S9g Ycv+DHwDfVs0utrrcuIxXy1xZDsZqMBXkaUR1LpRdEcpLsYNNAK8TShMmeuIGRr3UKWJ qG1+TzCVKHX3dHoNZzgxUqi7r60+xgcqczmW60sSPsdVh+rCJPH064fjXwBajyA111Fs Dvhv6LBCQt+l+gG7KPljNy2kUE4Ag1X2ElGzcG4Ysgovf+/qD3VDnZyQ5UdHneslj5KS RVXMIsc6YPKdW+fFt/Gwrcfk7tA8xqqJP8GB0G6dIez+/VPd7zEW+bH7lb3HGERf6Fzs q/fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781533002; x=1782137802; h=content-transfer-encoding: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; bh=rXHv9yKRduSEsLK27njfQAEzXBihUPnOeQ8o3z6l2bw=; b=r7K8x9GaqqsOz+I7+wHDAIEIzUoxMaODBdj7MLbIBOGw/sLO4rTohYtOMWyAxpO6v8 311STMnsvV9YD0NDzZumOV4PIunUIDh97mBHD6mrnzGILxFcjQD7qWMd/JNZQ1S69bEN Di4u13FY33MnTxv1zMLODckde5JGqzY9wYl790jXk70zkYdkdZ9MbhTePw/JOLalPdzY 0Cu3PjC/y6JN2qc7ZaWbYsSk550aiPYqZIIS3ugYy9mtsAj/OFAQDWUgaFcFI0PwwuOI CRrMWmchwF2UMSoTmlqEKf/1ADI3Cbr9YmJbmI+XLSCjaWm0FM2NFm16iMrUFl5rVJ94 xWgg== X-Gm-Message-State: AOJu0Yxy/liLDD2chR3ruAWlDb2qwW6ESVh0Y4ePzTnSdK2+kcTk1RCn Spzvkjc4cbCOFK/vwVjWE45K+BgN/wUlkD4IXLb7r4veUMXjKOARmNjzvGESnfC6lfq/NsT6DSU Uux4= X-Gm-Gg: Acq92OECMGeHM8eghvAKsfL5gh2xiquPQhtOdB/ci1wIoQCPttmqIA/BhacsoUNfxH1 CgQ94+7FGrlnMtlxupYuDdSOnq7PL9Bqj3GfwfI2xikOkj7oJC3Th2oieKfRr93Oj8ID/D/UB7p 3yYibkLnnC/kNM8sn/W2+oXdji20FL0U8K149n2+jOG4Tt4dmP2y0da1DLKlulCA00bAzsnghzJ nQp/kkobvLQcvU4OcbNuZcXiDkqlU87jRleeathvZb+lNsKfpBKBegLaEgCEdaI6hZCPY1juyfR o6lUVGa+mU6XYxqsjPUxYTW3jHTu7if7/axUVW2/iA7IpO43rMgIB6VAW9kDrnXpIrdC4l9rdWQ x7yprGTsmNMxFaaLMEQFr5Ru7Fi7PxzuR8auJmzIzKNChnARMAcUsW0t0+gf7SqW+wA+vsP+ru+ yS41Za6pzs3SuIjIKXUIb6541EWSATpFQUnvDLXtRjZRgrCCkgp0iUSVBW7p64ETCD7zlc+5NGZ ZB87XHSNRWL9nk= X-Received: by 2002:a05:600c:314a:b0:490:4b89:5362 with SMTP id 5b1f17b1804b1-492200c0416mr129045525e9.24.1781533001867; Mon, 15 Jun 2026 07:16:41 -0700 (PDT) Message-ID: Date: Mon, 15 Jun 2026 16:16:41 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH for-4.22? 9/9] x86/HVM: more checking for XEN_DOMCTL_ioport_mapping From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Oleksii Kurochko References: 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: Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-16d1c6/1781533002-86168D75-F4DB4F5E/0/0 X-purgate-type: clean X-purgate-size: 2286 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781533024307158500 Content-Type: text/plain; charset="utf-8" When adding ranges, only alter existing ones when there is an exact match. Don't accept ranges overlapping existing ones. When removing ranges, only remove a range if there's an exact match. Return an error when the range isn't found, and also don't call ioports_deny_access() in that case. Fixes: 192c4dabc344 ("domctl and p2m changes for PCI passthru") Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 --- Should "exact match" perhaps also include the guest port number? I'm uncertain here as that kind of conflicts with "add" being treated as "change" when the host port (and now count) match. --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -731,14 +731,21 @@ long arch_do_domctl( =20 write_lock(&hvm->g2m_ioport_lock); list_for_each_entry(g2m_ioport, &hvm->g2m_ioport_list, list) - if (g2m_ioport->mport =3D=3D fmp ) + { + if ( g2m_ioport->mport =3D=3D fmp && g2m_ioport->np =3D=3D= np ) { g2m_ioport->gport =3D fgp; - g2m_ioport->np =3D np; found =3D 1; break; } - if ( !found ) + if ( fmp + np >=3D g2m_ioport->mport && + g2m_ioport->mport + g2m_ioport->np >=3D fmp ) + { + ret =3D -EBUSY; + break; + } + } + if ( !found && !ret ) { g2m_ioport =3D xmalloc(struct g2m_ioport); if ( !g2m_ioport ) @@ -759,12 +766,14 @@ long arch_do_domctl( "ioport_map:remove: dom%d gport=3D%x mport=3D%x nr=3D%x= \n", d->domain_id, fgp, fmp, np); =20 + ret =3D -ENOENT; write_lock(&hvm->g2m_ioport_lock); list_for_each_entry(g2m_ioport, &hvm->g2m_ioport_list, list) - if ( g2m_ioport->mport =3D=3D fmp ) + if ( g2m_ioport->mport =3D=3D fmp && g2m_ioport->np =3D=3D= np ) { list_del(&g2m_ioport->list); xfree(g2m_ioport); + ret =3D 0; break; } write_unlock(&hvm->g2m_ioport_lock);