From nobody Sat May 23 21:00: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=1779376545; cv=none; d=zohomail.com; s=zohoarc; b=iueQqM4ctZ5lWBNmoZTQyPlBC7n/1U2vL68maxMSU/pio7qMMzxE/CR+eZRe03hWXLh3qTAoBsQFw1H0Ho9vrp3wjkKa+Xr6ZMicmPUsQXx2hxfpxHkEx8rfcRhJoiOMt9VeVHDoZhjn2jDiqrKk7SEOGScTSGW9Xe1MTf0z38g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779376545; 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=zvnwyGfWO+aykVDdTfFo9jZYML1o5FaJFSxKnq9Hzn4=; b=PKJYu7naK1r+rlv+s9zhf2frOIepik8HO59c/MX+Xb88s5RtFkb32RYWPT/9ATXKBZihyF3JTyOv2B0WLEsoKCmhxOG5nCrDWN9YrTnzjH2k0bwxYs0kl3UJKUOJmM2jE4jjKDj5nljUGDkdOMJW1mQqevzaGDZ9uJNG6RI4IA0= 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 177937654595564.28958486377871; Thu, 21 May 2026 08:15:45 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1315348.1585149 (Exim 4.92) (envelope-from ) id 1wQ57X-0000c1-85; Thu, 21 May 2026 15:15:35 +0000 Received: by outflank-mailman (output) from mailman id 1315348.1585149; Thu, 21 May 2026 15:15:35 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wQ57X-0000bu-55; Thu, 21 May 2026 15:15:35 +0000 Received: by outflank-mailman (input) for mailman id 1315348; Thu, 21 May 2026 15:15:34 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wQ57V-0000bk-Rh for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:15:33 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wQ57V-0034aG-8K for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:15:33 +0200 Received: from [10.42.69.9] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a0f2177-e002-0a2a0a5209dd-0a2a45098682-46 for ; Thu, 21 May 2026 17:15:33 +0200 Received: from [209.85.221.42] (helo=mail-wr1-f42.google.com) by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a0f2194-2497-0a2a45090019-d155dd2ab115-3 for ; Thu, 21 May 2026 17:15:32 +0200 Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-45ea19f412aso781019f8f.3 for ; Thu, 21 May 2026 08:15:32 -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-45eaa756d61sm3580079f8f.0.2026.05.21.08.15.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 May 2026 08:15:31 -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=1779376532; x=1779981332; 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=zvnwyGfWO+aykVDdTfFo9jZYML1o5FaJFSxKnq9Hzn4=; b=aBn1uyVoPp4b2+wqaKqJOveD4ILEPhHKNlOBYOXh24Kr7O9ouKUWeV8qxAIbLT/rm5 GLMiYGhbF4lD8BAnPVNMsdDinCyLTGZNu0xuBmZLGgxb7HsM0KYxceadpvoaZ08UjHt6 yiKnkvVhYsMkqvh4RYtV3cS12kkwYPRS18s1F3SHDoVtxG/ENJ2xEFpXJ67UvcfJu2ua HazSs5lqI1ret2YIDb+MdLEfnI7kF61+nq3eWOPa88Joi4i9NrJP5m9xBUvv/k6KmPJ2 8txUxQZUCmA+XlStu4lSSCDNDRt2OkxRd5tdNKHomYQNAzGDWjv3nNfwMXjcinuq1HQm EKXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779376532; x=1779981332; 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=zvnwyGfWO+aykVDdTfFo9jZYML1o5FaJFSxKnq9Hzn4=; b=SPQF52GUCbZHMBmVW3ZWXINbADH5cqHnvxcH6yQ6HQ0DdHdMMFduxFHxP2xUjxQ/7A oqgaRaYwdNYMzZJc8G2xX1hHJ0RTsuzRuuKzqQnUFK9LFYM3VmWSoZzVtvBrQCby/xAe x/CSimEbnl0L9fTVz++fXtFxXYbEYjgwL9Qv0+hNYbZz3GNVUp2H7njFvqMOtGuxQoQk 3CiVArQncnle66JMfO16ijHQRYyXNPY0JsHyMHB0TAOmzThk2iNWZcRWxe+b1h4m0txe 1x7fC1lkZ+vsGPuJxCzn3zl0zpdrLwYFK+XBL6g/smI5JKyfAYFGMKANEgcR7qvWYYYN w+eA== X-Gm-Message-State: AOJu0YxUz0HJZiuTsKsHAKkaOvOJ4RBFCksStVslbumynBZ5UEiaACf1 I0cy68bVSE37TduPoORXHBwZEDH4HPcoTBp48R3NbTLlSo5QOv7UvKU2GlKzq+ubukiSDvPi2dD yqBg= X-Gm-Gg: Acq92OH88Uua0Vo+UJdx4QjOT4l+KUNTHYshS3qcNbUf+rhZSjQ/Uc9t8BeWH2ywuBL CEx3YfgcZZBxoN/+B4AaHcQ0Xlm0vEQBrx/GimHj5kCMx58fV44D4VFmPb6K+dT8AF3Bn2dQYtS rOO4u8n8zgofQRSrUqv1K4PeVsnsmYOzFR9Y159svgOhG31QUkVwSzPZt3U/6C0KIyl0Yrk1s/F PtDgMERZxjvspRJthR8kU5Jer31RNsUf5Zm9eRVm6yPY1ZDSLwkmS20Hairb0XwkvfHiMArKk04 H6iqDedDuOImbCThieu9KB1T9+NqSG/oE/ucQUbRqvdhUo356nmmkXMP4WTx19SnAS/bG1B5tIU VVM4LxV/XmxMwt8eDdZNlO4gXLFpxY/QjXqkgT9p8MvOCyQ/gThr1TwnIG6WVVTLszI42gbWQ/r Vfq3ITOWTc6SZCIic2Zdmjx3eREqUBaDGe05itiZ679aLuPXiDCoicpYThqQPrlADkijTuSb0XT QzsXmkRDHhPuZ4= X-Received: by 2002:a05:6000:41e5:b0:45e:a19f:22e4 with SMTP id ffacd0b85a97d-45ea3ef2dc8mr5634208f8f.17.1779376532074; Thu, 21 May 2026 08:15:32 -0700 (PDT) Message-ID: Date: Thu, 21 May 2026 17:15:31 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 1/4] x86/shadow: split get_unsafe() invocations From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Teddy Astie References: <738daea9-ebec-4299-b0f9-49448293106d@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <738daea9-ebec-4299-b0f9-49448293106d@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-bad1c0/1779376532-8B790A53-F1F82B1D/0/0 X-purgate-type: clean X-purgate-size: 4442 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1779376548734154100 Content-Type: text/plain; charset="utf-8" Misra C:2012 rule 13.6 takes issue with is_hvm_vcpu() uses (deep) inside sizeof(), as used by get_unsafe(). While sh_linear_l1_table() doesn't involve is_hvm_vcpu(), the rule there kicks in for "call to function `__builtin_expect(long, long)' (unevaluated `nothrow' call effect)". Break out the address calculations. This, overall, turns out to also improve generated code (with gcc15 at least). No functional change intended. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -2197,16 +2197,19 @@ static int cf_check sh_page_fault( #if (SHADOW_OPTIMIZATIONS & SHOPT_FAST_FAULT_PATH) if ( (regs->error_code & PFEC_reserved_bit) ) { + const shadow_l1e_t *psl1e; + #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC) /* First, need to check that this isn't an out-of-sync * shadow l1e. If it is, we fall back to the slow path, which * will sync it up again. */ { shadow_l2e_t sl2e; + const shadow_l2e_t *psl2e =3D sh_linear_l2_table(v) + + shadow_l2_linear_offset(va); mfn_t gl1mfn; - if ( (get_unsafe(sl2e, - (sh_linear_l2_table(v) + - shadow_l2_linear_offset(va))) !=3D 0) + + if ( (get_unsafe(sl2e, psl2e) !=3D 0) || !(shadow_l2e_get_flags(sl2e) & _PAGE_PRESENT) || !mfn_valid(gl1mfn =3D backpointer(mfn_to_page( shadow_l2e_get_mfn(sl2e)))) @@ -2222,9 +2225,8 @@ static int cf_check sh_page_fault( #endif /* SHOPT_OUT_OF_SYNC */ /* The only reasons for reserved bits to be set in shadow entries * are the two "magic" shadow_l1e entries. */ - if ( likely((get_unsafe(sl1e, - (sh_linear_l1_table(v) + - shadow_l1_linear_offset(va))) =3D=3D 0) + psl1e =3D sh_linear_l1_table(v) + shadow_l1_linear_offset(va); + if ( likely((get_unsafe(sl1e, psl1e) =3D=3D 0) && sh_l1e_is_magic(sl1e)) ) { =20 @@ -2879,6 +2881,7 @@ static bool cf_check sh_invlpg(struct vc { mfn_t sl1mfn; shadow_l2e_t sl2e; + const shadow_l2e_t *psl2e; =20 perfc_incr(shadow_invlpg); =20 @@ -2897,6 +2900,9 @@ static bool cf_check sh_invlpg(struct vc #if SHADOW_PAGING_LEVELS =3D=3D 4 { shadow_l3e_t sl3e; + const shadow_l3e_t *psl3e =3D sh_linear_l3_table(v) + + shadow_l3_linear_offset(linear); + if ( !(shadow_l4e_get_flags( sh_linear_l4_table(v)[shadow_l4_linear_offset(linear)]) & _PAGE_PRESENT) ) @@ -2904,9 +2910,7 @@ static bool cf_check sh_invlpg(struct vc /* This must still be a copy-from-unsafe because we don't have the * paging lock, and the higher-level shadows might disappear * under our feet. */ - if ( get_unsafe(sl3e, - (sh_linear_l3_table(v) + - shadow_l3_linear_offset(linear))) !=3D 0 ) + if ( get_unsafe(sl3e, psl3e) !=3D 0 ) { perfc_incr(shadow_invlpg_fault); return false; @@ -2925,9 +2929,8 @@ static bool cf_check sh_invlpg(struct vc =20 /* This must still be a copy-from-unsafe because we don't have the sha= dow * lock, and the higher-level shadows might disappear under our feet. = */ - if ( get_unsafe(sl2e, - (sh_linear_l2_table(v) + - shadow_l2_linear_offset(linear))) !=3D 0 ) + psl2e =3D sh_linear_l2_table(v) + shadow_l2_linear_offset(linear); + if ( get_unsafe(sl2e, psl2e) !=3D 0 ) { perfc_incr(shadow_invlpg_fault); return false; @@ -2968,9 +2971,7 @@ static bool cf_check sh_invlpg(struct vc * have the paging lock last time we checked, and the * higher-level shadows might have disappeared under our * feet. */ - if ( get_unsafe(sl2e, - (sh_linear_l2_table(v) + - shadow_l2_linear_offset(linear))) !=3D 0 ) + if ( get_unsafe(sl2e, psl2e) !=3D 0 ) { perfc_incr(shadow_invlpg_fault); paging_unlock(d); From nobody Sat May 23 21:00: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=1779376570; cv=none; d=zohomail.com; s=zohoarc; b=ZpXPTrIQQ+48sYdwf7faXM0IyrfkJU6VOl/si9k7s4sSNQYpI8xpnYebUqZmSNOnXi6Jrg9d9hAT9BKjxvDQTkOowLSoJkIdfj4D8wz7/be1B6t5/z3QbHK4FmrveIxmMuSztzCKv0qC5JP4/YS/o8+7TSmmCwtKVtjsfH3n8m0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779376570; 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=e9nzObur1F+0YwQCb6VhkGWkPYh337ms8dSLVHnK8/g=; b=aOtD3mgtVElTy6vo6uGo0HUmg7vSDSW21wAPqkWMvPLr46Z/8smicGjrmq1a2fn6rUZi2X6WIjqEceCJsDX/RMiWg/hHxDBcwUT2LmfiN/Dvq2yOBLoYJrfHqLADbxx6JBcvAf3uDgH77rTAdOR8IfdhF5OD60Mtrjl59PlaSQM= 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 1779376570804512.1294282376416; Thu, 21 May 2026 08:16:10 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1315350.1585159 (Exim 4.92) (envelope-from ) id 1wQ57q-0000yp-G7; Thu, 21 May 2026 15:15:54 +0000 Received: by outflank-mailman (output) from mailman id 1315350.1585159; Thu, 21 May 2026 15:15:54 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wQ57q-0000yP-Bs; Thu, 21 May 2026 15:15:54 +0000 Received: by outflank-mailman (input) for mailman id 1315350; Thu, 21 May 2026 15:15:52 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wQ57o-0000wa-MI for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:15:52 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wQ57o-003RkT-2S for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:15:52 +0200 Received: from [10.42.69.6] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a0f21a1-5cb7-0a2a0a5109dd-0a2a4506e020-24 for ; Thu, 21 May 2026 17:15:52 +0200 Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com) by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a0f21a7-7371-0a2a45060019-d155802adcd2-3 for ; Thu, 21 May 2026 17:15:52 +0200 Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-48909558b3aso64242765e9.0 for ; Thu, 21 May 2026 08:15:51 -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-49033d44705sm66282045e9.4.2026.05.21.08.15.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 May 2026 08:15: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=1779376551; x=1779981351; 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=e9nzObur1F+0YwQCb6VhkGWkPYh337ms8dSLVHnK8/g=; b=BeKLZX7ZXrauQCVGn9sXH84rl2NRsW/wVif+S5VD/UkvBRea52t+b71bF3nATntSAt cWUXUW9PjeSoCPklrNLy3jOaWDS1Q02CSmO749kLUtBYffEs4syz93W75qmhPZpw4Pw7 BMChFHVP3BYMPytDIx9ZoTk6rSU1uNJwyFlh2gmpfbWbkA41G7eY1aYDClihU1e5UB5V KTk0EAWnRmrwJK4yS2xAqIK1Bg6/3UctMPNIgUk4ENmZQsjalAWCNX1fztbrYcANmfdK cwoIQmh6irfeqsYrkrhz6KEnGWSva+jNK/3kpjz3bZL1uOvpN7cCuB0liGTlip62Qxhf wyCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779376551; x=1779981351; 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=e9nzObur1F+0YwQCb6VhkGWkPYh337ms8dSLVHnK8/g=; b=ic56ntJm9QTMA5hzyWiMJThjskw1zyppxaEuDQha+wQ71lYdBYEwuNWnVQIzMuTlZa mQ5dSZAEBm5DQpr1omT3tZt95qcfUVh9H9bnUCxlrO7z8b1gddrIdmOBEPgmbHyl4aXA 80QGDsyDjoxSxOXSdrVzkcvEsJPjR/CPMGOFxTgFHlLDQbPoa++nXKDyqq8tw5ZNrvcb nDwxX3pcCR1m1D0b9CmrB0M+BFSB4TEZbui3PhhR5cYaX5GQKZzXVG6TbfbE+IkCAEmN aRzaQv8kgWpTLLvSDdmqMfNkyywcnBxsvCqfFC8pnJdzWBT54ILDKAJTHtnAp2Pxyr9n aw7Q== X-Gm-Message-State: AOJu0Yx44pZToT/OQZbvwgAzV1cMogN/8Vk2k6aOycNmu/ddfydx1EL8 M4QnOqSL1nu4bGzDX1anuq3AvzH3UcDFC1lryZlb4nYI06kyUThjU+Ni2qGajdVybKSshjw4xVz I79U= X-Gm-Gg: Acq92OHDJZQ//GjLbUB0e6pqrtA+yy8SQUY0ksVncnfey8xFwSKZCG1AqFgQ9l04gPI wn8Wj8KVtM7YWgxZ9s7cd/UkwliNqmB3prBbQ8mQ9S+cvKNjLOlnWpNCHNebTIrDoTIavR7jcaY GZsO19a3rBGxc9Cf3tTQ6CH02/g9//cFzsRofl9gX4PCl4jv4SNgpJusjrz3nJCJwphW90/9A6v KQ1GRonVtdb035OBHSEAxxXVkJVioBY6r2SZpFy1WIC+MoK3Qx/hw4GpotSWTK67Vrl7SA4OBZy /nrAxvBOyD91Q36zna093kecAAM8uN27u5MzX/N4TjBNhw+5Af+wCa9UXiZwtyW3W3gftpgE+0k g517nn5RXqguiTEADDB2DAryDmWxY6+J8Dwd5WZzxp1jncw+pYpiURxQVMMmzeVXi+0BHSzEkoU 3PCd/IJndWZLjA87NJuH8lUj9/7nfhldk13Bw5HqnjzWfF8ui9AP+pN+FPeK/OkM8kTEUyRxATL 5M7kNnxRXvyYuJQ3cvqQqaHAA== X-Received: by 2002:a05:600c:81c9:b0:490:3cec:52f5 with SMTP id 5b1f17b1804b1-4903cec55f5mr29327415e9.2.1779376551501; Thu, 21 May 2026 08:15:51 -0700 (PDT) Message-ID: <3e70e912-cb57-42ba-88a9-45e9e3ebab49@suse.com> Date: Thu, 21 May 2026 17:15:50 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 2/4] x86/shadow: avoid sizeof(this_cpu(...)) From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Teddy Astie References: <738daea9-ebec-4299-b0f9-49448293106d@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <738daea9-ebec-4299-b0f9-49448293106d@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-16d1c6/1779376552-7F77FD75-61876E58/0/0 X-purgate-type: clean X-purgate-size: 1607 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1779376573035154100 Content-Type: text/plain; charset="utf-8" Misra C:2012 rule 13.6 takes issue with RELOC_HIDE() uses inside sizeof(), as used by this_cpu(). Latch the address of the per-CPU variable into a local variable, and use that in the two sizeof(). No difference in generated code for 2- and 4-level code. There's a small improvement for the 3-level case. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -2057,22 +2057,24 @@ static DEFINE_PER_CPU(guest_l1e_t, trace static void cf_check trace_emulate_write_val( const void *ptr, unsigned long vaddr, const void *src, unsigned int by= tes) { - if ( bytes > sizeof(this_cpu(trace_emulate_write_val)) ) - bytes =3D sizeof(this_cpu(trace_emulate_write_val)); + guest_l1e_t *pval =3D &this_cpu(trace_emulate_write_val); + + if ( bytes > sizeof(*pval) ) + bytes =3D sizeof(*pval); =20 #if GUEST_PAGING_LEVELS =3D=3D 3 if ( vaddr =3D=3D this_cpu(trace_emulate_initial_va) ) - memcpy(&this_cpu(trace_emulate_write_val), src, bytes); + memcpy(pval, src, bytes); else if ( (vaddr & ~(GUEST_PTE_SIZE - 1)) =3D=3D this_cpu(trace_emulate_initial_va) ) { TRACE_SHADOW_PATH_FLAG(TRCE_SFLAG_EMULATE_FULL_PT); - memcpy(&this_cpu(trace_emulate_write_val), + memcpy(pval, (typeof(ptr))((unsigned long)ptr & ~(GUEST_PTE_SIZE - 1)), GUEST_PTE_SIZE); } #else - memcpy(&this_cpu(trace_emulate_write_val), src, bytes); + memcpy(pval, src, bytes); #endif } #endif /* CONFIG_TRACEBUFFER */ From nobody Sat May 23 21:00: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=1779376589; cv=none; d=zohomail.com; s=zohoarc; b=eupLWzMziq8mOUGI1glIkreGm5cNUowFaMwsNg12rbLdra+wQwXizuOwIk9Flm6YXQG4VaStwqRZrEda0tvx0TWmgHAF2VP7kiIUSbSKu9CtzhxjD0GU+KFSc1+SLf+w2ddHJBFP41zxuWigTvFZQzFEd3sQvJjczPgg/b6DciY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779376589; 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=6bGHdzAN+VK7CfE++mZcONV/aWnaflTw/8Fi0RlMYa8=; b=iT9ekdnxw+Fsgf97+XBk+7AEjtI2Cgmzz7cpNOfqcwMxrL6HdwDfPrfVFCBEq0TQeN2PdgP1z78AGj84lt0hqmVO2KZAGOmUOl4CZvyLp3BxAWCA8uQeVCMH5u7Lk9LrZYhgmwI7hcpwQTgNVO3QTvjcJ7HFQzsQSVAPmwKUuXM= 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 1779376589344481.0474786699814; Thu, 21 May 2026 08:16:29 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1315357.1585168 (Exim 4.92) (envelope-from ) id 1wQ58B-0001TJ-Nm; Thu, 21 May 2026 15:16:15 +0000 Received: by outflank-mailman (output) from mailman id 1315357.1585168; Thu, 21 May 2026 15:16:15 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wQ58B-0001TC-Kq; Thu, 21 May 2026 15:16:15 +0000 Received: by outflank-mailman (input) for mailman id 1315357; Thu, 21 May 2026 15:16:14 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wQ58A-0001Si-IV for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:16:14 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wQ589-003Yqh-VT for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:16:13 +0200 Received: from [10.42.69.3] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a0f21b8-2eae-0a2a0a5409dd-0a2a4503c630-8 for ; Thu, 21 May 2026 17:16:13 +0200 Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com) by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a0f21bd-672d-0a2a45030019-d1558030e4b6-3 for ; Thu, 21 May 2026 17:16:13 +0200 Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-490388fd0dbso7639275e9.0 for ; Thu, 21 May 2026 08:16: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-49035edbe84sm27887945e9.7.2026.05.21.08.16.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 May 2026 08:16: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=1779376573; x=1779981373; 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=6bGHdzAN+VK7CfE++mZcONV/aWnaflTw/8Fi0RlMYa8=; b=MyiA3fb+2kbpc1UugVcAO5G7R5yxAXFbHlM7gc2C8+RvqAYeMd8KvIL/hW36uLVrMq WRHMe8ydoJjf2nUXL5MDeXSWZLUr2JSNJJW7D2UpzJpn59mAJvWojAf+2bTnHV964EZY xl9JXKqmqe73CpAPhqGhTv2728w+uWl+KxGq6SUQKjeRWEx1zLP8XPSR5bfVfmAr0PJh BxcWIeVO34zqoyxT8+VVNkz3kW4FJWp/puiNVt/aR4jJgpOceZhipLyEA+WzOYPhjbNJ B8LQRwDDAm5mPwoBpWjXOR4hPelJKg3TJ3vUsxbqedLYSZGD6L14N5LxJ+XEIDbq35To dI1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779376573; x=1779981373; 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=6bGHdzAN+VK7CfE++mZcONV/aWnaflTw/8Fi0RlMYa8=; b=G/MDXhzolCTtk11clI77qYcA1OtYrxGBx+CM6zszhgL6pzvI1redvrzR5U2h8urCQz fQXKSqzGsATAYvGfGwsLI2V9a5NcnxB3ia1EXn83ylMTUxFWTyTaFMZV8t2ec4uU5yI9 0BfKP3/i8k3Xd8eaxJiJ8Otv4hwd10L+pejzF434UYtGbsx3K7ePEIrUiVMHP+hizgaW DVoKxVRdty/BlGlVpKPwjTlf/PqTY29b31djF9csMm8Rs9OX/jb0veghSLexinAYwjt6 TPOZf7bduzi3bMGnQ5EytKHzDGlDGaAUBn5TpMn0suIVdhqNeNijaiMhLEK0l9uEjJ7d 5Krw== X-Gm-Message-State: AOJu0Yw9Xlv8tXGWSVY+Fm20ySgDzXN2wSyE+wHGw8q03sH3JpYtQDqo UdtS9ca3Fc00K5OBSwG2z8bycupxx2mYtoFp03NaQpKcqFvw76UogAORTP3qssY58mtyJw03eAn kkhY= X-Gm-Gg: Acq92OEjO6WXcjFxVk+F3b/hdSwQIAruTFIRkMaiQdC+mEoBODQsoZU6mm26SlDcesQ xp/b7A0eYnJV7F9tMT85wEXXTVeIPQpKdk1JxUCW9TGATju+PSxRh1YIJQs5z0nlK4VUV2ayCiu gXwM4LYkZsu22O8cC7B3UjY+b78r3moYDhk13ARTeHIAODus4K1raP40B8xxtkHS22mcsvT8ezC jx+6qUOfNJG5rMTkNKiq47HRJM/6niIbkmUtlFdTkIkHdN0UvSjQ3mGmtehVDnIUNaWy7YNTLzY VIoNeyXnScVfaN/xt3S+9YLKBIjqMGV0H0wcymUb47+3GXvlAENvidLyOkvTi1Ff8RwqVo1u0W3 lm9ZS7RTcr8hWDd8pRx77euVzUV86WKkEneMd8JDxYzh5jSPGtWUr7RkFo8YHCg9HqBzV91jSC+ h0VJSFfDPKePRRGfBng6PRcAmuw6l6VboJEB38UfQnabRkFEiiqBMOz+dne+w43RLb5SelWlEAs eBqbAO0r/tnNck= X-Received: by 2002:a05:600c:35c8:b0:490:3d62:f5e1 with SMTP id 5b1f17b1804b1-4903d62f8e7mr24151155e9.22.1779376573232; Thu, 21 May 2026 08:16:13 -0700 (PDT) Message-ID: <80d2e824-e6ae-47c4-ba92-e023129ff209@suse.com> Date: Thu, 21 May 2026 17:16:11 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 3/4] x86/P2M: split a read_atomic() invocation From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Teddy Astie References: <738daea9-ebec-4299-b0f9-49448293106d@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <738daea9-ebec-4299-b0f9-49448293106d@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-33051d/1779376573-40E68938-C04A9F94/0/0 X-purgate-type: clean X-purgate-size: 1122 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1779376591255154100 Content-Type: text/plain; charset="utf-8" Misra C:2012 rule 13.6 takes issue with pfn_to_pdx() and mfn_x() uses (deep) inside sizeof(), as used by read_atomic(). Break out the MFN -> struct page_info * translation. No difference in generated code, except for a line number change. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -1332,6 +1332,7 @@ int set_shared_p2m_entry(struct domain * p2m_access_t a; p2m_type_t ot; mfn_t omfn; + const struct page_info *pg; unsigned long pg_type; =20 if ( !paging_mode_translate(p2m->domain) ) @@ -1345,7 +1346,8 @@ int set_shared_p2m_entry(struct domain * ASSERT(mfn_valid(omfn)); /* Set the m2p entry to invalid only if there are no further type * refs to this page as shared */ - pg_type =3D read_atomic(&(mfn_to_page(omfn)->u.inuse.type_info)); + pg =3D mfn_to_page(omfn); + pg_type =3D read_atomic(&pg->u.inuse.type_info); if ( (pg_type & PGT_count_mask) =3D=3D 0 || (pg_type & PGT_type_mask) !=3D PGT_shared_page ) set_gpfn_from_mfn(mfn_x(omfn), INVALID_M2P_ENTRY); From nobody Sat May 23 21:00: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=1779376618; cv=none; d=zohomail.com; s=zohoarc; b=K+7NCpuc5BjGdpIfHT78h1xTWlZvn6TUHG86MbNaVohiMbnmEZuSKMcbd297JxK/mUquTu5gfg0KnnVT3TjCf4+Gq5nq3/Y7AjzQqSLHS/6S9EFs5cqGOKjkuMXlLCTblJvbcmLmJ3VBTZi1NvINqfd+ko/Q+hCYVqkfLfClHYw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779376618; 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=Ue6MJCifdDmqf3KI6DMAmEDDdKTWNNcG8m4U1J10AgM=; b=W00Qbv+7DHnJIEpWObumHqH28rFk8DES0O1r2u/LT7Mq4cfYIue4zuMKZL4HkeqEi4W9hONJdtT3PO+CS072IN4t6n4xIPf+r8+0kddovzsS4j8AtTfaZGF64ebsjqMUk1gY7+84MKlfYdEs5ewLy5Hxcx4YxkrkXAOJoFOVB6M= 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 1779376618596812.5405444904717; Thu, 21 May 2026 08:16:58 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1315362.1585176 (Exim 4.92) (envelope-from ) id 1wQ58b-00022R-4e; Thu, 21 May 2026 15:16:41 +0000 Received: by outflank-mailman (output) from mailman id 1315362.1585176; Thu, 21 May 2026 15:16: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 1wQ58b-00021e-12; Thu, 21 May 2026 15:16:41 +0000 Received: by outflank-mailman (input) for mailman id 1315362; Thu, 21 May 2026 15:16:40 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wQ58a-00020x-3k for xen-devel@lists.xenproject.org; Thu, 21 May 2026 15:16:40 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wQ58Z-003Z2j-GX for xen-devel@lists.xenproject.org; Thu, 21 May 2026 17:16:39 +0200 Received: from [10.42.69.8] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a0f21bb-2eae-0a2a0a5409dd-0a2a45088aba-42 for ; Thu, 21 May 2026 17:16:39 +0200 Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com) by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a0f21d7-63b5-0a2a45080019-d155dd2dc9cf-3 for ; Thu, 21 May 2026 17:16:39 +0200 Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-44c350a5b87so3873316f8f.3 for ; Thu, 21 May 2026 08:16: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-45eaa93633esm3379919f8f.29.2026.05.21.08.16.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 May 2026 08:16: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=1779376599; x=1779981399; 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=Ue6MJCifdDmqf3KI6DMAmEDDdKTWNNcG8m4U1J10AgM=; b=da/z+UGgduY4k6zmNdPMiSdGUaeU/QK+ikV5dC2cRCvCwOifyopJxV7LNgtvlK5mP7 4aaBRj9SCWlY+PwKJvnBOBpw4mi2C3Lc4qplxZxlidl38D8IBjF8bLxERL7nJt9uZx1z XMvdgEJY9/L7zsMbbKn20LsXVJreIQESBXag8FEjDfvTDanb1pNAfE/yYNKhMTJPFcIn KFqDrqJ1QqDk6IC8rrDJOtE1y4x/3p2ofFdwQv5vNkF4xsXI7l2ppfhQW7lc+bMZlM8+ x4Qv69Zg8cZD1KAAoIasA2qu49FAXDmEF0kGZHmf0X+vK3unPfLHN38FZXDCQ9+2lGYl rtqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779376599; x=1779981399; 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=Ue6MJCifdDmqf3KI6DMAmEDDdKTWNNcG8m4U1J10AgM=; b=o1xItSaCMcdJa+95arABNQjZfI+XH/QrwAFYJnKhvvnHS/4fti4t+aMdspuM/M5A59 aplztgqcnL3qCXbSa5a5m7VH7B3l+Y3u25Ostb8aqolIdrf+oi+8BFasXQ849JYEd+Px ftro2PuTosuGkGs1yW9VXc+XHaRClT96/4b4Ghf64at0j15SFYG5iVcuNC5ntmhUdfO7 vzzXemSY9jY2qq+FYsytK+XRRj8RYY/icmYGsD5niAhUqiW0nhzmLLWowfgd3Ba0SRqT qF2fkM1FFmWqWBG7Nvck70JWgIsdY0zdL7oPeoZWNXFIWUpGhPbDlRyDilO2h/ctZDGp oOTg== X-Gm-Message-State: AOJu0YxtNI8Fj1bjI2sNe/4N4df4kGti/cmgFKY5gBJF60ZZ543K6OfI jwgK9OGS8UurJmZ60Ud5l/+64nISwGlJl3LrHrPxgn5x6+mbGDtCnVda8Swx2BtGLJ3XHdtXB8N OQUs= X-Gm-Gg: Acq92OEKbRcrFAdSSwdUycA3auO+JhVMBPvngZsXNpa4Ojk1qqCUN9l9Grg2L88Ls2z /XeXcFBhUv89D2dTfQp23Rj+vdV0Dji971i1KSTHp/fCKLoXWxcC36irJprHl1f7zU4KHn5J69Q 437yrXOabYiUoakD8A15PJE2Z/7ihKV1Xstz9/GE6jAVECE3ZqRiy/Dq+HcZh7LIlY5muImupc8 YfVS7zq4ZNcB4Cwg+cc8/v12y21Jkg0jt6YuI3nHsEjBshgLMhg7LPNFs+DNsmXSHpBwE+S9E0O H2rOx6RUWU0+jvIeOPP9ATy9qMkNyRzSsGeK4nO41I9V4IB+m/Xnbld28owHeJ+m8dfvvyfX6j+ //BghJrN7gGXM6cFEljVmhhe3yMOx6y4EYQejWRSOcYLRnDGoCeO2knIjuQbgzSolFyahxmnFrx 4nC0oB1+oMRf6QVt91b0VrJxZzSDZXPdzg/fSgZWT99ina+a8qx4TzJcaxBEIT//o3O3Qe31nhG qd1j2a6HCqfum8= X-Received: by 2002:a05:6000:144c:b0:44a:fa76:5193 with SMTP id ffacd0b85a97d-45ea3be6259mr5275958f8f.12.1779376598853; Thu, 21 May 2026 08:16:38 -0700 (PDT) Message-ID: Date: Thu, 21 May 2026 17:16:37 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 4/4] x86/PV: split a get_unsafe() invocation From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Teddy Astie References: <738daea9-ebec-4299-b0f9-49448293106d@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <738daea9-ebec-4299-b0f9-49448293106d@suse.com> Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-c1860d/1779376599-BF57FDB1-E5F5B64C/0/0 X-purgate-type: clean X-purgate-size: 748 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1779376619695158500 Content-Type: text/plain; charset="utf-8" Misra C:2012 rule 13.6 takes issue with the gdt_ldt_desc_ptr() call appearing (deep) inside sizeof(), as used by get_unsafe(). No functional change intended. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- a/xen/arch/x86/pv/emulate.c +++ b/xen/arch/x86/pv/emulate.c @@ -29,8 +29,14 @@ int pv_emul_read_descriptor(unsigned int */ ((sel & 4) && (sel >> 3) >=3D v->arch.pv.ldt_ents) ) desc.b =3D desc.a =3D 0; - else if ( get_unsafe(desc, gdt_ldt_desc_ptr(sel)) ) - return 0; + else + { + const seg_desc_t *pdesc =3D gdt_ldt_desc_ptr(sel); + + if ( get_unsafe(desc, pdesc) ) + return 0; + } + if ( !insn_fetch ) desc.b &=3D ~_SEGMENT_L;