Remove the NIC from vlan on usb destroy.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4885 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
6c9f886cea
commit
dcf414d638
@ -1418,7 +1418,8 @@ static void usb_net_handle_destroy(USBDevice *dev)
|
||||
{
|
||||
USBNetState *s = (USBNetState *) dev;
|
||||
|
||||
/* FIXME: delete the VLAN client and the nic */
|
||||
/* TODO: remove the nd_table[] entry */
|
||||
qemu_del_vlan_client(s->vc);
|
||||
rndis_clear_responsequeue(s);
|
||||
qemu_free(s);
|
||||
}
|
||||
|
1
net.h
1
net.h
@ -28,6 +28,7 @@ VLANClientState *qemu_new_vlan_client(VLANState *vlan,
|
||||
IOReadHandler *fd_read,
|
||||
IOCanRWHandler *fd_can_read,
|
||||
void *opaque);
|
||||
void qemu_del_vlan_client(VLANClientState *vc);
|
||||
int qemu_can_send_packet(VLANClientState *vc);
|
||||
void qemu_send_packet(VLANClientState *vc, const uint8_t *buf, int size);
|
||||
void qemu_handler_true(void *opaque);
|
||||
|
13
vl.c
13
vl.c
@ -3870,6 +3870,19 @@ VLANClientState *qemu_new_vlan_client(VLANState *vlan,
|
||||
return vc;
|
||||
}
|
||||
|
||||
void qemu_del_vlan_client(VLANClientState *vc)
|
||||
{
|
||||
VLANClientState **pvc = &vc->vlan->first_client;
|
||||
|
||||
while (*pvc != NULL)
|
||||
if (*pvc == vc) {
|
||||
*pvc = vc->next;
|
||||
free(vc);
|
||||
break;
|
||||
} else
|
||||
pvc = &(*pvc)->next;
|
||||
}
|
||||
|
||||
int qemu_can_send_packet(VLANClientState *vc1)
|
||||
{
|
||||
VLANState *vlan = vc1->vlan;
|
||||
|
Loading…
Reference in New Issue
Block a user