rpms/qemu/devel 0053-net-remove-NICInfo.bootable-field.patch, NONE, 1.1 0054-net-remove-broken-net_set_boot_mask-boot-device-vali.patch, NONE, 1.1 0055-boot-remove-unused-boot_devices_bitmap-variable.patch, NONE, 1.1 qemu.spec, 1.162, 1.163

Justin M. Forbes jforbes at fedoraproject.org
Fri Apr 23 14:40:10 UTC 2010


Author: jforbes

Update of /cvs/pkgs/rpms/qemu/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv30518

Modified Files:
	qemu.spec 
Added Files:
	0053-net-remove-NICInfo.bootable-field.patch 
	0054-net-remove-broken-net_set_boot_mask-boot-device-vali.patch 
	0055-boot-remove-unused-boot_devices_bitmap-variable.patch 
Log Message:
Fix seabios requires, own docdir, fix non-existent NIC error

0053-net-remove-NICInfo.bootable-field.patch:
 net.c |    1 -
 net.h |    2 --
 2 files changed, 3 deletions(-)

--- NEW FILE 0053-net-remove-NICInfo.bootable-field.patch ---
>From 30397a024f57f14800975bbb4312be54cc75202b Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Tue, 6 Apr 2010 19:38:51 -0300
Subject: [PATCH] net: remove NICInfo.bootable field

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=561078

It is just set by net_set_boot_mask() and never used. The logic for rom loading
changed a lot since this field was introduced. It is not needed anymore.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 net.c |    1 -
 net.h |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/net.c b/net.c
index de7d626..5cebb1a 100644
--- a/net.c
+++ b/net.c
@@ -1204,7 +1204,6 @@ void net_set_boot_mask(int net_boot_mask)

     for (i = 0; i < nb_nics; i++) {
         if (net_boot_mask & (1 << i)) {
-            nd_table[i].bootable = 1;
             net_boot_mask &= ~(1 << i);
         }
     }
diff --git a/net.h b/net.h
index 33a1eaf..5b6e814 100644
--- a/net.h
+++ b/net.h
@@ -135,7 +135,6 @@ struct NICInfo {
     VLANState *vlan;
     VLANClientState *netdev;
     int used;
-    int bootable;
     int nvectors;
 };

-- 
1.6.6.1


0054-net-remove-broken-net_set_boot_mask-boot-device-vali.patch:
 net.c |   19 -------------------
 net.h |    1 -
 vl.c  |    6 +-----
 3 files changed, 1 insertion(+), 25 deletions(-)

--- NEW FILE 0054-net-remove-broken-net_set_boot_mask-boot-device-vali.patch ---
>From 905a4bcaf9d4ed3662b901a2820b6e6ca80dc285 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Tue, 6 Apr 2010 19:38:52 -0300
Subject: [PATCH] net: remove broken net_set_boot_mask() boot device validation

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=561078

There are many problems with net_set_boot_mask():

1) It is broken when using the device model instead of "-net nic". Example:
   $ qemu-system-x86_64 -device rtl8139,vlan=0,id=net0,mac=52:54:00:82:41:fd,bus=pci.0,addr=0x4 -net user,vlan=0,name=hostnet0 -vnc 0.0.0.0:0 -boot n
   Cannot boot from non-existent NIC
   $
2) The mask was previously used to set which boot ROMs were supposed to be
   loaded, but this was changed long time ago. Now all ROM images are loaded,
   and SeaBIOS takes care of jumping to the right boot entry point depending on
   the boot settings.
3) Interpretation and validation of the boot parameter letters is done on
   the machine type code. Examples: PC accepts only a,b,c,d,n as valid boot
   device letters. mac99 accepts only a,b,c,d,e,f.

As a side-effect of this change, qemu-kvm won't abort anymore if using "-boot n"
on a machine with no network devices. Checking if the requested boot device is
valid is now a task for the BIOS or the machine-type code.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 net.c |   19 -------------------
 net.h |    1 -
 vl.c  |    5 +----
 3 files changed, 1 insertions(+), 24 deletions(-)

diff --git a/net.c b/net.c
index 5cebb1a..71c0f08 100644
--- a/net.c
+++ b/net.c
@@ -1195,25 +1195,6 @@ void net_host_device_remove(Monitor *mon, const QDict *qdict)
     qemu_del_vlan_client(vc);
 }

-void net_set_boot_mask(int net_boot_mask)
-{
-    int i;
-
-    /* Only the first four NICs may be bootable */
-    net_boot_mask = net_boot_mask & 0xF;
-
-    for (i = 0; i < nb_nics; i++) {
-        if (net_boot_mask & (1 << i)) {
-            net_boot_mask &= ~(1 << i);
-        }
-    }
-
-    if (net_boot_mask) {
-        fprintf(stderr, "Cannot boot from non-existent NIC\n");
-        exit(1);
-    }
-}
-
 void do_info_network(Monitor *mon)
 {
     VLANState *vlan;
diff --git a/net.h b/net.h
index 5b6e814..2b2ee4c 100644
--- a/net.h
+++ b/net.h
@@ -165,7 +165,6 @@ int net_client_parse(QemuOptsList *opts_list, const char *str);
 int net_init_clients(void);
 void net_check_clients(void);
 void net_cleanup(void);
-void net_set_boot_mask(int boot_mask);
 void net_host_device_add(Monitor *mon, const QDict *qdict);
 void net_host_device_remove(Monitor *mon, const QDict *qdict);

diff --git a/vl.c b/vl.c
index c75f891..349f945 100644
--- a/vl.c
+++ b/vl.c
@@ -4922,7 +4922,7 @@ int main(int argc, char **argv, char **envp)
     const char *gdbstub_dev = NULL;
     uint32_t boot_devices_bitmap = 0;
     int i;
-    int snapshot, linux_boot, net_boot;
+    int snapshot, linux_boot;
     const char *initrd_filename;
     const char *kernel_filename, *kernel_cmdline;
     char boot_devices[33] = "cad"; /* default to HD->floppy->CD-ROM */
@@ -5961,9 +5961,6 @@ int main(int argc, char **argv, char **envp)
         exit(1);
     }

-    net_boot = (boot_devices_bitmap >> ('n' - 'a')) & 0xF;
-    net_set_boot_mask(net_boot);
-
     /* init the bluetooth world */
     if (foreach_device_config(DEV_BT, bt_parse))
         exit(1);
-- 
1.6.6.1


0055-boot-remove-unused-boot_devices_bitmap-variable.patch:
 vl.c |    9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

--- NEW FILE 0055-boot-remove-unused-boot_devices_bitmap-variable.patch ---
>From dfbaa3059414b158ff7ce7a74ffff80b0fa2db9c Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Tue, 6 Apr 2010 19:38:53 -0300
Subject: [PATCH] boot: remove unused boot_devices_bitmap variable

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=561078

In addition to removing the variable, this also renames the parse_bootdevices()
function to validate_bootdevices(), as we don't need its return value anymore.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 vl.c |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/vl.c b/vl.c
index 349f945..a71127c 100644
--- a/vl.c
+++ b/vl.c
@@ -2517,7 +2517,7 @@ int qemu_boot_set(const char *boot_devices)
     return boot_set_handler(boot_set_opaque, boot_devices);
 }

-static int parse_bootdevices(char *devices)
+static void validate_bootdevices(char *devices)
 {
     /* We just do some generic consistency checks */
     const char *p;
@@ -2543,7 +2543,6 @@ static int parse_bootdevices(char *devices)
         }
         bitmap |= 1 << (*p - 'a');
     }
-    return bitmap;
 }

 static void restore_boot_devices(void *opaque)
