From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [45.144.208.40]) by lore.proxmox.com (Postfix) with ESMTPS id 77F181FF0AA for ; Mon, 07 Sep 2026 14:43:44 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id A852921598; Mon, 07 Sep 2026 14:43:40 +0200 (CEST) From: Dominik Csapak To: pve-devel@lists.proxmox.com Subject: [PATCH qemu-server v2 3/4] pci: don't try to hotplug bridges Date: Mon, 7 Sep 2026 14:41:49 +0200 Message-ID: <20260907124335.2822329-4-d.csapak@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260907124335.2822329-1-d.csapak@proxmox.com> References: <20260907124335.2822329-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.528 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: MW4OROVEQYM7EC4LCD6MFFLLE2ZNBQ6I X-Message-ID-Hash: MW4OROVEQYM7EC4LCD6MFFLLE2ZNBQ6I X-MailFrom: d.csapak@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: While bridges can be hotplugged (on PCI on i440fx), no device can be hotplugged in that afterwards. For that to work the SHPC option would have to be enabled and the guest must support that. Since this is not guaranteed to work and bridges don't show up in our config, this could lead to bridges added that are not represented in the config. To be on the safe side, simply don't allow hotplugging bridges at all. Luckily, the only bridge we ever tried hotplugging (since machine version 2.3) was pci.4 which only houses scsihw2/3/4 at the moment. These are only used for scsiX where X > 13 and only if the scsihw is an LSI controller, so not very likely to occur. This fixes an issue where trying to hotplug a scsi disk with index >=14 on a i440fx machine with an LSI scsi controller would leave the bridge around after failing to add the scsi controller, and the machine would subsequently crash on live migration. Fixes: 2513b862 (fix #2566: increase scsi limit to 31) Signed-off-by: Dominik Csapak --- src/PVE/QemuServer.pm | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm index 149f17be..ab13bc41 100644 --- a/src/PVE/QemuServer.pm +++ b/src/PVE/QemuServer.pm @@ -3992,13 +3992,6 @@ sub vm_deviceplug { warn $@ if $@; die $err; } - } elsif (!$q35 && $deviceid =~ m/^(pci\.)(\d+)$/) { - my $bridgeid = $2; - my $pciaddr = print_pci_addr($deviceid, undef, $arch); - my $devicefull = "pci-bridge,id=pci.$bridgeid,chassis_nr=$bridgeid$pciaddr"; - - qemu_deviceadd($vmid, $devicefull); - qemu_deviceaddverify($vmid, $deviceid); } else { die "can't hotplug device '$deviceid'\n"; } -- 2.47.3