net: synchronize net_host_device_remove with host_net_remove_completion

Using net_host_check_device is unnecessary.  qemu_del_net_client asserts
for the non-peer case that it can only process NIC type NetClientStates,
and that assertion is valid for the peered case as well, so move it and
use the same check in net_host_device_remove.  host_net_remove_completion
is already checking the type.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Jason Wang <jasowang@redhat.com>
Message-id: 1419353600-30519-2-git-send-email-pbonzini@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Paolo Bonzini 2014-12-23 17:53:20 +01:00 committed by Stefan Hajnoczi
parent 2a5b58e240
commit 7fb439115d

View File

@ -324,6 +324,8 @@ void qemu_del_net_client(NetClientState *nc)
NetClientState *ncs[MAX_QUEUE_NUM]; NetClientState *ncs[MAX_QUEUE_NUM];
int queues, i; int queues, i;
assert(nc->info->type != NET_CLIENT_OPTIONS_KIND_NIC);
/* If the NetClientState belongs to a multiqueue backend, we will change all /* If the NetClientState belongs to a multiqueue backend, we will change all
* other NetClientStates also. * other NetClientStates also.
*/ */
@ -355,8 +357,6 @@ void qemu_del_net_client(NetClientState *nc)
return; return;
} }
assert(nc->info->type != NET_CLIENT_OPTIONS_KIND_NIC);
for (i = 0; i < queues; i++) { for (i = 0; i < queues; i++) {
qemu_cleanup_net_client(ncs[i]); qemu_cleanup_net_client(ncs[i]);
qemu_free_net_client(ncs[i]); qemu_free_net_client(ncs[i]);
@ -991,7 +991,7 @@ void hmp_host_net_remove(Monitor *mon, const QDict *qdict)
device, vlan_id); device, vlan_id);
return; return;
} }
if (!net_host_check_device(nc->model)) { if (nc->info->type == NET_CLIENT_OPTIONS_KIND_NIC) {
error_report("invalid host network device '%s'", device); error_report("invalid host network device '%s'", device);
return; return;
} }