mirror of https://github.com/xemu-project/xemu.git
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;
|
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);
|
rndis_clear_responsequeue(s);
|
||||||
qemu_free(s);
|
qemu_free(s);
|
||||||
}
|
}
|
||||||
|
|
1
net.h
1
net.h
|
@ -28,6 +28,7 @@ VLANClientState *qemu_new_vlan_client(VLANState *vlan,
|
||||||
IOReadHandler *fd_read,
|
IOReadHandler *fd_read,
|
||||||
IOCanRWHandler *fd_can_read,
|
IOCanRWHandler *fd_can_read,
|
||||||
void *opaque);
|
void *opaque);
|
||||||
|
void qemu_del_vlan_client(VLANClientState *vc);
|
||||||
int qemu_can_send_packet(VLANClientState *vc);
|
int qemu_can_send_packet(VLANClientState *vc);
|
||||||
void qemu_send_packet(VLANClientState *vc, const uint8_t *buf, int size);
|
void qemu_send_packet(VLANClientState *vc, const uint8_t *buf, int size);
|
||||||
void qemu_handler_true(void *opaque);
|
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;
|
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)
|
int qemu_can_send_packet(VLANClientState *vc1)
|
||||||
{
|
{
|
||||||
VLANState *vlan = vc1->vlan;
|
VLANState *vlan = vc1->vlan;
|
||||||
|
|
Loading…
Reference in New Issue