@@ -4920,7 +4919,6 @@ static int virtcon_parse(const char *devname)
 int main(int argc, char **argv, char **envp)
 {
     const char *gdbstub_dev = NULL;
-    uint32_t boot_devices_bitmap = 0;
     int i;
     int snapshot, linux_boot;
     const char *initrd_filename;
@@ -5215,13 +5213,13 @@ int main(int argc, char **argv, char **envp)

                     if (legacy ||
                         get_param_value(buf, sizeof(buf), "order", optarg)) {
-                        boot_devices_bitmap = parse_bootdevices(buf);
+                        validate_bootdevices(buf);
                         pstrcpy(boot_devices, sizeof(boot_devices), buf);
                     }
                     if (!legacy) {
                         if (get_param_value(buf, sizeof(buf),
                                             "once", optarg)) {
-                            boot_devices_bitmap |= parse_bootdevices(buf);
+                            validate_bootdevices(buf);
                             standard_boot_devices = qemu_strdup(boot_devices);
                             pstrcpy(boot_devices, sizeof(boot_devices), buf);
                             qemu_register_reset(restore_boot_devices,
-- 
1.6.6.1



Index: qemu.spec
===================================================================
RCS file: /cvs/pkgs/rpms/qemu/devel/qemu.spec,v
retrieving revision 1.162
retrieving revision 1.163
diff -u -p -r1.162 -r1.163
--- qemu.spec	15 Apr 2010 18:15:44 -0000	1.162
+++ qemu.spec	23 Apr 2010 14:40:09 -0000	1.163
@@ -1,7 +1,7 @@
 Summary: QEMU is a FAST! processor emulator
 Name: qemu
 Version: 0.12.3
-Release: 5%{?dist}
+Release: 6%{?dist}
 # Epoch because we pushed a qemu-1.0 package
 Epoch: 2
 License: GPLv2+ and LGPLv2+ and BSD
@@ -86,6 +86,9 @@ Patch49: 0049-migration-Clear-fd-also-in
 Patch50: 0050-raw-posix-Detect-CDROM-via-ioctl-on-linux.patch
 Patch51: 0051-usb-linux-increase-buffer-for-USB-control-requests.patch
 Patch52: 0052-virtio-console-patches.patch
+Patch53: 0053-net-remove-NICInfo.bootable-field.patch
+Patch54: 0054-net-remove-broken-net_set_boot_mask-boot-device-vali.patch
+Patch55: 0055-boot-remove-unused-boot_devices_bitmap-variable.patch
 
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -177,7 +180,7 @@ Requires: %{name}-common = %{epoch}:%{ve
 Provides: kvm = 85
 Obsoletes: kvm < 85
 Requires: vgabios
-Requires: seabios
+Requires: seabios-bin
 Requires: /usr/share/gpxe/e1000-0x100e.rom
 Requires: /usr/share/gpxe/rtl8029.rom
 Requires: /usr/share/gpxe/pcnet32.rom
@@ -330,6 +333,9 @@ such as kvmtrace and kvm_stat.
 %patch50 -p1
 %patch51 -p1
 %patch52 -p1
+%patch53 -p1
+%patch54 -p1
+%patch55 -p1
 
 %build
 # By default we build everything, but allow x86 to build a minimal version
@@ -522,6 +528,7 @@ fi
 
 %files common
 %defattr(-,root,root)
+%dir %{qemudocdir}
 %doc %{qemudocdir}/Changelog
 %doc %{qemudocdir}/README
 %doc %{qemudocdir}/TODO
@@ -632,6 +639,11 @@ fi
 %{_mandir}/man1/qemu-img.1*
 
 %changelog
+* Fri Apr 23 2010 Justin M. Forbes <jforbes at redhat.com> - 2:0.12.3-6
+- Change requires to the noarch seabios-bin
+- Add ownership of docdir to qemu-common (#572110)
+- Fix "Cannot boot from non-existent NIC" error when using virt-install (#577851)
+
 * Thu Apr 15 2010 Justin M. Forbes <jforbes at redhat.com> - 2:0.12.3-5
 - Update virtio console patches from upstream
 



More information about the scm-commits mailing list