From nobody Fri Oct 23 15:32:31 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=1790768565; cv=none; d=zohomail.com; s=zohoarc; b=dH8d3Q5xNEZDaNW8MUT9OO/GxmR/0dEovTH5LALCVSLv0bR+JVNrH2+yEMD75OMpNNawqRIbfuYrL4VeswoOYxquGSs8TK0knesYLe9L7S5KAVMwuwanH1oFd37COAJjqpZUkglkEbjmNGpy6SL6Q9Xb//BMT6PnaKMtKmVG9IU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790768565; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Wc4Id7cS0Vl1qva52paLmzuuxvowOklXlpG//tZkDsc=; b=iyr2pXAQB8GDrQ0slvWAsSV0UN0F1kUglMHZD5q7tqSmoJ0zjED9mV74AcErud7gnkOoWlp2OLhiuGWQLXAQEogAH1PMf8UqTYj/6mIMC3fMaBL9JHlHALKMy4Pr/D97uUmM2CVn9YBHNI9sVa0Oku4L+U/2R3w0wEAym24gTzU= 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 17907685659213.7740737991642845; Wed, 30 Sep 2026 04:42:45 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1437087.1655850 (Exim 4.92) (envelope-from ) id 1xBshl-0003DY-Vt; Wed, 30 Sep 2026 11:42:33 +0000 Received: by outflank-mailman (output) from mailman id 1437087.1655850; Wed, 30 Sep 2026 11:42:33 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xBshl-0003DR-SD; Wed, 30 Sep 2026 11:42:33 +0000 Received: by outflank-mailman (input) for mailman id 1437087; Wed, 30 Sep 2026 11:42:32 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) id 1xBshk-0003DL-PG for xen-devel@lists.xenproject.org; Wed, 30 Sep 2026 11:42:32 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xBshj-00E96w-Od for xen-devel@lists.xenproject.org; Wed, 30 Sep 2026 13:42:31 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6abcf5a0-2eae-0a2a0a5409dd-0a2a450bc800-20 for ; Wed, 30 Sep 2026 13:42:31 +0200 Received: from [74.125.225.140] (helo=mail-wm2-f12.google.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6abcf5a7-b7e8-0a2a450b0019-4a7de18cbf57-3 for ; Wed, 30 Sep 2026 13:42:31 +0200 Received: by mail-wm2-f12.google.com with SMTP id 5b1f17b1804b1-49ffed768deso11312415e9.1 for ; Wed, 30 Sep 2026 04:42:31 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4a0174f9eaasm52446105e9.10.2026.09.30.04.42.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 30 Sep 2026 04:42:30 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1790768551; x=1791373351; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=Wc4Id7cS0Vl1qva52paLmzuuxvowOklXlpG//tZkDsc=; b=NQDrLh22iXvQlXDbmQVb8x+PesJE/tNcdT4iFNoHYxYzYW7Y1OlaT/CWCRNM3YAvVW 9xINUnwjqgAi1kAEGl/RRR340aY62Ok37kIxWSY4S48sQGDwLv6mWQh3Wm/H400FrSB9 bx7x7uSwLihxIPGl+heflUSOU8uwGWgu3kOrMRJBEQB+n3VRrx5cnrck0mT2K+DQsq2C bFkpCMHajpwJhxgkKS/crqsBlbHuR66rs/5+nbvBkzqfZWGgimuJxPsVlqG9y3gcMbOE NF2oZnMLss544wVhNbWzWIUhBZF6dVH+QrJZ92rquneoDumpNobyU6ZWE/rr/D6R4ZMK xL7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790768551; x=1791373351; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=Wc4Id7cS0Vl1qva52paLmzuuxvowOklXlpG//tZkDsc=; b=r7dhYdLnLaP4MLMj2u5ruK9H1uCuVLH7fnwYNr/7dqZC9vxGxHIZ7oyOWqgZa6tRw5 FzOYlfDurZyTJ6VJY2TDbZ2iF2zvLCcr1o4OaWc1i9MjAGnkfbjU788BnPicEdg6xxZ/ Wgqo8Ip4Edz6Hkrny8OvGAZbKi53yo7JdsfhycgOI4dEH1xbo1QOqdkvO/N6nStOFGZA yJV/q45nWvZZVZ7bHsR81FT/QMpArN3eS/Ove+FhJkJf0Tn055d1jhJ2ALTrGPoBeVTP urWHQSHZFtYNKT5IlB7GwLNTQcOf2EwgPOG02V+oif3TfWNnu3werTCIXJwxEEUFX+X8 ZNqA== X-Gm-Message-State: AFuF++lg+TFwSqhxV+30ec75lnuETycQEokn0yV8Y04o3dc8uHT8joZu 3Qd1vrMwPw29eEis2bJWALi0cPt2kC7Xc5Jl8L5G8r1Y2xrV0hLm8CBU7UOm4+R3NAhj1jfYE7u Dho+KeA== X-Gm-Gg: AYBFou2eJiP9VaKfL6yIb9gDEy1Gq4O7Wt83/Uy/4rHOaJ2YUwDlDujlLrQ+fAV+AZo uuq5CBLfcI7k2nRYiI77oSpAYYb8ymZgVcK09PuqtsoCio1rAjKeB74P3K3n8bzGRguRYzsZlm1 tZhDF/qY79qIOgCN3opU6Da5WkJe5s2/hYiqZ/EuHQNgPIxpSOOv+I6yI2rlBpqwQPzmT3bocwa yrtxqjORXYDCVp++27W9Fy8Ue4wnpkv/OjCpRcJ5n9pYUmUxfesKmA4CEJzz03DEyGEqrMlasoT mE3HcuHE8aLsJMaoZHCLgnpTuyxOXmWtTQWTqT3qJjfe2A1hvWNoB1qhfHXPqU5oZ1d3g39QOOr tUB3NGpkEE4IsirYYIEIiwLLVWiLGW+odmLAY/9ZqFHp7taLYD1oUXrhjcd0B1IpMK81xhYYa1l t1Xwhz/+glp6dkCK33buc9dVsYYbh/Tl6qUkOXS/4nk3UB3RcBK9ep5IyRTGht865U8gP3cocx3 3bY03MvL99mydFq6OsaXZtag60EGcMuZkrAUSx6yVxs8LR84jlUSwHv1vFKgmex X-Received: by 2002:a05:600c:4e04:b0:4a0:1b14:d009 with SMTP id 5b1f17b1804b1-4a01b188d8bmr19534495e9.1.1790768551090; Wed, 30 Sep 2026 04:42:31 -0700 (PDT) Message-ID: Date: Wed, 30 Sep 2026 13:42:29 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 1/5] x86/pass-through: alter locking around pt_irq_{create,destroy}_bind() From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Teddy Astie , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , Julian Vetter 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-42698a/1790768551-A9AC09EA-423AC0A5/10/78276251493 X-purgate-type: spam X-purgate-size: 2321 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1790768568286158500 Content-Type: text/plain; charset="utf-8" The questionable use of pcidevs_lock() there was discussed more than once. It really is pointless: The functions synchronize primarily via the per- domain event lock. They also may already be called with the global PCI devices lock not held: See hvm/vmsi.c:vpci_msi_update(), hvm/vmsi.c:vpci_msi_arch_update(), and hvm/vmsi.c:vpci_msi_disable(). It's merely msixtbl_pt_{,un}register() which require the global or per- domain PCI lock held. Switch to using the latter, which is also sufficient to acquire in read mode. While strictly speaking this is needed only for PT_IRQ_TYPE_MSI, keep it being unconditional. In vioapic_hwdom_map_gsi() also unlock earlier. Signed-off-by: Jan Beulich --- v2: Replace locking rather than dropping it altogether. --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -636,9 +636,9 @@ long arch_do_domctl( ret =3D -EPERM; else if ( is_iommu_enabled(d) ) { - pcidevs_lock(); + read_lock(&d->pci_lock); ret =3D pt_irq_create_bind(d, bind); - pcidevs_unlock(); + read_unlock(&d->pci_lock); =20 if ( ret < 0 ) printk(XENLOG_G_ERR "pt_irq_create_bind failed (%ld) for %= pd\n", @@ -670,9 +670,9 @@ long arch_do_domctl( ret =3D -EPERM; else if ( is_iommu_enabled(d) ) { - pcidevs_lock(); + read_lock(&d->pci_lock); ret =3D pt_irq_destroy_bind(d, bind); - pcidevs_unlock(); + read_unlock(&d->pci_lock); =20 if ( ret < 0 ) printk(XENLOG_G_ERR "pt_irq_destroy_bind failed (%ld) for = %pd\n", --- a/xen/arch/x86/hvm/vioapic.c +++ b/xen/arch/x86/hvm/vioapic.c @@ -197,8 +197,9 @@ static int vioapic_hwdom_map_gsi(unsigne return ret; } =20 - pcidevs_lock(); + read_lock(&currd->pci_lock); ret =3D pt_irq_create_bind(currd, &pt_irq_bind); + read_unlock(&currd->pci_lock); if ( ret ) { gprintk(XENLOG_WARNING, "vioapic: error binding GSI %u: %d\n", @@ -207,7 +208,6 @@ static int vioapic_hwdom_map_gsi(unsigne unmap_domain_pirq(currd, pirq); write_unlock(&currd->event_lock); } - pcidevs_unlock(); =20 return ret; } From nobody Fri Oct 23 15:32:31 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=1790768590; cv=none; d=zohomail.com; s=zohoarc; b=HtEX3Cn88x8HeA37CCe/KaRa/QgSN3Am0fv13fyxXTeCtig6ZJ51HNCKovdemOgcRt0d6Mo07z4prbEpF9BIZdaxfLmaAlG6WkijyPbOUWTk60XYaNx+T3z0MJEoVtk5pGuh3gH3cJIyeWtJOYTga1I+MfOYKWiKQ5G8joNyoMg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790768590; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5gdmPR5YlVqOCU5CBR9lsp1BqWnYuoKLHAZ0V6nDa38=; b=aHZeP26Ax7uyOKQTBH3vFAWoH8RkD+b+FxPlI+C8HYHWkWCuK0GGWBBHTzRZHPaFzRizw54T82q0fWAZtnoIdHqDrvHvmKZUVFhONz9o/JhvWRQiXXQ7/qIdnNSsNBGoELQYyjZxE9hhMr749b0AUnbekn8fUCRTyC4eRWBW010= 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 1790768590970893.1689116925711; Wed, 30 Sep 2026 04:43:10 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1437089.1655858 (Exim 4.92) (envelope-from ) id 1xBsi5-0003W1-6q; Wed, 30 Sep 2026 11:42:53 +0000 Received: by outflank-mailman (output) from mailman id 1437089.1655858; Wed, 30 Sep 2026 11:42:53 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xBsi5-0003Vu-3F; Wed, 30 Sep 2026 11:42:53 +0000 Received: by outflank-mailman (input) for mailman id 1437089; Wed, 30 Sep 2026 11:42:52 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) id 1xBsi4-0003VW-6n for xen-devel@lists.xenproject.org; Wed, 30 Sep 2026 11:42:52 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xBsi3-009UzV-0d for xen-devel@lists.xenproject.org; Wed, 30 Sep 2026 13:42:51 +0200 Received: from [10.42.69.4] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6abcf5af-bab6-0a2a0a5309dd-0a2a4504ae52-32 for ; Wed, 30 Sep 2026 13:42:50 +0200 Received: from [74.125.225.141] (helo=mail-wm2-f13.google.com) by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6abcf5ba-b57f-0a2a45040019-4a7de18dd1ff-3 for ; Wed, 30 Sep 2026 13:42:50 +0200 Received: by mail-wm2-f13.google.com with SMTP id 5b1f17b1804b1-49e83a388f8so38822825e9.1 for ; Wed, 30 Sep 2026 04:42:50 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4a0174e13b6sm53281035e9.4.2026.09.30.04.42.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 30 Sep 2026 04:42:49 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1790768570; x=1791373370; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=5gdmPR5YlVqOCU5CBR9lsp1BqWnYuoKLHAZ0V6nDa38=; b=XJDQeqFNsN05lMVNO9jTanF9OXyzfq1ZyLurpojA9pgpimQBfMKzjcaxm+KhSgvOvY MywMve1M890yf4rGaCR2PoYQD1xsjYuKDYbh01J+OtYAZQsgCqnN3HoLtKVbxT1XqZ8B GcztxigPSmKzxEEd8CpIXYCuvzjwIwE2JPp/DxivHLJlIjHqxjP6OMH7mdY8HkCjnKY5 1zsYA3ySWaocn15H7AY9W2D8QjKbgSD47JoTw4yc618Mel1vfy1YzsgS5LIJl6fwaIrA i2JyAbDfINskFg08Z8IhJOwF83FX1smh/JzqiDdmf7T5KJAWSmdXpS0VNz4OXR5TgfDa xDew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790768570; x=1791373370; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=5gdmPR5YlVqOCU5CBR9lsp1BqWnYuoKLHAZ0V6nDa38=; b=IjEK9BFG49c5in5+uRpMq2vhYHS5J6+IiCoiAB290Oo1AApVtmdo2p5f7PFF6OT5ln fA47kpnRNEhUXml9TQOIb67kKVcRZzf0YRvc0QB+wCJgG1yoiVhNylH+Q2DAoA7wk7Ru TI1a5lYgI2LsmbhoRlyUK+J/LLBC+RkawlOo+EMdoTFkXvZZK7tlGnG8p5PUE9s/KR9k PkwndxyzpvDAu+iAtvcL1gtzBWlVNw/Ph7UO4m8NILec1TKrkv+/jCbGza477LsDY7hu 4rywNw3j4m47dln5Nbl727fZF+WS4MLIMBl6NRSWbOXyyNrvKqSKow3SQQmvNcZLUvZ/ DwGA== X-Gm-Message-State: AFuF++kt25EC2jJxaYgQWob6atizmWbGOTPaqSA9V0BZnnZ+kvE1CJgj XrLn6OlMp3JJQAqoPYjPTwIONXu2c9Wq1eStkJwjMnOWft+qxnUTQ02nASns9kmMl7GokCsfQGh YuTIeaw== X-Gm-Gg: AYBFou3we224q7HGYdUtbKoODDr1BNN/iRf64momgFX0aU3LY2MhMZ9IvcAdGAoZx5y QOIGk1kZDniiOJebeLKuVqPC3f4ZSOdZxuMkX3GFwaBnMIxe/1yv8Vg9p0oWRzVUwD3OLtMLKlO 3ovDDed2qKZbNBIgRnaTvsvezDTyHmcdIo9JaNL3sByq4cT1fyM5FOqlzGgXVBh2BI7x6sEBiPh Keb2OQmJlvRDcD7/CqG/VWhUn/8jgZl1ILkghrLFIX4FRAG1au9b6p9PmKIFIjdN1TQij7Eu2+e WZKg2MLwkCJyhyU0L618ummDsi1i5pve84C7hNRAImyjXn6uu4m/aeb3pTv+ViX86gom7mbS0lF iINWn+rvGVHbbBStmkVI/eTzcehYOBnD5PN57SGeCrkovw9CGVBJHY/moBSWdb63FwYvhWm64yn 1+8Yuo9chQVwnyBurF2bZUjxxEfwbHSKpG95SC8LhqiQ1QKwGtOJhh59y0Ffq/qZw5ASnPVgTGa P8aJs4WiBn5mS018IKiNvUZp79MdirIggSBbnnn9ptNcvzihA3D0TBBW8ep29E= X-Received: by 2002:a05:600c:4512:b0:49f:bd3c:bc1b with SMTP id 5b1f17b1804b1-4a01b00ee5dmr20087515e9.22.1790768570076; Wed, 30 Sep 2026 04:42:50 -0700 (PDT) Message-ID: <1ea52be0-113f-4000-a09b-b850d93c44d3@suse.com> Date: Wed, 30 Sep 2026 13:42:49 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 2/5] x86/vPCI: tighten locking assertions From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Teddy Astie , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= References: Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-ebf023/1790768570-C1ED6B50-A72FCCC4/10/78276251493 X-purgate-type: spam X-purgate-size: 4369 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1790768592357158500 Already when they were introduced, they seemed overly lax. In particular anything invoked solely from vpci_{read,write}() can check that the per- domain PCI r/w lock is held. There's no need to permit the alternative of holding the global PCI devices lock. vpci_msi_arch_update()'s sole call site is update_msi(), which in turn is solely called from write handling hooks. vpci_msi_update(), besides being called from vpci_msi_arch_update() (see above), has two further call sites: - vpci_msi_arch_enable(), called upon control register writes, - vpci_msix_arch_enable_entry(), called solely from update_entry(), which in turn is again called upon control register writes, plus from msix_write(), which read-locks the domain's PCI lock. Both arch_enable functions therefore can also have their assertions adjusted. vpci_msi_disable() is called from - vpci_msi_arch_disable(), called upon control register writes,=20 - vpci_msix_arch_enable_entry(), covered above, - vpci_msix_arch_disable_entry(), called update_entry() (see above) and upon control register writes. Furthermore msixtbl_pt_{,un}register() are solely called from pt_irq_{create,destroy}_bind(), callers of which (create: when using PT_IRQ_TYPE_MSI) acquire the per-domain lock. As not using ASSERT_PDEV_LIST_IS_READ_LOCKED() isn't unusual anymore, drop the comment near the top of vpci_msix_arch_print(). Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 --- v2: Extend to msixtbl_pt_{,un}register(). Drop comment near the top of vpci_msix_arch_print(). --- a/xen/arch/x86/hvm/vmsi.c +++ b/xen/arch/x86/hvm/vmsi.c @@ -621,7 +621,7 @@ int msixtbl_pt_register(struct domain *d struct msixtbl_entry *entry, *new_entry; int r =3D -EINVAL; =20 - ASSERT_PDEV_LIST_IS_READ_LOCKED(d); + ASSERT(rw_is_locked(&d->pci_lock)); ASSERT(rw_is_write_locked(&d->event_lock)); =20 if ( !msixtbl_initialised(d) ) @@ -691,7 +691,7 @@ void msixtbl_pt_unregister(struct domain struct pci_dev *pdev; struct msixtbl_entry *entry; =20 - ASSERT_PDEV_LIST_IS_READ_LOCKED(d); + ASSERT(rw_is_locked(&d->pci_lock)); ASSERT(rw_is_write_locked(&d->event_lock)); =20 if ( !msixtbl_initialised(d) ) @@ -837,7 +837,7 @@ static int vpci_msi_update(const struct { unsigned int i; =20 - ASSERT_PDEV_LIST_IS_READ_LOCKED(pdev->domain); + ASSERT(rw_is_locked(&pdev->domain->pci_lock)); =20 if ( (address & MSI_ADDR_BASE_MASK) !=3D MSI_ADDR_HEADER ) { @@ -878,7 +878,7 @@ void vpci_msi_arch_update(struct vpci_ms int rc; =20 ASSERT(msi->arch.pirq !=3D INVALID_PIRQ); - ASSERT_PDEV_LIST_IS_READ_LOCKED(pdev->domain); + ASSERT(rw_is_locked(&pdev->domain->pci_lock)); =20 for ( i =3D 0; i < msi->vectors && msi->arch.bound; i++ ) { @@ -930,7 +930,8 @@ int vpci_msi_arch_enable(struct vpci_msi int rc; =20 ASSERT(msi->arch.pirq =3D=3D INVALID_PIRQ); - ASSERT_PDEV_LIST_IS_READ_LOCKED(pdev->domain); + ASSERT(rw_is_locked(&pdev->domain->pci_lock)); + rc =3D vpci_msi_enable(pdev, vectors, 0); if ( rc < 0 ) return rc; @@ -948,7 +949,7 @@ static void vpci_msi_disable(const struc unsigned int i; =20 ASSERT(pirq !=3D INVALID_PIRQ); - ASSERT_PDEV_LIST_IS_READ_LOCKED(pdev->domain); + ASSERT(rw_is_locked(&pdev->domain->pci_lock)); =20 for ( i =3D 0; i < nr && bound; i++ ) { @@ -1004,7 +1005,8 @@ int vpci_msix_arch_enable_entry(struct v int rc; =20 ASSERT(entry->arch.pirq =3D=3D INVALID_PIRQ); - ASSERT_PDEV_LIST_IS_READ_LOCKED(pdev->domain); + ASSERT(rw_is_locked(&pdev->domain->pci_lock)); + rc =3D vpci_msi_enable(pdev, vmsix_entry_nr(pdev->vpci->msix, entry), table_base); if ( rc < 0 ) @@ -1044,12 +1046,6 @@ int vpci_msix_arch_print(const struct vp { unsigned int i; =20 - /* - * Assert that pdev_list doesn't change. ASSERT_PDEV_LIST_IS_READ_LOCK= ED - * is not suitable here because it allows either pcidevs_lock() or - * pci_lock to be held, but here we rely on pci_lock being held, not - * pcidevs_lock() (see the transient lock dropping further down). - */ ASSERT(rw_is_locked(&msix->pdev->domain->pci_lock)); ASSERT(spin_is_locked(&msix->pdev->vpci->lock)); =20 From nobody Fri Oct 23 15:32:31 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=1790768608; cv=none; d=zohomail.com; s=zohoarc; b=KSjCSe0N+MZFh/JurQY0vkpQnz6+k+oZqts7VGtFX7Y281mweQ2EXZ3fg4AEfcv4bvMEeRTQUwu6j6OyqZhOgbQC35L1tN2moZvN+lvs9hpllqX69JObpYN5MN0P6clBi0G95v6gESiYs9yPTdeGmV2uyYg+6sIOd1m0Z6vuBkQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790768608; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7UlEPoDDJhLeviLZJAxh1QAj5n/whaugPJ987VD1ywg=; b=RsuNwquTUN4bnFvdEL4DNbMC4OlHjZGvgC+gJByUx+IVukVxZleGwd0EZ9RPdzmdpBmCjridOH2pEcK7UbuHNE7Px7i0IIW/2zkL2YXQpohuhTE2d1bM30t2mqNtZiIe8fu72CuiBuDaYXlbuerrfhvzWi1aPWI0wGt89419Wco= 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 1790768608695407.3083953773237; Wed, 30 Sep 2026 04:43:28 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1437094.1655867 (Exim 4.92) (envelope-from ) id 1xBsiS-00041m-Dg; Wed, 30 Sep 2026 11:43:16 +0000 Received: by outflank-mailman (output) from mailman id 1437094.1655867; Wed, 30 Sep 2026 11:43:16 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xBsiS-00041f-Ax; Wed, 30 Sep 2026 11:43:16 +0000 Received: by outflank-mailman (input) for mailman id 1437094; Wed, 30 Sep 2026 11:43:14 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) id 1xBsiQ-00040A-On for xen-devel@lists.xenproject.org; Wed, 30 Sep 2026 11:43:14 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xBsiQ-00E9Fr-5X for xen-devel@lists.xenproject.org; Wed, 30 Sep 2026 13:43:14 +0200 Received: from [10.42.69.9] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6abcf5c9-2eae-0a2a0a5409dd-0a2a4509ebe6-14 for ; Wed, 30 Sep 2026 13:43:14 +0200 Received: from [74.125.225.140] (helo=mail-wm2-f12.google.com) by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6abcf5d1-be1a-0a2a45090019-4a7de18c8bce-3 for ; Wed, 30 Sep 2026 13:43:14 +0200 Received: by mail-wm2-f12.google.com with SMTP id 5b1f17b1804b1-49ffe281cb1so26269275e9.1 for ; Wed, 30 Sep 2026 04:43:14 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4a01751613dsm47209935e9.3.2026.09.30.04.43.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 30 Sep 2026 04:43:13 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1790768593; x=1791373393; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=7UlEPoDDJhLeviLZJAxh1QAj5n/whaugPJ987VD1ywg=; b=DWw1R7LNLVG10TzIfTgJBIh6FHea0SA/YfQkTis5CAOIbcU15w3GeDo0w0wbxS0KQk ya3clCQn0e4lOVPcqCRDvbEFEYmN7DIJ3jCx07BE9ClGwMrgV4sYBWG35UY4nM0RJXbQ Say2yp7qHQXQC1Bdof4Joz2Gmkr1n29Ha+s0MrhDB/nqv9ZThwKCVnG2+6WnWTQfFWqd LSQX1TTkfZq5SGJNuc5Jeihrzll9V6c2XEAyGvfSVTzg8lolTM6X8mR71Q0fg//ZRplC QftO4/XWP4fWeSqikRD46vAModeT201Q6xh+61bZH8F601d89YqZcdMncIVebURd4dYK Xs8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790768593; x=1791373393; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=7UlEPoDDJhLeviLZJAxh1QAj5n/whaugPJ987VD1ywg=; b=eZ0YH6RM1Oc6mOPYZkPQ//wINEJgL4ifwsdSep24c7FQNGXgu+E2NyNt6oYoebeK14 OQVYThSQBLVM1W6P1zVOVK1P5BLHtEB2VSQNAPcWFPkI7/vtHdhnWI2UqWH3ydgc+nbA cukDEJbXzxmNbR6nPYCews41Sv7IMFbl4hk6X4TW9R3aOUYL8KYh3vr+2doyga12LdJT h0cqYsqTr3LuwHFXoADu+hGuvNUwrZv7ExAAq7m0WHqDzS7icNIcEaiiY8AeoWVDfvNo 9sP719JaAj6Zk15nYeHMshR7c5TiqoQ6oMJ7lf8bjEqkjG2jjM7Z0gItBkb5fR0mkoX/ 0y3Q== X-Gm-Message-State: AFuF++l31Q0bjN8vPxehwliX9lZQhRST5RkVhcEftkSRvtoDU2o4x6O6 CqpUO1VqvKTlqhr/jKPNzcAZwnNeq4RTmEEIR+MmyAuQNec3qRCq5GU2XiZY82d1VlJ4Xe6x5xj VSqDS4g== X-Gm-Gg: AYBFou2RPynz0QkUCP9cRHw5YTTEWFmEELd6WYz5+oQxdY2lV1WMeOy5aHyvmO6Td6w 5REeyeEuJspj7HR5zeRJEyUQ2kqioY78HXTy40wZfFN56DKJQ/FudJfMv4XY3p+vZQ7nSrWAcQA 91NnPgFtdtIFZKC/+62w6ApAO7v8EM1rUS166+mmqiF1yk0IhPe4h3EvU9snlmv7HFw7qejZYJi /ygmI5q26kaUoULc3HczL8D4ASDYum/7LSno4je45p/GGTVvZKZaRhfh9s3g+XneJTyANMVG16U 82tT67Zzraayu1EEftaA/nkU/riW55O/4DN7+BzGxeaTNLXPLvPdABaKFNjxkgJhCjQVlVw7Mra 6Vcv9gKr+Lid2YtcY55G9Oe+Nwg6SU8yrE0xMxWUZWnpmDxV6FpoRE5JpdhkfOKPQygBqV/jMLB t2imCQJj6cNgaAe+cRgzWSLHGxzyfP1n5Ovvjq678EyTkdZSsaaBsweXh/65eNc3Rb2xW+Pg+bL 91YC+k0/Ex/x6/I9aWjsNe/nSx0HkByMroSH+4drOJPsQK6n5YIvNlVjbdBog== X-Received: by 2002:a05:600c:4fcb:b0:4a0:3b9:f16b with SMTP id 5b1f17b1804b1-4a01ab4f2d9mr22071065e9.0.1790768593473; Wed, 30 Sep 2026 04:43:13 -0700 (PDT) Message-ID: Date: Wed, 30 Sep 2026 13:43:12 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 3/5] x86/pass-through: use simpler locking primitives in pt_irq_{create,destroy}_bind() From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Teddy Astie , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= 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/1790768594-3B8D1034-6E5A065A/10/78276251493 X-purgate-type: spam X-purgate-size: 2309 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1790768610379158500 Both functions already assume IRQs to be enabled upon entry, by e.g. their acquiring of the domain's event channel lock. Hence like e.g. hvm_migrate_pirq() (also called from here) does, saving/restoring of EFLAGS.IF isn't necessary (because of the functions called, we can't really avoid the saving there). Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 --- v2: Add IRQ-s-enabled assertions. --- a/xen/drivers/passthrough/x86/hvm.c +++ b/xen/drivers/passthrough/x86/hvm.c @@ -228,6 +228,8 @@ int pt_irq_create_bind( if ( pirq < 0 || pirq >=3D d->nr_pirqs ) return -EINVAL; =20 + ASSERT(local_irq_is_enabled()); + restart: write_lock(&d->event_lock); =20 @@ -400,8 +402,7 @@ int pt_irq_create_bind( =20 if ( pt_irq_bind->u.msi.gflags & XEN_DOMCTL_VMSI_X86_UNMASKED ) { - unsigned long flags; - struct irq_desc *desc =3D pirq_spin_lock_irq_desc(info, &flags= ); + struct irq_desc *desc =3D pirq_spin_lock_irq_desc(info, NULL); =20 if ( !desc ) { @@ -411,7 +412,7 @@ int pt_irq_create_bind( } =20 guest_mask_msi_irq(desc, false); - spin_unlock_irqrestore(&desc->lock, flags); + spin_unlock_irq(&desc->lock); } =20 write_unlock(&d->event_lock); @@ -588,6 +589,8 @@ int pt_irq_destroy_bind( struct pirq *pirq; const char *what =3D NULL; =20 + ASSERT(local_irq_is_enabled()); + switch ( pt_irq_bind->irq_type ) { case PT_IRQ_TYPE_PCI: @@ -606,9 +609,7 @@ int pt_irq_destroy_bind( break; case PT_IRQ_TYPE_MSI: { - unsigned long flags; - struct irq_desc *desc =3D domain_spin_lock_irq_desc(d, machine_gsi, - &flags); + struct irq_desc *desc =3D domain_spin_lock_irq_desc(d, machine_gsi= , NULL); =20 if ( !desc ) return -EINVAL; @@ -617,7 +618,7 @@ int pt_irq_destroy_bind( * pt_irq_create_bind is consistent across bind/unbinds. */ guest_mask_msi_irq(desc, true); - spin_unlock_irqrestore(&desc->lock, flags); + spin_unlock_irq(&desc->lock); break; } =20 From nobody Fri Oct 23 15:32:31 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=fail; 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=fail(p=quarantine dis=quarantine) header.from=suse.com Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1790768637031127.1590827780268; Wed, 30 Sep 2026 04:43:57 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1437100.1655875 (Exim 4.92) (envelope-from ) id 1xBsin-0004UJ-P4; Wed, 30 Sep 2026 11:43:37 +0000 Received: by outflank-mailman (output) from mailman id 1437100.1655875; Wed, 30 Sep 2026 11:43:37 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xBsin-0004UC-MM; Wed, 30 Sep 2026 11:43:37 +0000 Received: by outflank-mailman (input) for mailman id 1437100; Wed, 30 Sep 2026 11:43:36 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) id 1xBsim-0004Sm-Hn for xen-devel@lists.xenproject.org; Wed, 30 Sep 2026 11:43:36 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xBsil-00C9D3-Ue for xen-devel@lists.xenproject.org; Wed, 30 Sep 2026 13:43:35 +0200 Received: from [10.42.69.3] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6abcf5d8-bab6-0a2a0a5309dd-0a2a4503d83c-44 for ; Wed, 30 Sep 2026 13:43:35 +0200 Received: from [74.125.225.140] (helo=mail-wm2-f12.google.com) by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6abcf5e7-fae8-0a2a45030019-4a7de18cecb7-3 for ; Wed, 30 Sep 2026 13:43:35 +0200 Received: by mail-wm2-f12.google.com with SMTP id 5b1f17b1804b1-49b912d3931so39712315e9.3 for ; Wed, 30 Sep 2026 04:43:35 -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-4a01cd2114esm2701305e9.4.2026.09.30.04.43.34 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 30 Sep 2026 04:43:34 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1790768615; x=1791373415; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=fMP+aMbGTq/QNVUvBxjH4sITe7aOmudxNWIlirIxtN0=; b=Ls/3u0mPvHOxLGwbLloqNtKONR/KZQetO1A7zb1ydc56wtqzCun2UJs4GJ/wbulelm sVcZoZcyVdl75+pM5x919ZPjXM1IkJWkPtJme/cXWbnXwtCyRNyMbq+TxljA81AgPrDL 86J+0kyLTVZk6TmfTfX7kmeIExkWXWkWYmeJ3rIb11yISaBuLh/0o0NUzibIwO8HQpmh Onauc5HnjiqPjB5EXj/TfjhTwhSpHGHfqzaPR9tiI4i8hR9LT6wEJXyPR6esZfTMA+9K W9w+qY1raeXbRtk5doDQOV2DtiznxSPVWjCIbx/aRw8YPkARvIa/NXZQvQk3zNww2dIw Xjdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790768615; x=1791373415; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=fMP+aMbGTq/QNVUvBxjH4sITe7aOmudxNWIlirIxtN0=; b=FftcWVjH1s8oP44m8J+qnW3mnF0eCxKUyitGV74Vv6fW/BCyD0NxFHumdFKFNuKKI/ 6c5Mj/BTqOZ34ZcstY0xKVF74SG/EPVZFYQdK28ZvRbBECk0qGh14X8mKmD3Tz6FFwXb mlqVC3xo5nelT+mo448AVfs9SmdmYPyPae3NdBgj/rvQw/r8Tkq231yalZgr7ZexHIde YMDaLwaDMCfayzLCIPtEjnxPlJz+nMMr2QyEqtRpVT9+DsMH51MsliOpEY4LrWjjcR4w y6WNBYbcxXvtqnZJ/VUn5psBq0PPJT+rmxjLxYJMzBwtPf5167QbzKyjLXjBX3OFKGDR CSPA== X-Gm-Message-State: AFuF++kk1JSkxYBVY5eEu+yEi4Tppb3kvjcHBqutZu9FS11Z0zyD5dAJ EQ/A+sBrs2v1oZ69AsthM56cuWIb1NVWyotCiXN5N0yLap/28Ds57vLHFv/nKgSoK8q9VYr7/qm wABNdFw== X-Gm-Gg: AYBFou1ER9Q80ylQvTs4xcgMMdJgrr35mwnrYYMsAj56GeQSjRIjgfcX7uDQETxiGdA IVO2CzDz6JYkxElHFwHkmoMfbOe+syMgxc8nvgcKfODWHVXm0YeP5WXqIalpD0LxDovVcTOGlWS Rdog3NAS2ONIWuP81fqvf2vGA58wWb6tDjCLpgp04VGSZocXJ//K5JiH1DvogYgMtGqov6AW+Gj UwYRY/5YrEPbB5IhaSon5ee3+EihrVrAXVyI9iK4QkTAm96nMW+1zLMO0qzu/+PrHTGQ+oIatm0 EDFQrYKvurUhOkTFgKVdTYbnRIhKm81tB8xC+QOPgICXPtrY/LruRaLmwPfQxVShAij1OCSDR51 k961vYhe9TR3Cjpw6lmXHzfy9fhuxEg+3MsM5DeuLY8cVdJuiH9lHc05Feohio/hXg+lc69Kja2 AF7eID1VetCIj29j6sodBocXQ6AJSS+pI8tIZWV6GYXWy3N1LZuh+4f8WPIf+Zprg5CKiGaVjJU YMEwYm56fCY7seHClSvubB9hxSUZd2qoGZ8u9xhOAEQTyhRKBa3IXUU1I2jtg== X-Received: by 2002:a05:600c:1c02:b0:4a0:1a18:b748 with SMTP id 5b1f17b1804b1-4a01ad8f197mr19090465e9.4.1790768615216; Wed, 30 Sep 2026 04:43:35 -0700 (PDT) Message-ID: Date: Wed, 30 Sep 2026 13:43:34 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 4/5] x86/vPCI: make better use of "pdev" in vpci_msix_arch_print() From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Teddy Astie , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= References: Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-33051d/1790768615-6F2C84E9-4E7CA957/10/78276251493 X-purgate-type: spam X-purgate-size: 1250 X-ZohoMail-DKIM: fail (Computed bodyhash is different from the expected one) X-ZM-MESSAGEID: 1790768638444158500 Content-Type: text/plain; charset="utf-8" Move the declaration to function scope, so that not only the (so far) immediately following spin_unlock() can make use of it, but also the assertions at the top. Also add const, as the pdev itself isn't supposed to be altered here. Signed-off-by: Jan Beulich --- v2: New. --- a/xen/arch/x86/hvm/vmsi.c +++ b/xen/arch/x86/hvm/vmsi.c @@ -1044,10 +1044,11 @@ void vpci_msix_arch_init_entry(struct vp =20 int vpci_msix_arch_print(const struct vpci_msix *msix) { + const struct pci_dev *pdev =3D msix->pdev; unsigned int i; =20 - ASSERT(rw_is_locked(&msix->pdev->domain->pci_lock)); - ASSERT(spin_is_locked(&msix->pdev->vpci->lock)); + ASSERT(rw_is_locked(&pdev->domain->pci_lock)); + ASSERT(spin_is_locked(&pdev->vpci->lock)); =20 for ( i =3D 0; i < msix->max_entries; i++ ) { @@ -1064,9 +1065,7 @@ int vpci_msix_arch_print(const struct vp entry->masked, entry->arch.pirq); if ( i && !(i % 64) ) { - struct pci_dev *pdev =3D msix->pdev; - - spin_unlock(&msix->pdev->vpci->lock); + spin_unlock(&pdev->vpci->lock); read_unlock(&pdev->domain->pci_lock); process_pending_softirqs(); From nobody Fri Oct 23 15:32:31 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=1790768654; cv=none; d=zohomail.com; s=zohoarc; b=kLF38CCT6TsJNXm6vJi4poL2DBoh99/yqKqCV1J40ADJJo5xK9U8vXGE++YGzvrA7IW4ndgBtN1G9prat0LW0VUmUIIrpINdLJXsunPzFSVjm919jjbo3lN62VOclVh4XOo5QQ0o4S0ZDxNWRblHnMrkGVzyUn/Fg3eICKa6bgM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1790768654; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=CaPadgh2O99L3eeg/IcRZU0pQ+o8BRuKTX7oPZ2SV2Q=; b=bX1pnZoNk28G2q3tByGAfsLOn+nSjCWiTSOSXwJdxfeNur9hAuA3iGS1SIQsjIDrd5A9Fm3PyL4m+NpOxsATNoCw2uJr4k1NmDW2ZGBOst5koMg6JvHmT7ujUzH9t/xsbiA+kEB6aDrWCrM/yNL7r1VPvBYgK0kPkgTdsBI2pEA= 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 1790768654726595.3995343446471; Wed, 30 Sep 2026 04:44:14 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1437106.1655885 (Exim 4.92) (envelope-from ) id 1xBsjC-0004xx-0i; Wed, 30 Sep 2026 11:44:02 +0000 Received: by outflank-mailman (output) from mailman id 1437106.1655885; Wed, 30 Sep 2026 11:44:01 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xBsjB-0004xm-U3; Wed, 30 Sep 2026 11:44:01 +0000 Received: by outflank-mailman (input) for mailman id 1437106; Wed, 30 Sep 2026 11:44:01 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) id 1xBsjB-0004wP-Hl for xen-devel@lists.xenproject.org; Wed, 30 Sep 2026 11:44:01 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xBsjA-00FryG-Ul for xen-devel@lists.xenproject.org; Wed, 30 Sep 2026 13:44:00 +0200 Received: from [10.42.69.10] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6abcf5ff-e002-0a2a0a5209dd-0a2a450aa9f8-6 for ; Wed, 30 Sep 2026 13:44:00 +0200 Received: from [74.125.225.140] (helo=mail-wm2-f12.google.com) by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6abcf600-f2d2-0a2a450a0019-4a7de18cdace-3 for ; Wed, 30 Sep 2026 13:44:00 +0200 Received: by mail-wm2-f12.google.com with SMTP id 5b1f17b1804b1-4a006bb267eso16940505e9.0 for ; Wed, 30 Sep 2026 04:44:00 -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-4a0174d5191sm51546025e9.3.2026.09.30.04.43.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 30 Sep 2026 04:44:00 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Content-Type:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1790768640; x=1791373440; darn=lists.xenproject.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=CaPadgh2O99L3eeg/IcRZU0pQ+o8BRuKTX7oPZ2SV2Q=; b=GNDiCFfCUrqU+ifR5dN6Vl0Zute+FKL/96lQTyI95e/IlpJQsTcydPxUJqi1KB3Gbn dnLAn4qEXbYas6MiZE65n56X5E6tx/JQct6CrX0TvWNRWI4OKbaxA6sE3961hKpIKO4S A1f+xGr9d5UGGEy9UB0EjFs7vCqQGMwg8mjJuYLS7TOLY/ZCKiBmJaoiOhjH7Rh0T5GR 84RCRBeAUesc5kxElTaAtGpSA5gRgB2ol06TbFBwsDew0zqm/kMzHfvCk33klOdMLXoh RUcjKWkBnVBRc1/gFHv9Y314HyHz+EmbqfcZtQlpVQfM4THuvuQyFOlCYUoLbu51nzra EUQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790768640; x=1791373440; h=content-transfer-encoding:content-type:in-reply-to:autocrypt :content-language:references:cc:to:from:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=CaPadgh2O99L3eeg/IcRZU0pQ+o8BRuKTX7oPZ2SV2Q=; b=I5QS0Aoh9cIeI7HBKCha8qBrLjEllM+AI3QG7F2k+U60NcEnZgJgj4EdLFDULyb7/b WgGu0jb0HvwAJN35qje8qjoD46OHgMaZhHecsXRiEVCGCz0KOKGz/kHbUlXDbFL9rsWu KmQxuzOKa/kSZQT7LACH8ckS+ptYvNNH/N2FRRulskh3zqhyOU+V4qm/C9NTFMnWbqw3 OJvqNr4l8eR/RpdjQVc2tk/FSZfHaI7Cb5yLnZz5dz2rJOUJHXiuMKkcwOMQFRKZAMLM MOC3LF8Ch37OChGCpth5aqtqIEDXqXX4Jlmw2ZcVmWUp85rS/DEhaKT0VqK9i+I00iIG s6gQ== X-Gm-Message-State: AFuF++m6Zo5fFWBx8nZPuD4ymIKOyRskhSIWYH9riEaBxLox6njgirDm 4c+m4qA/UgmlrLgh7ei73MpmbYm9LFhHzsbT+MVcFGbw5hmkHNcP+AbBVkiqq9VCW77KVQ49ekN uhl8YrA== X-Gm-Gg: AYBFou0xSidvjgTBA+1Y/PNG4bbVDk/kZ4H2MTxh0ui6higpwQphEnxrJNFtbqqeBDC LrG2cE9o6eqi6+DgPMUiiWz00NJ4vmlUTpF/yIviBwF9KR1u/Qssb1AA65ZeWpzoV3qbWLlrGBg 3i5gFzZ634wB/nCRduNVXD2+ZzBTs2uAuOpigQhzrXM0jobkE+41KsPdvRs0XhfobI1bmjkaWqS PyNLTClNNW6dvtdu245A1KLLjDbtyvTvL/kI+16asL6zMI5aKWfS1Do+8FQDD+kK33mCihU8DZZ lIIO7XGL2rv98V3gFnlYqRB/ossduOKJAatepQLf1EOYV/yhvJhvWzEKFic1rN4we/2G3wHgE03 H7mOeTxV19nKp2nM6Fw3+7Osd6FUPK4XQNqkQAlcjpfPoxyJ/v37eBotRyS5MiF8k9Ts8k/Bkap RIZr5HeUEUA5b5VtdTidWu71CIvuQZS6Yu7xKzbrbnzvG4n0zS2zq9HprSCdSKbk4V/k6Bh3CKX yFfb8qH3Hs/V1g4oB6K8/cwJVZsJ1IMtOmFKPvhhEnQPkUk2/SYZLU3ZAQhZxQ= X-Received: by 2002:a05:600c:4e41:b0:499:bf8c:cfd1 with SMTP id 5b1f17b1804b1-4a01ad901d4mr21407565e9.2.1790768640413; Wed, 30 Sep 2026 04:44:00 -0700 (PDT) Message-ID: <3f19c5e9-d8d2-4752-99a1-b5115c3c862b@suse.com> Date: Wed, 30 Sep 2026 13:43:59 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 5/5] x86/vMSI: avoid "goto" in msixtbl_pt_unregister() From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Teddy Astie , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= 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-4011c0/1790768640-510C9CFC-AA2AAE09/10/78276251493 X-purgate-type: spam X-purgate-size: 1611 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1790768656695158500 Content-Type: text/plain; charset="utf-8" "goto" can be helpful in certain situations, yet where easily possible I think it's better to avoid its use. With the re-arrangement also restrict the scop of two of the local variables, and add const to one of them. No functional changed intended. Signed-off-by: Jan Beulich --- v2: New. --- a/xen/arch/x86/hvm/vmsi.c +++ b/xen/arch/x86/hvm/vmsi.c @@ -688,8 +688,6 @@ void msixtbl_pt_unregister(struct domain { struct irq_desc *irqd; struct msi_desc *msi_desc; - struct pci_dev *pdev; - struct msixtbl_entry *entry; =20 ASSERT(rw_is_locked(&d->pci_lock)); ASSERT(rw_is_write_locked(&d->event_lock)); @@ -702,22 +700,19 @@ void msixtbl_pt_unregister(struct domain return; =20 msi_desc =3D irqd->msi_desc; - if ( !msi_desc ) - goto out; - - pdev =3D msi_desc->dev; - - list_for_each_entry( entry, &d->arch.hvm.msixtbl_list, list ) - if ( pdev =3D=3D entry->pdev ) - goto found; - -out: - spin_unlock_irq(&irqd->lock); - return; - -found: - if ( atomic_dec_and_test(&entry->refcnt) ) - del_msixtbl_entry(entry); + if ( msi_desc ) + { + const struct pci_dev *pdev =3D msi_desc->dev; + struct msixtbl_entry *entry; + + list_for_each_entry( entry, &d->arch.hvm.msixtbl_list, list ) + if ( pdev =3D=3D entry->pdev ) + { + if ( atomic_dec_and_test(&entry->refcnt) ) + del_msixtbl_entry(entry); + break; + } + } =20 spin_unlock_irq(&irqd->lock); }