From nobody Thu Jul 23 22:26:19 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=1781688386; cv=none; d=zohomail.com; s=zohoarc; b=jGwymTmolNqAmPV9e3HUGZjvVHPR8nawVTLhnXiQzmLS3bBCzbIb7mOPDO4vrrWxeZormaB2+WTz/IXHvGB+XmGdPs4iezNgn6DN9e7uVgckDTP2HEc5fY9le0BZ328QkKTa5Zc7IlQPFRZ+MUvMnbcgGpLXA8WDoY1CMcL29j0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781688386; 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=W7ffuk5mo5kC1dorjho/tlbgKEVDTzPAjrxyPKRjl9g=; b=mVHWwBtcEsiqXBxwlYDhXrON87pFywDgcrXE6EmsJPGjY3jkg4b42DhAlGF9d1Ihit8kIeDVRMZhL18TSBbr9CvaRfiWd3xNiGOC0UhChT7j4PxdyRtzomP8ZFbuUQzWVSXJ7NsD/dmLkpQH/wNp8Zs05HH4BPPZEARTbiwN8sk= 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 1781688386153888.3363439523184; Wed, 17 Jun 2026 02:26:26 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1339914.1600952 (Exim 4.92) (envelope-from ) id 1wZmXE-0004ul-Eb; Wed, 17 Jun 2026 09:26:12 +0000 Received: by outflank-mailman (output) from mailman id 1339914.1600952; Wed, 17 Jun 2026 09:26:12 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZmXE-0004ue-Bi; Wed, 17 Jun 2026 09:26:12 +0000 Received: by outflank-mailman (input) for mailman id 1339914; Wed, 17 Jun 2026 09:26:11 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZmXC-0004uV-KI for xen-devel@lists.xenproject.org; Wed, 17 Jun 2026 09:26:11 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZmXC-008MKV-0x for xen-devel@lists.xenproject.org; Wed, 17 Jun 2026 11:26:10 +0200 Received: from [10.42.69.12] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a326829-2eae-0a2a0a5409dd-0a2a450c8996-36 for ; Wed, 17 Jun 2026 11:26:09 +0200 Received: from [209.85.221.46] (helo=mail-wr1-f46.google.com) by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a326831-62f1-0a2a450c0019-d155dd2ec0ae-3 for ; Wed, 17 Jun 2026 11:26:09 +0200 Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-45eea68dd6fso2986788f8f.2 for ; Wed, 17 Jun 2026 02:26:09 -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-4606f26392esm51791832f8f.3.2026.06.17.02.26.08 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 17 Jun 2026 02:26:09 -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=1781688369; x=1782293169; 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=W7ffuk5mo5kC1dorjho/tlbgKEVDTzPAjrxyPKRjl9g=; b=DYrh9t6X4PGiakpu4GttCqK4TXJL26jgXSgaAoWG9gcQoUVbfUmC2wROdddFF3koVN Bzx7y5fz7u/fchlWBJn8xLdE8k+CqKIwGXKgLDWhPjmx/WZpppAIzyypJDw5OdNFZjKi bKyU+2zcnsZQ12TqybfFnS9EhjZ3BbCpkYh9k5RCj6BIuykq/IDFYoPsAvKPYwLzLj/c bKrUKqyeUA3f/AWmLqpSD74fJ1CWlBrUl3Il2bv5jhKMoz/tjzA/amlygZYHYk6hQs6z l22oWryuSN5eGh1oki8r2zth3KW+z4XGMAeh7Wbp5/r9uSEUX1DaPht4yCcYLevxXjDM w97A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781688369; x=1782293169; 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=W7ffuk5mo5kC1dorjho/tlbgKEVDTzPAjrxyPKRjl9g=; b=ikq9AIDyoP4IX0b7FMRFzPGU6IBsehCbmlPdR0t5LaNss55RhlJUuSmtuKal3JruN4 EwabJyWslBXuWNn4yLNfZ9VhDCHEZZUPGe8dTFYeV+k+0LsCca7opqteyXhH9yc74N65 OsOoDoPgcbAEOMT9Pbub7ZhAGY8ACMYoRIjwBZHKBaaXffo/ylanJ29yMwFaHvxx2q8a kauTCVBTvaee1GYlG4mpc4/MdNMQlw9TwrxeMg/MWDPMC8P2npLmIU6T5J50edxnqwMB WHdjwHw+ML/71vsRpfQh0mCpj4bX3g+3EpydWrZrFFoQRrVxWQjPQXnXb2IB78NRlY1S x+Sg== X-Gm-Message-State: AOJu0YwZbF6rtm0pPpK++pmeSOResLL/CeWlg0/lDtkJnbronSYsrFXc pbkK0mW+J7TLN9DprRkj+mwnfEefwQO9k+xMJZuTg5D+ytOdnkpOkY4I3UpfJ+/TJjFXZp3mP4v QA5s= X-Gm-Gg: AfdE7cnpyV2yx14zKsTdY6ZJfhRhbd3eLY+cR4pxDuSDfsP9nYV1JztDjDj0fbdUZH3 aVOKW43EShJ57kodm+lMjau2Riw0Td4VPKnRwKsPyZPHgVtDhXzkZmV07QHLsgaQ+doIxWzoh1P EhjcfJjK+N2R6GqHW/FOsmfe7TngFCCbcceUxWilZyMkr7VJ4AN4erMep7pZd2lm6P/jEZBfv/x 4dy6MwF+SWVIjNm+Y9OFcMYLiorJg7LgWbv8UFGoAZNSwGLK+GvMoPi8KFRIv6stlOidV+GImLO EKqdH0rw1OKuBVfPMU6IdI+xY96U0b6SEKbnsqPn1guDZ0DrDb8jijWGkwKitnRmncHk/Lhb/wh yIgKdzW4uUs7RBoifZkHLccGejqq+GLthEksrd5LRN6Aky/IsAAgTOiSG+CQOjmGBiCxMvNq9Az 9z1a4QKpzpov/hrgAj1NhQZF1s1cDZ9nlfMteOb9halwt5IMdRw+SrCLksRp4K2ePmzg0QaWusd 6gl X-Received: by 2002:adf:ea10:0:b0:460:e0f:8d19 with SMTP id ffacd0b85a97d-4623f2e7ecbmr3775007f8f.9.1781688369325; Wed, 17 Jun 2026 02:26:09 -0700 (PDT) Message-ID: Date: Wed, 17 Jun 2026 11:26:08 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 for-4.22? 1/7] 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-d25034/1781688369-E2B74CF5-56D77134/0/0 X-purgate-type: clean X-purgate-size: 3762 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781688388437158500 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) ) { @@ -796,8 +794,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 ) @@ -807,12 +804,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:26:19 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=1781688421; cv=none; d=zohomail.com; s=zohoarc; b=jCSKNB6/7Qb8unatvowkM7uOJGdWZlb9MBGz90Xlqj+KLknz8C770yw0SfJ7rAdLRk5uplz1qUALOTZILo3YbU8HJz+YksRuUtSMu1lOupRn9y/9qStJrg8g1iTBnwIxEnuZ9+SVX7VA03FVgZkidDl/8sU/278WOjCiv8zIsQQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781688421; 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=fGF9d0DGkimmxNNdmyKW4zK1ejuyjXUo2oTuxdzlH00=; b=PnTXrlolqhHnPcVy33T5eDXPBCPXXi6LN8YeLCWg04F7a4PjVRyScQ44Lo9kVqeNLNn6F0FI4VIRgLy+yy/0RaX6hR3LY2n1hEoKhTdUwI/AY/SgmRfKDTRFn/QHu4Sn4saUqBALphOgSPdRQmyLZBhf+V5Byv+JKILhPEUC3+8= 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 1781688421447806.9334159815264; Wed, 17 Jun 2026 02:27:01 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1339921.1600961 (Exim 4.92) (envelope-from ) id 1wZmXi-0005Nx-OX; Wed, 17 Jun 2026 09:26:42 +0000 Received: by outflank-mailman (output) from mailman id 1339921.1600961; Wed, 17 Jun 2026 09:26:42 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZmXi-0005Nq-LJ; Wed, 17 Jun 2026 09:26:42 +0000 Received: by outflank-mailman (input) for mailman id 1339921; Wed, 17 Jun 2026 09:26:41 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) id 1wZmXh-0005Na-OJ for xen-devel@lists.xenproject.org; Wed, 17 Jun 2026 09:26:41 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZmXh-0007ED-4M for xen-devel@lists.xenproject.org; Wed, 17 Jun 2026 11:26:41 +0200 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a326846-e002-0a2a0a5209dd-0a2a4505b3e4-40 for ; Wed, 17 Jun 2026 11:26:41 +0200 Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a326850-aaa8-0a2a45050019-d1558029d172-3 for ; Wed, 17 Jun 2026 11:26:41 +0200 Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-490ace40f4bso52898455e9.3 for ; Wed, 17 Jun 2026 02:26:41 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49230a8ebe3sm114505625e9.11.2026.06.17.02.26.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 17 Jun 2026 02:26:40 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding: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=1781688400; x=1782293200; 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=fGF9d0DGkimmxNNdmyKW4zK1ejuyjXUo2oTuxdzlH00=; b=Vy2/5Qg/s1ZpAtl/LwpIiknYmiAcPphCtP9Tj5EYPPDA+yodLeo1zYxzRIEXnV7ToE Pl8O4G4LXIg9w9Iv3cQYSrlGvK/F21YuHhmOfnUAlvXzTVTnffxspPYsXh8usXD5Ae+K d0w76OdWb1EF+ZFLYS37erJQJAIip7nOr3U6T2gTKga/q/6wOiD9MMc7cAgxarnsRvT/ Lg/WBPnypaDxuUG0chuq56wRr6LIq2sVK3rt9jNFluY977+Bo62kOaq9TH7kgVaWBUxV N6KzHsE+jNRTa+8f0SRfjyy1s2/pBcyIx3RWPLKQAFPX9LmWHgFiUYfLgUEhAtGTETZo dERg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781688400; x=1782293200; 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=fGF9d0DGkimmxNNdmyKW4zK1ejuyjXUo2oTuxdzlH00=; b=jiA1QzKWPQQO4gto8oFTs7hdANXekAWRcMM/kJpjJ07qPAp56AyQpGpIJ38QUtmsts y6LgLdFRqu1gGe42JE346KPDlCmPdOx4ZWmpf/66ra3Wacfq14i9iI6TnQwCgWiujnns L6ZbUth4stv2n1BAOIGi35FeaFz8WJTk3DH/OnxF1MicRWwz/xeA9pb9YoSUipiwuWLb J6lTfhLl29J8ZK4HrauexsZ2tB9hCCpUoKMc+LUwcWd8+ae8e+K8wDrjs2DlUmKzs+uF 2tL2iga2aOJRkirib65NZ0QZ46c1E77tQ7CrS/Fq67F10aWMlSvfAgRYJ1JKrx/hKkEw O5MQ== X-Gm-Message-State: AOJu0YyD04KBagu4WcQ5XzFQ7L2kByeO7zdWLxzkvEzZNL4Jic3N96kH 0y+xvCi7gl3GTkAxV8PiH1mKlXRM2Y4AMxpbiE1gIKEUJntb0LVa2Ew99zxTxS2NTGo21vuYKWw VIi4= X-Gm-Gg: Acq92OEuDs8ll7noaFNYuISeXrUKFSlb2mTnARfoRd7Pa6kOnmaVrLgfo/4WAaHQb/N oRyiTB0nW2tjc0Bf+Fc95UX3jfgv4oPJU7t51/8yXkk9Jc0dGVA0Kniqo0dIa8jEjc7bfRjLshO PeObgD195DKEGi2ysQn2wChUCMCwak1x5cKB05NJLbdA0KROaraBoiyOlfgcznqlIWGzD0vSks+ P0XrxB80Uyu+ShlLZBpI8CBjSyO8Y3CJmciQn1rBmc5sRNlut1GXHD6i3itHXoHZ8KVzY+Sa1f5 bpGeWrCZ0m3bKuSoM0CZDVlVC+3KItUNW9196TyUvtMUvov4pLlIusK5e/AVpAzFKonH3TrGxIW NKsk1WAM9+U7NiQLkDmCC0tRghXf2hlspG3kxT8S/db7ZP2PlQrIHWYsrka3MZOd3T3ztRLem03 HKR4q2wHkRoKpGyt+/sPqDOqPxeHl/Eacv35zLj5npawXXGwx8kT9USh2RnXshXl9bxhadLBEwX EdR X-Received: by 2002:a05:600c:8283:b0:490:d38c:7836 with SMTP id 5b1f17b1804b1-492333a1683mr49112935e9.3.1781688400467; Wed, 17 Jun 2026 02:26:40 -0700 (PDT) Message-ID: <046c3d8e-0672-4235-b84d-bccbded33264@suse.com> Date: Wed, 17 Jun 2026 11:26:39 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 for-4.22? 2/7] 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-c201ff/1781688401-D857B443-32ABDDCC/10/73395122804 X-purgate-type: spam X-purgate-size: 2370 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781688422241158500 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 Release-Acked-by: Oleksii Kurochko --- v2: Use initializer for local var. --- 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 =3D domain_vcpu(d, op->u.getvcpuinfo.vcpu); + + if ( !v ) + { + 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:26:19 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=1781688446; cv=none; d=zohomail.com; s=zohoarc; b=BYeI6YKfcwEdUOTA5a1PWKfNI9JTpPksUyWduKEJaI3WAQ7oUfEeo9ho59CjOlBPb0O7Ypo2eUsuNfY/yFfUZmJEKXwyRUDNhnzKfTrxCv1PFMFSV8C1orc3W/iHZ0+zhJoXzGGpuujY7bqUYUj0vZxAZLjdcbzDkup5fkU6Wok= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781688446; 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=sh41o66qzkbWNV16vdLt/fbJ5iwYqzXBUgb3JCi8skE=; b=C3qusrTVXeklGogUlkVHDviIloVQifRo9t8MebG/5dPuV4ugAB71cvs7ianfpRAiAdY/Yiap+ND6Z4Cd5JEoL4m6qYh9F9FzdBZQzsnlB90vFe8ZGGoHqDFR/HRtWGDzRVoDsVrlotkBZIoMJkprO4CgZEd2DdS0unPkp8UbwJg= 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 1781688446579337.163043667175; Wed, 17 Jun 2026 02:27:26 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1339929.1600970 (Exim 4.92) (envelope-from ) id 1wZmYB-0005tI-VQ; Wed, 17 Jun 2026 09:27:11 +0000 Received: by outflank-mailman (output) from mailman id 1339929.1600970; Wed, 17 Jun 2026 09:27:11 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZmYB-0005tB-Sf; Wed, 17 Jun 2026 09:27:11 +0000 Received: by outflank-mailman (input) for mailman id 1339929; Wed, 17 Jun 2026 09:27:10 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZmYA-0005st-JT for xen-devel@lists.xenproject.org; Wed, 17 Jun 2026 09:27:10 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZmY9-002qTb-T9 for xen-devel@lists.xenproject.org; Wed, 17 Jun 2026 11:27:09 +0200 Received: from [10.42.69.1] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a326868-bab6-0a2a0a5309dd-0a2a4501e492-8 for ; Wed, 17 Jun 2026 11:27:09 +0200 Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com) by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a32686d-c1f2-0a2a45010019-d155802eb92a-3 for ; Wed, 17 Jun 2026 11:27:09 +0200 Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-4923139e940so9749495e9.3 for ; Wed, 17 Jun 2026 02:27:09 -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-4620b1083e3sm7917646f8f.20.2026.06.17.02.27.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 17 Jun 2026 02:27:08 -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=1781688429; x=1782293229; 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=sh41o66qzkbWNV16vdLt/fbJ5iwYqzXBUgb3JCi8skE=; b=UIU74M15dpNvE+dQHMzcWscsCoBVHteznffq7U51UT9dnzrP0rRoaIL+REZpWfxBuU fUGU311YxC35pScCGR2eccOzOIDGOSHnYG8BbBZ8Y+sgmJYgR01zlWmpjJujrkIWjp// S2mEO0AqkcZqs4tyNijGGW6Z3IZLT20uOCeEAXSuGtenQS/ysPP/Z1HOS7cz5EVc9t54 zgB8p45yrYIodLULuVGxW+NK7CkZKUo7FL5fhejVdL707gy5YeMdDO6Zt2Eblb1ohIH7 VtaBnwtDMB2Z05eCOWQfHoTMVa1xZC3Gr5b0tn/IAMoV1Mvq6WwOb2McXe6Xe1Da6l0U 6RhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781688429; x=1782293229; 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=sh41o66qzkbWNV16vdLt/fbJ5iwYqzXBUgb3JCi8skE=; b=GeoRmeMSZBOahqfi/+a0+frr6jwAoBl56MBpr5sabI0VAolILxK6/PL8JeLp3FAYUs A8XArzJuMGB/ijNeYgaqQZTMrWdIdy/YGSB9dWhGflmwv1t8EwLGrjvZqRLh30jCHFfv FcUeLS7lYKv0tQ/CWpotMHUskl3QUzcJtD+c/5kDG6zaZmr1C/d5kHXqAz6zrYfVz0Nk kkiB9INXMkTGnw28ZxxDc0vQfL48r62XaxBTHuowSE1xyTiqwzxGLoxQ/NE5j4NjAWS+ PX7ioD1nM5su2YDlgouHA+MvCjBpx0coM0c080CDoDEs60sbXyytwgQnu/CXprhKeb5I cCxQ== X-Gm-Message-State: AOJu0YzoNSa6/IddQJMISLRNEJcIHhun8g5rATjv6dm5gpbkgy3E+/qY DTPOnDo8JhL02QTF9fV1h3ob4vzIiPx38eHeA+GDVFQg4p642MMGbQFTi8TT0GvYf2eDQ1OKp4l VPok= X-Gm-Gg: Acq92OGYpAIksy+01CCc/I8M4JehXenyJIb3DTwlUVz0CqPBKELRI6rcIurKRkIxI75 dO/IZ6++We2Y/cPjxHMzbqpLB0xLe6ykF1EL7s2z361MgQD3QTU1TVPFMkil+Mly195Kl/ejZxa 6BIhzYOtskgpDWqhh2HUMq5C4KA0iHpT1MGhsbwLJFy1OPV4gzJbvWi8PoHndZrMCWdjBIr7oCK AbN45/vYxQiwpFtqWlpi3fL3CHMyTtkfyYVLEI1T5zddQlRIj8YP/p1OdLN+sni+FmH8QGyOMIE KAf1umWnJvJ7sxlaRGkFDY8FXeUf9+iMwcv5MDjECPtRZqmbfeLcxb3oP4ZGVbj11sAtnnqpw7s AYUzYkyw7Zgj2duB+0BNQW16vsob3UgKS39IIezlay3oE5wh8zj9UyJMVPyLg/o7HOkUkDGeXb6 N+46Nz/GdLxof36NFNjxmjRbBjBiYw/C+vkWivv3qpvRkyyavu2P10+T4db1J4siTqAF4LMhYZU iN/ X-Received: by 2002:a05:600c:1f86:b0:490:33b3:4be0 with SMTP id 5b1f17b1804b1-49234127a4dmr34973985e9.20.1781688429120; Wed, 17 Jun 2026 02:27:09 -0700 (PDT) Message-ID: <51050157-236a-44dc-93c5-8b52a31a3e62@suse.com> Date: Wed, 17 Jun 2026 11:27:07 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 for-4.22? 3/7] domctl: move early special casing of XEN_DOMCTL_shadow_op 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-d62444/1781688429-B6B5EFF4-51579972/0/0 X-purgate-type: clean X-purgate-size: 1552 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781688448723158500 Content-Type: text/plain; charset="utf-8" This wants xsm_domctl() invoked, but the domctl lock not taken. Move the handling to the respective switch(), thus eliminating the need for a separate xsm_domctl() invocation. Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 --- v2: New. --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -512,17 +512,6 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe /* Other sub-ops handled further down. */ break; =20 - case XEN_DOMCTL_shadow_op: - 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_PRIV, d, op); - if ( !ret ) - ret =3D arch_do_domctl(op, d, u_domctl); - goto domctl_out_unlock_rcuonly; - } - break; - case XEN_DOMCTL_get_device_group: ret =3D iommu_do_domctl(op, d, u_domctl); goto domctl_out_unlock_rcuonly; @@ -568,6 +557,16 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe goto domctl_out_unlock_rcuonly; } =20 + case XEN_DOMCTL_shadow_op: + 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 arch_do_domctl(op, d, u_domctl); + goto domctl_out_unlock_rcuonly; + } + /* Other sub-ops handled by arch_do_domctl() further down. */ + break; + default: /* Everything else handled further up or further down. */ break; From nobody Thu Jul 23 22:26:19 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=1781688484; cv=none; d=zohomail.com; s=zohoarc; b=aqT6WkkwieZrCos5Yk98uGDpOT+HX8VC6iticyma2uMsIfwDzMX/GEqVo1o5WGOjdrNfMG2jbEhzW+4Iqyua7vfI68uKfAJzuQfwH40xr8RPFL2lZi9rQMb4jj5GsZ/HfWm3UPPExefGy1MP9Lz5sPVRfU0vtLVyzUwzNurAIEY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781688484; 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=OvgYFXrjxwjAEeit5+Y2ej8A7uiS4tWnpwH2lrGzVig=; b=IGqPoA6YGuS9wjRhhqLVqkSoyWyuGeCJhX3teyO7wkVqfVWBk6g1/nAInPvJRQWp6LegKCiBnUDVs80e2s68QsPTPLTxmdu3t1GQDgzNUO3oOCfLRX4CfPGByPQXFnBquZGLv9Su44povy3Tt/1gYKLvJiN4/PIN9w0r4pOcs4E= 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 1781688484880386.32868678118894; Wed, 17 Jun 2026 02:28:04 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1339936.1600979 (Exim 4.92) (envelope-from ) id 1wZmYk-0006TT-6X; Wed, 17 Jun 2026 09:27:46 +0000 Received: by outflank-mailman (output) from mailman id 1339936.1600979; Wed, 17 Jun 2026 09:27:46 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZmYk-0006TM-3N; Wed, 17 Jun 2026 09:27:46 +0000 Received: by outflank-mailman (input) for mailman id 1339936; Wed, 17 Jun 2026 09:27:45 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZmYj-0006T9-4a for xen-devel@lists.xenproject.org; Wed, 17 Jun 2026 09:27:45 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZmYi-008MWb-He for xen-devel@lists.xenproject.org; Wed, 17 Jun 2026 11:27:44 +0200 Received: from [10.42.69.2] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a326890-e002-0a2a0a5209dd-0a2a4502b556-0 for ; Wed, 17 Jun 2026 11:27:44 +0200 Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com) by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a326890-af86-0a2a45020019-d155802cd458-3 for ; Wed, 17 Jun 2026 11:27:44 +0200 Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-490acbb0f89so35883455e9.0 for ; Wed, 17 Jun 2026 02:27:44 -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-49230a4f8d7sm139514015e9.5.2026.06.17.02.27.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 17 Jun 2026 02:27:43 -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=1781688464; x=1782293264; 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=OvgYFXrjxwjAEeit5+Y2ej8A7uiS4tWnpwH2lrGzVig=; b=ONZ+nhgi7j4UzUrgAmroXaeTwSEhH2seWjEBTIiC8A6XcMnat+weKySCzy6hjSNX6G /YdWeea23x2Z0KC9IhKp/z/GTrxeJfkGKKrfB9Oxm8VU1r7qUBjwlqrAA1xvzqrsE2FL WceVF79U23sOZHeDNANFH4Syn3cBAQbAhPR4Q6HQzLraMuLmhZwnrAx42uPVcMLTMRdz oqHUnlaW4bNHWygDZz/CAmM4bOWhhw7hyW0y98AD6XTQ0JlJk6sEz6ENQ3cDWA5LR4M2 uhHsEthCR7cO4ynVLn5TPzWyD9fQQitDDmAiU3VMnatFsw39H//VVeH2VLtzkAczHCtE alUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781688464; x=1782293264; 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=OvgYFXrjxwjAEeit5+Y2ej8A7uiS4tWnpwH2lrGzVig=; b=pXOSKEjZ7nQLWS1TywwW7yq8xluU9Pw6HpykhKVXaCwgI81oRPKfB7mi40I6EQS9fw SqdNKVBz/ZpgYyFzDf1YkEPI32Go7G1PW6foP4KfCFyz/8sZ16gdwUHvak/xZTvjmV4e 8MmbMUkG6476chr56fm0FEPR4R121ucb/TegZRGXd8J1QdJWy6ytGNz2wrHQ8W+1tNcy C4HQhUqYIUdTuUu23bi0hZpVYyxFI0CI0vLhGqYFyBND8R5TT1N/cIIuuxB9VJI7v8V4 Ly4d7qg11HM8LgZgvT/f1+v3P/SeQvep1BhS/CgXRNZ4Ennib+tuL87fhWj4kOgs1KQL yJRg== X-Gm-Message-State: AOJu0YypPQLKI3MFuOm/b1J3MYlIVZ9jywh68q4GXO2Sn4HeQ0b6Vmff vLZUzUi0/J/mEfXA1z1it3PApn+CksIbTlE+bpTkshAM7+cHs2uWcfdUMwzv/3MBkAuFi+ltUI1 ZfYY= X-Gm-Gg: Acq92OGayExClUuoslOFTSX1ktBgLQ8D8/x+ZzCnyxsXryOUpVfxCQl6pe7LEQ+3NMv 4U8Vyg13A3Ha92JM653Rmu2gKGanxPddcHsX4k7MoqzuciiePWdt9HB5FNAvu/oJMog989c6LY7 HKfxZKVlw0v/x+urDt4Nj+ToOcplp4d5nh1nvgSBoND21FfDnc7uGtVuwjSeXPCnO6ARY2o7LB3 EHcqrlG2D8MffnQxZGUwfT5Tx3hGQr9DQ4h/Hadvm9Lbi7y3ubyo+HPHsEdAw60mwj2I/edZcOf NoKCvivfsVVEiJ3ryETX3Ew8ImY/xscDGUmxUOGOBssz/forh1Ca+SQHWmu32zkfDsvbAF231/i O0+DRf4E16E+qjIyi7cziLEaMIIstymnZ1A64T/gbhOUVVBM9pvjKB9DjTuImj3wUmVz8adYG2y ksIeSvz1b+La1I7rr59dA/iGLGSm+yGC4DovBeb7HIYuP8WsOirlf6zhvlqcvznovb7xMURrVBb szt X-Received: by 2002:a05:600c:a148:b0:490:44eb:c1ec with SMTP id 5b1f17b1804b1-492333dafe8mr35524845e9.27.1781688463966; Wed, 17 Jun 2026 02:27:43 -0700 (PDT) Message-ID: Date: Wed, 17 Jun 2026 11:27:42 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 for-4.22? 4/7] 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-720697/1781688464-81573161-1BF51DA2/0/0 X-purgate-type: clean X-purgate-size: 2492 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781688486601158500 Content-Type: text/plain; charset="utf-8" While the granting of permissions when mapping was already removed from this operation, check whether permissions actually were granted when adding a mapping; the check of the requester having permission remains unaltered. Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monn=C3=A9 --- v2: Avoid double evaluation of "add". Re-do description, to avoid mentioning behavior introduced only by a subsequent patch. --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -436,25 +436,16 @@ 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) ) + if ( !iomem_access_permitted(current->domain, mfn, mfn_end) ) /* Nothing. */; - else if ( add ) - { - printk(XENLOG_G_DEBUG - "memory_map:add: %pd gfn=3D%lx mfn=3D%lx nr=3D%lx\n", - d, gfn, mfn, nr_mfns); - - ret =3D map_mmio_regions(d, _gfn(gfn), nr_mfns, _mfn(mfn)); - if ( ret < 0 ) - printk(XENLOG_G_WARNING - "memory_map:fail: %pd gfn=3D%lx mfn=3D%lx nr=3D%lx = ret:%ld\n", - d, gfn, mfn, nr_mfns, ret); - } - else + else if ( !add ) { printk(XENLOG_G_DEBUG "memory_map:remove: %pd gfn=3D%lx mfn=3D%lx nr=3D%lx\n", @@ -466,6 +457,18 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe "memory_map: error %ld removing %pd access to [%lx,= %lx]\n", ret, d, mfn, mfn_end); } + else if ( iomem_access_permitted(d, mfn, mfn_end) ) + { + printk(XENLOG_G_DEBUG + "memory_map:add: %pd gfn=3D%lx mfn=3D%lx nr=3D%lx\n", + d, gfn, mfn, nr_mfns); + + ret =3D map_mmio_regions(d, _gfn(gfn), nr_mfns, _mfn(mfn)); + if ( ret < 0 ) + printk(XENLOG_G_WARNING + "memory_map:fail: %pd gfn=3D%lx mfn=3D%lx nr=3D%lx = ret:%ld\n", + d, gfn, mfn, nr_mfns, ret); + } =20 iocaps_double_unlock(d, false); goto domctl_out_unlock_rcuonly; From nobody Thu Jul 23 22:26:19 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=1781688567; cv=none; d=zohomail.com; s=zohoarc; b=i39jynjVKkkh35LiSWbwQLBrc8jlcMO2qcoIFmGJtTyVg61bfgwJ5/ah2bI104ZKiMsS/k3g9AqCi+rX+dfKufXcvRDQxe6BT20pym8UzQqolFuaFlFm4d3VI8UenI+7R7G0NO/KTSyfyvBI0EkTHVJ2MyBkr8oTItgXVeQgLoo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781688567; 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=GCO0RssdVVdHttUb3yjvyoLU2Z9nQ5JVjDGHgFk6qrY=; b=nsk/Gy0KRlxor+pDlUX41GGKHAPRuWTUUKGaxy+bIzqwdns/RZK08rxpv6/Z0QU+x/zfUobVq+gSYxxxF7A+JWERKhgbMRuCKC/4n+OAEQmGwwJCkzKAj3GpwVOsI3HSKC+F5d8BcG303yWWkZ9ayxgkaBPtjlglvcTsG9nngLs= 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 1781688567024559.527775291337; Wed, 17 Jun 2026 02:29:27 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1339947.1600987 (Exim 4.92) (envelope-from ) id 1wZma9-00071s-H9; Wed, 17 Jun 2026 09:29:13 +0000 Received: by outflank-mailman (output) from mailman id 1339947.1600987; Wed, 17 Jun 2026 09:29:13 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZma9-00071l-Ec; Wed, 17 Jun 2026 09:29:13 +0000 Received: by outflank-mailman (input) for mailman id 1339947; Wed, 17 Jun 2026 09:29:12 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) id 1wZma8-00071c-6l for xen-devel@lists.xenproject.org; Wed, 17 Jun 2026 09:29:12 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZma7-0007kR-Jn for xen-devel@lists.xenproject.org; Wed, 17 Jun 2026 11:29:11 +0200 Received: from [10.42.69.8] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a3268df-5cb7-0a2a0a5109dd-0a2a4508cfda-30 for ; Wed, 17 Jun 2026 11:29:11 +0200 Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com) by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a3268e7-63b5-0a2a45080019-d1558030d144-3 for ; Wed, 17 Jun 2026 11:29:11 +0200 Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-490ace40f4bso52917595e9.3 for ; Wed, 17 Jun 2026 02:29: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-4606f26f726sm49825591f8f.15.2026.06.17.02.29.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 17 Jun 2026 02:29: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=1781688551; x=1782293351; 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=GCO0RssdVVdHttUb3yjvyoLU2Z9nQ5JVjDGHgFk6qrY=; b=AvE5SHtd7cLiz/xeD1YqYaL6rNL9+9Fvx+W5IS2HLmYz8UlZL5CqpnAr4WYJ9pUKGU L//NBdm3F5rGpRvYQmhShHytTWogOb9Ic1Zq9hkcQWb2bLnz4lg3UEgcNoBZiiUt7AnA p+Zc8CazxPDrVzFVjq0S/caLa+lkzXbbzboDobx7qyWlDKutWSltFW7wq7Gf36TLE4ws p2VzH09DGDTfukgZscVdAbTa2GX/8isSEA5++NDtp3Q0MvA2B72i07JiQDFGlZ1w/SUS TSWvxc/8ZagfR/S1YxsNZPTW04Khdbf/Cimtp5EtZGBe/G4tJxdk1Bja8mpVrhLr6E05 ClzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781688551; x=1782293351; 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=GCO0RssdVVdHttUb3yjvyoLU2Z9nQ5JVjDGHgFk6qrY=; b=VCG1s9ZzSiRTRyoainkHGiq/sS/7hMwpaLJScmX59K40vXJ39mj59f95z9HspQthkC 2mzTAF8ML3NRYwG2/I9WKjvWku6U/91KFu7O1uY0Y6n8RjlQZt91OuYvJ0G7VJJvrNjW rfTCnHyOLIFZ9R5SD2Yq/P9NKIDMLGwMXIjQsD2O0BABChwpb5daw91wHTL1Z9ya5Bkb QCOOFRAptzCbUt68xCrUrWvPEqWgvTaDk6yyXNXDl207pJr0IXHfXGBj4/ww0wqPnf0W FNX+3TxCJ7w/5GIbb7hLTC227DlQod3Y9gvZRvwnDpmrjZfiGYD3gYLi76rVEmkt/Zm+ l1mQ== X-Gm-Message-State: AOJu0YwJ7PZ/d65DAhEdhErSXYTDwvl5x1RyQmEuMF5tS6b5kUDXsZhN LE/F5zF7IAA4utbmmzUVrMXo+2fyJIYxN1f7PCMR1y9gnWJ470EA3IsgGQMQOPWwhc6vFAVUe8P 3DWg= X-Gm-Gg: Acq92OEPRMX3Y330Wxz04FLvoc5p/Dg/UtUIUq5fXZNjdq3+72PA1k9Kfq4eWAEZuoD wCUwF2CUsOfWSbg/5WMAsThxo5aE3DFXWmJFpa5dHdXZqK8hrTLGCG+D7bZZC77mfx8n1kU6ab0 70lu/iHM4tyWIcH40Ow1RV6fkkw/Ba9oBS+yeI2uVpjnZa6qxfcrlucQ7syLR5R5P3LsFZxik6W o9oQVIGA/zluiCz+lPrHTuIOfeB00synkb+eC52BCa/p4ksmLjKldmzrh9l0zUjbLijwKg/jVcm ssBAFW0US+KrVd6UNdTa90QwYPVE9UW+CrYlv6eDK9Mz50+LaMiDtaLN1YY7Le2uNzjIXMXPjnq i0FS4zwE/ZCNaDQV2wWIE4Skj0trQQB5yF/+hAAocuvHcY1GFCtx6Xs5y5nEEnlhhKg5a3xJ00s EOLpqyOyeLQoRNZayfxkkDssfSIlpQMi7YBFu71yqT3cxIVVFJi2zOsxLbTQ0f+HA/rV2uhnC1y eZUI5V+phe05Nw= X-Received: by 2002:a05:600c:a104:b0:492:3347:12a9 with SMTP id 5b1f17b1804b1-492334712camr40164685e9.26.1781688550942; Wed, 17 Jun 2026 02:29:10 -0700 (PDT) Message-ID: Date: Wed, 17 Jun 2026 11:29:09 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 for-4.22? 5/7] domctl: correct return value of XEN_DOMCTL_[gs]etvcpuaffinity From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: =?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-c1860d/1781688551-BC965DB1-5C22FF44/10/73395122804 X-purgate-type: spam X-purgate-size: 3275 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781688569068158500 Content-Type: text/plain; charset="utf-8" cpumask_to_xenctl_bitmap() may return errors. Clearing the error indicator of an earlier such call by a (successful) later call is misleading the caller. For "set", keep setting soft affinity if the hard affinity copy- back fails; only accumulate respective errors. While fiddling with return values, also drop a redundant clearing of "ret". This eliminates a Misra C:2012 rule 2.2 ("There shall be no dead code") violation. Fixes: 6e4ecc6d5884 ("sched: DOMCTL_*vcpuaffinity works with hard and soft = affinity") Signed-off-by: Jan Beulich Release-Acked-by: Oleksii Kurochko Reviewed-by: Juergen Gross Reviewed-by: Roger Pau Monn=C3=A9 --- v2: Consistently return first error. Integrate into series. --- a/xen/common/sched/core.c +++ b/xen/common/sched/core.c @@ -1708,7 +1708,7 @@ int vcpu_affinity_domctl(struct domain * { struct vcpu *v; const struct sched_unit *unit; - int ret =3D 0; + int ret =3D 0, hret =3D 0; =20 if ( vcpuaff->vcpu >=3D d->max_vcpus ) return -EINVAL; @@ -1746,19 +1746,17 @@ int vcpu_affinity_domctl(struct domain * if ( vcpuaff->flags & XEN_VCPUAFFINITY_FORCE ) vcpu_temporary_affinity(v, NR_CPUS, VCPU_AFFINITY_OVERRIDE); =20 - ret =3D 0; - /* * We both set a new affinity and report back to the caller what * the scheduler will be effectively using. */ if ( vcpuaff->flags & XEN_VCPUAFFINITY_HARD ) { - ret =3D xenctl_bitmap_to_bitmap(cpumask_bits(new_affinity), - &vcpuaff->cpumap_hard, nr_cpu_id= s); - if ( !ret ) - ret =3D vcpu_set_hard_affinity(v, new_affinity); - if ( ret ) + hret =3D xenctl_bitmap_to_bitmap(cpumask_bits(new_affinity), + &vcpuaff->cpumap_hard, nr_cpu_i= ds); + if ( !hret ) + hret =3D vcpu_set_hard_affinity(v, new_affinity); + if ( hret ) goto setvcpuaffinity_out; =20 /* @@ -1766,7 +1764,7 @@ int vcpu_affinity_domctl(struct domain * * cpupool's online mask and the new hard affinity. */ cpumask_and(new_affinity, online, unit->cpu_hard_affinity); - ret =3D cpumask_to_xenctl_bitmap(&vcpuaff->cpumap_hard, new_af= finity); + hret =3D cpumask_to_xenctl_bitmap(&vcpuaff->cpumap_hard, new_a= ffinity); } if ( vcpuaff->flags & XEN_VCPUAFFINITY_SOFT ) { @@ -1804,14 +1802,14 @@ int vcpu_affinity_domctl(struct domain * else { if ( vcpuaff->flags & XEN_VCPUAFFINITY_HARD ) - ret =3D cpumask_to_xenctl_bitmap(&vcpuaff->cpumap_hard, - unit->cpu_hard_affinity); + hret =3D cpumask_to_xenctl_bitmap(&vcpuaff->cpumap_hard, + unit->cpu_hard_affinity); if ( vcpuaff->flags & XEN_VCPUAFFINITY_SOFT ) ret =3D cpumask_to_xenctl_bitmap(&vcpuaff->cpumap_soft, unit->cpu_soft_affinity); } =20 - return ret; + return hret ?: ret; } =20 bool alloc_affinity_masks(struct affinity_masks *affinity) From nobody Thu Jul 23 22:26:19 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=1781688627; cv=none; d=zohomail.com; s=zohoarc; b=jRXk7Mt+e4FVUGa1ztzYfZ+cl5fbb5mOUgj5DrA+/vbJWaE0NGYPSrWvGdWUllWYsflxAwQOulAaHZgI5WkoBW+dj9kkAC4m44IMYNL8FX9rukVK3RnmlyIzIoFHkGCW1rtKwMxk4EtmAMILCx85EmqaEUHlRU9WrffyIac5J3I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781688627; 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=cGO//gFkgptc18LJxH00vrNQWKDEK04r3FP8T9nu6a8=; b=Nw/IqBt0v85tmlEZhCnqqAo7Odzq1tFDYHPeWw1I+8VZOzqid+zFBNXDQwreP6cQqlXt+y8PgNKLarMphpjVai6jhthc4fSeGS3VEiT+PhyyqUZuhzGwAw8ja4pQ8Rk7nGDJbcZndMS99BO/vZ/v+0DWJz87S3lyr7mUHJy0Wco= 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 1781688627396648.6139234346318; Wed, 17 Jun 2026 02:30:27 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1339955.1600998 (Exim 4.92) (envelope-from ) id 1wZmb2-00005W-U1; Wed, 17 Jun 2026 09:30:08 +0000 Received: by outflank-mailman (output) from mailman id 1339955.1600998; Wed, 17 Jun 2026 09:30:08 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZmb2-00005P-Q8; Wed, 17 Jun 2026 09:30:08 +0000 Received: by outflank-mailman (input) for mailman id 1339955; Wed, 17 Jun 2026 09:30:07 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZmb1-0008R5-Gy for xen-devel@lists.xenproject.org; Wed, 17 Jun 2026 09:30:07 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZmb0-008NCT-TK for xen-devel@lists.xenproject.org; Wed, 17 Jun 2026 11:30:06 +0200 Received: from [10.42.69.1] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a32691a-bab6-0a2a0a5309dd-0a2a4501a7ac-30 for ; Wed, 17 Jun 2026 11:30:06 +0200 Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com) by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a32691e-c1f2-0a2a45010019-d155802ccc1e-3 for ; Wed, 17 Jun 2026 11:30:06 +0200 Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-4922244f7c7so35753415e9.0 for ; Wed, 17 Jun 2026 02:30:06 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4923687d654sm87515e9.1.2026.06.17.02.30.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 17 Jun 2026 02:30:04 -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=1781688606; x=1782293406; 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=cGO//gFkgptc18LJxH00vrNQWKDEK04r3FP8T9nu6a8=; b=e5d+U6qUalKn8em66yt+c2BlMTDfQLJvbSCRUvQj1nSPgmmNfZgAilIHXUrFyAAuZn NiOlreqw+ic041zln9LG5X1dp6rscKloKxSNN8U+hBhycV5d6LTW5p+YEyDOCCKsq3y9 qoTOPkGGOOtGT3vdWjkDFyhcJOjdyubKMqxLcHiPUtClzA5eogOxYSa/pCsuZkpSqbdT Dp6efzYfOWeUCjh1UVir9MLhiNtObmZsWh/bUedEzrzieBexPK45IacIczdZVmDtjad1 h9XtyNwzVu0SZ5cVufwVM6EIIQ+x9KzAjFbDwc7SVra1/G0XI/x5BuJgDEVDh83PtRGa LLgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781688606; x=1782293406; 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=cGO//gFkgptc18LJxH00vrNQWKDEK04r3FP8T9nu6a8=; b=YLWvo7gdlcZKQg+/fKqOMhZc+4IO3aaHjZcR+XAWSkk4cgo32fXhG0BHlEIG+wztUy NegAOaUt4SAg+z9CUbahs7Ncvho53UnlxS+GDwok0nK5ksYr/+UCehS1CZFYMZ8wVMcZ WdUqFAbHTU1Aun48IyFDIN65rK87RbhFA67WEY6giJEYaeQyIickyo/R2cv3H8doLVIK zDmgBabQX6USMBTkoRK8cLT7MZ6aA96NQ2E3lL2xWzv3Jd/0NKCmmS2z2txkGPN65yGQ 2D/X/7kH+NPiDerthYdbo/WkYJu+/SYll/CiMSBxu334D9jcJphwg80pyy7S1avXhuVB Nl8Q== X-Gm-Message-State: AOJu0Yw0sfiOQ9hor+vRxPylcnQljKVkSPcM8aO3xgjQnyRIPljJSEHA YcbgHnVwraSST+fFy3d3qTQALvksnajYtw4PIVIlhhysSd8TQZFEpP46/yogNqUWP34Tf3Rb6mo XR+M= X-Gm-Gg: Acq92OGix7UiydLwwKTD0WqyjgKz+4yacyn5yvUacMHEAODIQnlOaBZoqxY6UGERhco WfomkmGGCoX+OJJyPzh5cz9opTR+WTL8ivqF+G27IB4PFyb7RUWrBa1ti7ZomOqmreMOMpC3MMz 4IFwtPZxiPq/qHjWE2Un2YgadCJSVnIpTN/JjZ5DPeDPDlP+yR+Fng/JSNlIWGfM+2wMEX6cjSS 5MGDAQ0l9c9w5vn3u6eeB+qjwVisaJ7sSWC5Wac1aUHyaeyAtGr7r+ADG8mLPdCJs/BmVlS4C1k fBoU3WcHiaPLZ2uJnFJ24YB6FkkpUre6RhIAbcqDd9/PyWSKJS50yyxcNDg5XZnolO7e/PJjFNK tJashuAHv34F36OPiDqWwTHFDlHp2Wke7n3IajsYKWcUA9Rcrd9SFFhxUGWwtwdJekNK22gH0aS Lj8HJM/576ZbgoQcVbIL8u9JqWu631XlGPcW2kJsQuz4CMiTT2YyZo8BidA4pg98cfcuIjtM9p+ jOK X-Received: by 2002:a05:600c:a305:b0:490:3fa2:1b93 with SMTP id 5b1f17b1804b1-492333aa619mr39973715e9.13.1781688605070; Wed, 17 Jun 2026 02:30:05 -0700 (PDT) Message-ID: Date: Wed, 17 Jun 2026 11:30:04 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 for-4.22? 6/7] 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 , Anthony PERARD , =?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-d62444/1781688606-AEB5EFF4-96E306BC/0/0 X-purgate-type: clean X-purgate-size: 4944 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781688630023158500 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. While no longer granting permissions upon mapping is "only" at risk of breaking guests, no longer revoking permissions upon unmapping strictly requires callers to additionally invoke XEN_DOMCTL_ioport_permission. Or else a security issue would arise. In-tree code already does so. While there switch to using %pd in the two log messages. Fixes: 192c4dabc344 ("domctl and p2m changes for PCI passthru") Signed-off-by: Jan Beulich Acked-by: Oleksii Kurochko --- 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. --- v2: Avoid double evaluation of "add". Add ChangeLog entry. --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,9 @@ The format is based on [Keep a Changelog - On x86: - Enable pf-fixup option by default for PVH dom0. - The libxenguest bzImage loader now uses the system liblz4 library. + - XEN_DOMCTL_ioport_mapping no longer implicitly grants permissions for= the + port range in question. XEN_DOMCTL_ioport_permission now needs invok= ing + up front. =20 ### Added - Support for per-domain Xenstore quota in C xenstored (includes --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -714,15 +714,35 @@ 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) ) ret =3D -EPERM; - else if ( add ) + else if ( !add ) { printk(XENLOG_G_INFO - "ioport_map:add: dom%d gport=3D%x mport=3D%x nr=3D%x\n", - d->domain_id, fgp, fmp, np); + "ioport_map:remove: %pd gport=3D%x mport=3D%x nr=3D%x\n= ", + d, fgp, fmp, np); + + write_lock(&hvm->g2m_ioport_lock); + list_for_each_entry(g2m_ioport, &hvm->g2m_ioport_list, list) + if ( g2m_ioport->mport =3D=3D fmp ) + { + list_del(&g2m_ioport->list); + xfree(g2m_ioport); + break; + } + write_unlock(&hvm->g2m_ioport_lock); + } + else if ( ioports_access_permitted(d, fmp, fmp + np - 1) ) + { + printk(XENLOG_G_INFO + "ioport_map:add: %pd gport=3D%x mport=3D%x nr=3D%x\n", + d, fgp, fmp, np); =20 write_lock(&hvm->g2m_ioport_lock); list_for_each_entry(g2m_ioport, &hvm->g2m_ioport_list, list) @@ -747,40 +767,11 @@ 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 - { - printk(XENLOG_G_INFO - "ioport_map:remove: dom%d gport=3D%x mport=3D%x nr=3D%x= \n", - d->domain_id, fgp, fmp, np); - - write_lock(&hvm->g2m_ioport_lock); - list_for_each_entry(g2m_ioport, &hvm->g2m_ioport_list, list) - if ( g2m_ioport->mport =3D=3D fmp ) - { - list_del(&g2m_ioport->list); - xfree(g2m_ioport); - 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); - } + ret =3D -EPERM; =20 - iocaps_double_unlock(d, true); + iocaps_double_unlock(d, false); break; } From nobody Thu Jul 23 22:26:19 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=1781688653; cv=none; d=zohomail.com; s=zohoarc; b=h5Kf70IViMyQxSwuitbLRAAjSXDBMhD/6TYrXbWXeHTvGigbXYjm46dBYYrv3OtWkntACQ5NlnJKOBiVTLiION9Y6CwCdCaL9eAXaCi4L7U2OZh3/U78fXhiQLAs+EhFIeyPRKFqM6PUkZe1IzXvxrBukybPJ0jsGY1v375ypWM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781688653; 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=QMsQR2U5brjtKAtTpmkPnvwCIP0z0Kfacg+eux8Vc3U=; b=PRz0GmwK5zRc0zm+RAjkusyT+R6+zYtu6LD2FMBRNxfBn6wGy7NlH4B+bhFRimynB1xFp2f/rlMBn/+biJFvrQZO6WuG9zuwLN8uskGbhVRVmQAJRqR3sPbGo5Vl/NBahS45XBMcp35n1nyz2AqLfm1zi0CpSjs7talY1FdRaBM= 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 17816886536541016.9684158947392; Wed, 17 Jun 2026 02:30:53 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1339963.1601006 (Exim 4.92) (envelope-from ) id 1wZmbX-0000YQ-4I; Wed, 17 Jun 2026 09:30:39 +0000 Received: by outflank-mailman (output) from mailman id 1339963.1601006; Wed, 17 Jun 2026 09:30:39 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wZmbX-0000YJ-1W; Wed, 17 Jun 2026 09:30:39 +0000 Received: by outflank-mailman (input) for mailman id 1339963; Wed, 17 Jun 2026 09:30:38 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) id 1wZmbW-0000Y5-27 for xen-devel@lists.xenproject.org; Wed, 17 Jun 2026 09:30:38 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wZmbV-002rom-F8 for xen-devel@lists.xenproject.org; Wed, 17 Jun 2026 11:30:37 +0200 Received: from [10.42.69.9] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a326939-2eae-0a2a0a5409dd-0a2a4509dc18-28 for ; Wed, 17 Jun 2026 11:30:37 +0200 Received: from [209.85.221.53] (helo=mail-wr1-f53.google.com) by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a32693d-2497-0a2a45090019-d155dd35d452-3 for ; Wed, 17 Jun 2026 11:30:37 +0200 Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-45ef29c5561so2984754f8f.0 for ; Wed, 17 Jun 2026 02:30:37 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-46289c3b3a3sm4317389f8f.30.2026.06.17.02.30.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 17 Jun 2026 02:30: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=1781688637; x=1782293437; 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=QMsQR2U5brjtKAtTpmkPnvwCIP0z0Kfacg+eux8Vc3U=; b=OgMyCOTMz4/ere7pEoLh5ooQHPaAlodxq05G4u8fDsFqKj7z9CZkY90X+iqMTXu5gx exvqTaTYCiGQTlpR/dMxRMdzO0zWMRkZR6IBPT4LQAW4bZVnrqq1k1BwgYREE2eWu+TA 9lEyC0krFYO/XFIveM4ZdyJVuv2QfFkWE6y7cyPOiMbs9Cg3TJ+YuKFA13YavXbvO25b wqoEg1+v5W/4T4jDjxk8/AmDQIrdzEEmKHzLWCp53GkQTeP1yyHaOx3LHXJ9DEcTOl8a 6DG72VHxfu9t6310Yb6aMoFIfXeOmC8HSytNmCXPwgJ9tDyLGj0K0aZ5nI5CX/whZfvK 8jzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781688637; x=1782293437; 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=QMsQR2U5brjtKAtTpmkPnvwCIP0z0Kfacg+eux8Vc3U=; b=ffgAYsrDTOGOA7C57cUqk7HSidxC1xdVqxZkMfai+ROCdBiIYzH7oqa4U32ZmJm1UV VWWcyprPv2eE5to3OPV3XRIjKLu6fWbXlYopuqDfqBO/jg2AqH/2MM2CbkVorKNvJAlz rfcBGhGLaFtqkjkifmS7qZL5pUnuldENuBiaEVAuhDQROyWoLmZJVW/MjKn+a8HJxr7c LPSjCicAjUQJZWqmCDUqWE6e8apkIHvkWJ1sBju67euDjUn5ndqgNE4Ayk6DZcNJDa7a YkIWhdWevV5NkH5soUeUWWWjaCKI2Jf7LBk6lXwSsXiG6w+owvEVeiO8lHj1hm4W5E3A sUcw== X-Gm-Message-State: AOJu0YzBS0BRYajj8FB4Gx1Vt18MxjLXvp0V8m30UdfezofU4xIVR4Rx Aft8S45V9uL15dDzL03s2sogxdkf3Yg6UwwfShpL6d5ffliWEpsP6OgNQbBC4RjO65g2aI54Lhi OpL4= X-Gm-Gg: AfdE7ck0ZKrPORDVPmveZ8b8DkZGQPs47+t6pTWf+HAx03RmHmZir8LQz2IcvaSvaol 0bR+/kChAPkN3adTaPgcEcxv2izNhPVIMg6+8PiIPo+LYoa5Ho9NY5DTFPun9WzXa8xGGp2ouW0 UhMbQclBPdywmCcJnQMhWNIGP7Mn1MK041DTVa7XxppqIbzWA6H0PZ32IiCvcr5hgZOwZfEBIjN Z4p8kd0eIhg+I3h1I4xG6cQiMq9n0xASbcJlA4gFPlEhnm6QTB8Zxa9eIVDXpeadFdWR0aA4nRW DoHmaFsjRoMkTTdSgf5+NPtbjaxspyn/cyd1r1e/DznvYZ/uJI3XCpWw8YZS17fUtKqb+LfAA9c 0RT2Q+1FcEhty5SMvDcBvY1kUdswpZIs/fbMdouraMGPxGENkoANXySjTrCQVVntKARBvWkNeHx YA2hzcesMfcy4U+0i4qHz+Z1co5ZNdsi0bTYmWqsSqNIV/257zheZvoiEDthRgCjjK5MmasBRY9 W00 X-Received: by 2002:a05:6000:1889:b0:45e:f31a:7ae6 with SMTP id ffacd0b85a97d-46238f97e32mr5361656f8f.30.1781688636626; Wed, 17 Jun 2026 02:30:36 -0700 (PDT) Message-ID: <0446485d-353c-44c6-bf23-7fd373282476@suse.com> Date: Wed, 17 Jun 2026 11:30:35 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 for-4.22? 7/7] 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-bad1c0/1781688637-40762A53-7867D809/10/73395122804 X-purgate-type: spam X-purgate-size: 2183 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1781688655701158500 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. Fixes: 192c4dabc344 ("domctl and p2m changes for PCI passthru") Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 Release-Acked-by: Oleksii Kurochko --- v2: Re-base over change to earlier patch. --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -728,12 +728,14 @@ long arch_do_domctl( "ioport_map:remove: %pd gport=3D%x mport=3D%x nr=3D%x\n= ", d, 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); @@ -746,14 +748,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 )