mirror of https://github.com/xqemu/xqemu.git
net: Fix VM start with '-net none'
Commit 50e32ea8f3
changed the behaviour
for the return type of net_client_init() when a nic type with no init
method was specified. 'none' is one such nic type. Instead of returning
0, which gets interpreted as an index into the nd_table[] array, we
switched to returning -1, which signifies an error as well.
That broke VM start with '-net none'. Testing was only done with the
monitor command 'pci_add', which doesn't fail.
The correct fix would still be to return 0+ values from
net_client_init() only when the return value can be used as an index to
refer to an entry in nd_table[]. With the current code, callers can
erroneously poke into nd_table[0] when -net nic is used, which can lead
to badness.
However, this commit just returns to the previous behaviour before the
offending commit.
Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
ab5ea55805
commit
03c71553ad
2
net.c
2
net.c
|
@ -1119,7 +1119,7 @@ int net_client_init(Monitor *mon, QemuOpts *opts, int is_netdev)
|
||||||
vlan = qemu_find_vlan(qemu_opt_get_number(opts, "vlan", 0), 1);
|
vlan = qemu_find_vlan(qemu_opt_get_number(opts, "vlan", 0), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = -1;
|
ret = 0;
|
||||||
if (net_client_types[i].init) {
|
if (net_client_types[i].init) {
|
||||||
ret = net_client_types[i].init(opts, mon, name, vlan);
|
ret = net_client_types[i].init(opts, mon, name, vlan);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
|
Loading…
Reference in New Issue