For aarch64 the default machine is 'virt' already, so we have to consider
this case as well here.

Signed-off-by: Dominik Csapak <[email protected]>
---
we could maybe also just skip this entire function if the arch is not
'x86_64'. Can send a v2 with that if that's preferred.

 src/PVE/QemuServer.pm         | 2 +-
 src/PVE/QemuServer/Machine.pm | 7 +++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm
index dae72c40..5d2dbe03 100644
--- a/src/PVE/QemuServer.pm
+++ b/src/PVE/QemuServer.pm
@@ -3730,7 +3730,7 @@ sub config_to_command {
         push @$machineFlags, 'accel=tcg';
     }
     my $power_state_flags =
-        PVE::QemuServer::Machine::get_power_state_flags($machine_conf, 
$version_guard);
+        PVE::QemuServer::Machine::get_power_state_flags($machine_conf, $arch, 
$version_guard);
     push $cmd->@*, $power_state_flags->@* if defined($power_state_flags);
 
     push @$machineFlags, 'smm=off' if should_disable_smm($conf, $vga, 
$machine_type);
diff --git a/src/PVE/QemuServer/Machine.pm b/src/PVE/QemuServer/Machine.pm
index 93a90c47..c5f0104a 100644
--- a/src/PVE/QemuServer/Machine.pm
+++ b/src/PVE/QemuServer/Machine.pm
@@ -468,9 +468,12 @@ sub check_and_pin_machine_string {
 # disable s3/s4 by default for 9.2+pve1 machine types
 # returns an arrayref of cmdline options for qemu or undef
 sub get_power_state_flags {
-    my ($machine_conf, $version_guard) = @_;
+    my ($machine_conf, $arch, $version_guard) = @_;
 
-    if (defined($machine_conf->{type}) && $machine_conf->{type} =~ /^virt/) {
+    if (
+        defined($machine_conf->{type}) && $machine_conf->{type} =~ /^virt/
+        || !defined($machine_conf->{type}) && $arch eq 'aarch64'
+    ) {
         return; # virt machines are normally ARM64 ones which have no concept 
of s3/s4
     }
 
-- 
2.47.3




Reply via email to