From 664c50a1c65feba10c6f7aac493a8950c8176ce6 Mon Sep 17 00:00:00 2001 From: Fiona Ebner Date: Thu, 27 Feb 2025 15:30:16 +0100 Subject: [PATCH] hotplug pending: disallow deleting tpmstate and efidisk from configuration When the VM is running, after deleting the tpmstate from the configuration, the TPM drive will still be active, because it is used by swtpm and QEMU will still have the TPM socket. Also, a subsequent live migration will fail, because the commandline for the target instance does not match the one for the source: > kvm: Unknown ramblock "tpm-ppi", cannot accept migration For efidisk, hotunplug would already fail with > can't unplug device 'efidisk0' but it's better to catch this early and queue the change as pending instead. For modifying the 'tpmstate0' and 'efidisk0' options, there are already checks to disallow live changes. Signed-off-by: Fiona Ebner --- PVE/QemuServer.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 9d06ac8b..b6fc1f17 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -4886,7 +4886,8 @@ sub vmconfig_hotplug_pending { PVE::Network::SDN::Vnets::del_ips_from_mac($net->{bridge}, $net->{macaddr}, $conf->{name}); } } elsif (is_valid_drivename($opt)) { - die "skip\n" if !$hotplug_features->{disk} || $opt =~ m/(ide|sata)(\d+)/; + die "skip\n" + if !$hotplug_features->{disk} || $opt =~ m/(efidisk|ide|sata|tpmstate)(\d+)/; vm_deviceunplug($vmid, $conf, $opt); vmconfig_delete_or_detach_drive($vmid, $storecfg, $conf, $opt, $force); } elsif ($opt =~ m/^memory$/) {