Signed-off-by: Fiona Ebner <f.eb...@proxmox.com> --- src/PVE/QemuServer.pm | 8 +++++--- src/PVE/QemuServer/Blockdev.pm | 13 ++++++++----- src/PVE/QemuServer/OVMF.pm | 5 +++-- 3 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm index d4ad4a25..50352e82 100644 --- a/src/PVE/QemuServer.pm +++ b/src/PVE/QemuServer.pm @@ -3258,6 +3258,7 @@ sub config_to_command { my $hw_info = { 'amd-sev-type' => get_amd_sev_type($conf), arch => $arch, + 'machine-version' => $machine_version, q35 => $q35, }; my ($ovmf_cmd, $ovmf_machine_flags) = PVE::QemuServer::OVMF::print_ovmf_commandline( @@ -3654,7 +3655,7 @@ sub config_to_command { if drive_is_read_only($conf, $drive); my $blockdev = PVE::QemuServer::Blockdev::generate_drive_blockdev( - $storecfg, $drive, $extra_blockdev_options, + $storecfg, $drive, $machine_version, $extra_blockdev_options, ); push @$devices, '-blockdev', to_json($blockdev, { canonical => 1 }); } @@ -7164,8 +7165,9 @@ sub live_import_from_files { if (min_version($machine_version, 10, 0)) { # for the switch to -blockdev my ($interface, $index) = PVE::QemuServer::Drive::parse_drive_interface($dev); my $drive = { file => $volid, interface => $interface, index => $index }; - my $blockdev = - PVE::QemuServer::Blockdev::generate_drive_blockdev($storecfg, $drive, {}); + my $blockdev = PVE::QemuServer::Blockdev::generate_drive_blockdev( + $storecfg, $drive, $machine_version, {}, + ); $live_restore_backing->{$dev}->{blockdev} = $blockdev; } else { $live_restore_backing->{$dev}->{blockdev} = diff --git a/src/PVE/QemuServer/Blockdev.pm b/src/PVE/QemuServer/Blockdev.pm index 334f788b..5f1fdae3 100644 --- a/src/PVE/QemuServer/Blockdev.pm +++ b/src/PVE/QemuServer/Blockdev.pm @@ -238,7 +238,7 @@ my sub generate_blockdev_drive_cache { } my sub generate_file_blockdev { - my ($storecfg, $drive, $options) = @_; + my ($storecfg, $drive, $machine_version, $options) = @_; my $blockdev = {}; my $scfg = undef; @@ -282,7 +282,8 @@ my sub generate_file_blockdev { $storage_opts->{hints}->{'efi-disk'} = 1 if $drive->{interface} eq 'efidisk'; $storage_opts->{'snapshot-name'} = $options->{'snapshot-name'} if defined($options->{'snapshot-name'}); - $blockdev = PVE::Storage::qemu_blockdev_options($storecfg, $volid, $storage_opts); + $blockdev = + PVE::Storage::qemu_blockdev_options($storecfg, $volid, $machine_version, $storage_opts); $scfg = PVE::Storage::storage_config($storecfg, $storeid); } @@ -360,14 +361,14 @@ my sub generate_format_blockdev { } sub generate_drive_blockdev { - my ($storecfg, $drive, $options) = @_; + my ($storecfg, $drive, $machine_version, $options) = @_; my $drive_id = PVE::QemuServer::Drive::get_drive_id($drive); die "generate_drive_blockdev called without volid/path\n" if !$drive->{file}; die "generate_drive_blockdev called with 'none'\n" if $drive->{file} eq 'none'; - my $child = generate_file_blockdev($storecfg, $drive, $options); + my $child = generate_file_blockdev($storecfg, $drive, $machine_version, $options); if (!is_nbd($drive)) { $child = generate_format_blockdev($storecfg, $drive, $child, $options); } @@ -477,7 +478,9 @@ state image. sub attach { my ($storecfg, $vmid, $drive, $options) = @_; - my $blockdev = generate_drive_blockdev($storecfg, $drive, $options); + my $machine_version = PVE::QemuServer::Machine::get_current_qemu_machine($vmid); + + my $blockdev = generate_drive_blockdev($storecfg, $drive, $machine_version, $options); my $throttle_group_id; if (parse_top_node_name($blockdev->{'node-name'})) { # device top nodes need a throttle group diff --git a/src/PVE/QemuServer/OVMF.pm b/src/PVE/QemuServer/OVMF.pm index a7239614..aa21c40c 100644 --- a/src/PVE/QemuServer/OVMF.pm +++ b/src/PVE/QemuServer/OVMF.pm @@ -147,7 +147,8 @@ sub create_efidisk($$$$$$$$) { my sub generate_ovmf_blockdev { my ($conf, $storecfg, $vmid, $hw_info) = @_; - my ($amd_sev_type, $arch, $q35) = $hw_info->@{qw(amd-sev-type arch q35)}; + my ($amd_sev_type, $arch, $machine_version, $q35) = + $hw_info->@{qw(amd-sev-type arch machine-version q35)}; my $drive = $conf->{efidisk0} ? parse_drive('efidisk0', $conf->{efidisk0}) : undef; @@ -190,7 +191,7 @@ my sub generate_ovmf_blockdev { my $throttle_group = PVE::QemuServer::Blockdev::generate_throttle_group($drive); my $ovmf_vars_blockdev = PVE::QemuServer::Blockdev::generate_drive_blockdev( - $storecfg, $drive, $extra_blockdev_options, + $storecfg, $drive, $machine_version, $extra_blockdev_options, ); return ($ovmf_code_blockdev, $ovmf_vars_blockdev, $throttle_group); -- 2.47.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel