diff options
author | Eduardo Habkost <ehabkost@redhat.com> | 2010-04-06 19:22:07 -0300 |
---|---|---|
committer | Aurelien Jarno <aurelien@aurel32.net> | 2010-04-10 02:09:55 +0200 |
commit | da1fcfda59a6bcbdf58d49243fbced455f2bf78a (patch) | |
tree | c07fbd6fe312d3e12fda044b88bbf25571d69886 /net.c | |
parent | c2564608a149555d748390e446990324802586e7 (diff) | |
download | qemu-da1fcfda59a6bcbdf58d49243fbced455f2bf78a.tar.gz qemu-da1fcfda59a6bcbdf58d49243fbced455f2bf78a.tar.bz2 qemu-da1fcfda59a6bcbdf58d49243fbced455f2bf78a.zip |
net: remove broken net_set_boot_mask() boot device validation
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@redhat.com>
Acked-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'net.c')
-rw-r--r-- | net.c | 19 |
1 files changed, 0 insertions, 19 deletions
@@ -1198,25 +1198,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; |