mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 23:03:54 -06:00
net: Fix bogus "Warning: vlan 0 with no nics" with -device
net_check_clients() prints this when an VLAN has host devices, but no guest devices. It uses VLANState members nb_guest_devs and nb_host_devs to keep track of these devices. However, -device does not update nb_guest_devs, only net_init_nic() does that, for -net nic. Check the VLAN clients directly, and remove the counters. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
668680f75f
commit
62112d181c
7 changed files with 18 additions and 28 deletions
25
net.c
25
net.c
|
@ -812,9 +812,6 @@ static int net_init_nic(QemuOpts *opts,
|
|||
}
|
||||
|
||||
nd->used = 1;
|
||||
if (vlan) {
|
||||
nd->vlan->nb_guest_devs++;
|
||||
}
|
||||
nb_nics++;
|
||||
|
||||
return idx;
|
||||
|
@ -1278,13 +1275,27 @@ void net_cleanup(void)
|
|||
void net_check_clients(void)
|
||||
{
|
||||
VLANState *vlan;
|
||||
VLANClientState *vc;
|
||||
int has_nic, has_host_dev;
|
||||
|
||||
QTAILQ_FOREACH(vlan, &vlans, next) {
|
||||
if (vlan->nb_guest_devs == 0 && vlan->nb_host_devs == 0)
|
||||
continue;
|
||||
if (vlan->nb_guest_devs == 0)
|
||||
QTAILQ_FOREACH(vc, &vlan->clients, next) {
|
||||
switch (vc->info->type) {
|
||||
case NET_CLIENT_TYPE_NIC:
|
||||
has_nic = 1;
|
||||
break;
|
||||
case NET_CLIENT_TYPE_SLIRP:
|
||||
case NET_CLIENT_TYPE_TAP:
|
||||
case NET_CLIENT_TYPE_SOCKET:
|
||||
case NET_CLIENT_TYPE_VDE:
|
||||
has_host_dev = 1;
|
||||
break;
|
||||
default: ;
|
||||
}
|
||||
}
|
||||
if (has_host_dev && !has_nic)
|
||||
fprintf(stderr, "Warning: vlan %d with no nics\n", vlan->id);
|
||||
if (vlan->nb_host_devs == 0)
|
||||
if (has_nic && !has_host_dev)
|
||||
fprintf(stderr,
|
||||
"Warning: vlan %d is not connected to host network\n",
|
||||
vlan->id);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue