[pve-devel] [PATCH 2/3] add qemu_use_old_bios_files sub

Alexandre Derumier aderumier at odiso.com
Fri Nov 6 10:27:05 CET 2015


Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
 PVE/QemuServer.pm | 37 +++++++++++++++++++++++--------------
 1 file changed, 23 insertions(+), 14 deletions(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 0aa1ff4..d0345a7 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -2643,6 +2643,8 @@ sub config_to_command {
     my $q35 = machine_type_is_q35($conf);
     my $hotplug_features = parse_hotplug_features(defined($conf->{hotplug}) ? $conf->{hotplug} : '1');
     my $machine_type = $forcemachine || $conf->{machine};
+    my $use_old_bios_files = undef;
+    ($use_old_bios_files, $machine_type) = qemu_use_old_bios_files($machine_type);
 
     my $cpuunits = defined($conf->{cpuunits}) ?
             $conf->{cpuunits} : $defaults->{cpuunits};
@@ -2657,20 +2659,6 @@ sub config_to_command {
 	push @$cmd, '-p', "CPUQuota=$cpulimit\%";
     }
 
-
-    my $use_old_bios_files = undef;
-
-    if ($machine_type && $machine_type =~ m/^(\S+)\.pxe$/){
-	$machine_type = $1;
-	$use_old_bios_files = 1;
-    } else {
-	# Note: kvm version < 2.4 use non-efi pxe files, and have problems when we
-	# load new efi bios files on migration. So this hack is required to allow
-	# live migration from qemu-2.2 to qemu-2.4, which is sometimes used when
-	# updrading from proxmox-ve-3.X to proxmox-ve 4.0
-    	$use_old_bios_files = !qemu_machine_feature_enabled ($machine_type, $kvmver, 2, 4);
-    }
-
     push @$cmd, '/usr/bin/kvm';
 
     push @$cmd, '-id', $vmid;
@@ -6381,6 +6369,27 @@ sub qemu_machine_pxe {
 
 }
 
+sub qemu_use_old_bios_files {
+    my ($machine_type) = @_;
+
+    return if !$machine_type;
+
+    my $use_old_bios_files = undef;
+
+    if ($machine_type =~ m/^(\S+)\.pxe$/) {
+        $machine_type = $1;
+        $use_old_bios_files = 1;
+    } else {
+        # Note: kvm version < 2.4 use non-efi pxe files, and have problems when we
+        # load new efi bios files on migration. So this hack is required to allow
+        # live migration from qemu-2.2 to qemu-2.4, which is sometimes used when
+        # updrading from proxmox-ve-3.X to proxmox-ve 4.0
+        $use_old_bios_files = !qemu_machine_feature_enabled ($machine_type, undef, 2, 4);
+    }
+
+    return ($use_old_bios_files, $machine_type);
+}
+
 sub lspci {
 
     my $devices = {};
-- 
2.1.4



More information about the pve-devel mailing list