qemu-e2k/net
Jason Wang 5fe19fb818 net: use peer when purging queue in qemu_flush_or_purge_queue_packets()
The sender of packet will be checked in the qemu_net_queue_purge() but
we use NetClientState not its peer when trying to purge the incoming
queue in qemu_flush_or_purge_packets(). This will trigger the assert
in virtio_net_reset since we can't pass the sender check:

hw/net/virtio-net.c:533: void virtio_net_reset(VirtIODevice *): Assertion
`!virtio_net_get_subqueue(nc)->async_tx.elem' failed.
#9 0x55a33fa31b78 in virtio_net_reset hw/net/virtio-net.c:533:13
#10 0x55a33fc88412 in virtio_reset hw/virtio/virtio.c:1919:9
#11 0x55a341d82764 in virtio_bus_reset hw/virtio/virtio-bus.c:95:9
#12 0x55a341dba2de in virtio_pci_reset hw/virtio/virtio-pci.c:1824:5
#13 0x55a341db3e02 in virtio_pci_common_write hw/virtio/virtio-pci.c:1252:13
#14 0x55a33f62117b in memory_region_write_accessor memory.c:496:5
#15 0x55a33f6205e4 in access_with_adjusted_size memory.c:557:18
#16 0x55a33f61e177 in memory_region_dispatch_write memory.c:1488:16

Reproducer:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg701914.html

Fix by using the peer.

Reported-by: "Alexander Bulekov" <alxndr@bu.edu>
Acked-by: Alexander Bulekov <alxndr@bu.edu>
Fixes: ca77d85e1d ("net: complete all queued packets on VM stop")
Cc: qemu-stable@nongnu.org
Signed-off-by: Jason Wang <jasowang@redhat.com>
2020-06-18 21:05:52 +08:00
..
can qom: Drop parameter @errp of object_property_add() & friends 2020-05-15 07:07:58 +02:00
announce.c net/announce: Add optional ID 2019-07-02 10:21:06 +08:00
checksum.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
clients.h
colo-compare.c qom: Drop parameter @errp of object_property_add() & friends 2020-05-15 07:07:58 +02:00
colo-compare.h
colo.c
colo.h Clean up header guards that don't match their file name 2019-05-13 08:58:55 +02:00
dump.c qom: Drop parameter @errp of object_property_add() & friends 2020-05-15 07:07:58 +02:00
eth.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
filter-buffer.c qom: Drop parameter @errp of object_property_add() & friends 2020-05-15 07:07:58 +02:00
filter-mirror.c qom: Drop parameter @errp of object_property_add() & friends 2020-05-15 07:07:58 +02:00
filter-replay.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
filter-rewriter.c qom: Drop parameter @errp of object_property_add() & friends 2020-05-15 07:07:58 +02:00
filter.c qom: Drop parameter @errp of object_property_add() & friends 2020-05-15 07:07:58 +02:00
hub.c hw/net: Make NetCanReceive() return a boolean 2020-03-31 21:14:35 +08:00
hub.h net: Remove deprecated [hub_id name] tuple of 'hostfwd_add' / 'hostfwd_remove' 2020-03-09 18:44:04 +00:00
l2tpv3.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
Makefile.objs build-sys: link with slirp as an external project 2019-03-07 12:46:31 +01:00
net.c net: use peer when purging queue in qemu_flush_or_purge_queue_packets() 2020-06-18 21:05:52 +08:00
netmap.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
queue.c misc: Replace zero-length arrays with flexible array member (automatic) 2020-03-16 22:07:42 +01:00
slirp.c net: Remove deprecated [hub_id name] tuple of 'hostfwd_add' / 'hostfwd_remove' 2020-03-09 18:44:04 +00:00
socket.c net/socket: learn to talk with a unix dgram socket 2019-03-29 15:22:18 +08:00
tap_int.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
tap-bsd.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
tap-linux.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
tap-linux.h
tap-solaris.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
tap-stub.c
tap-win32.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
tap.c tap: allow extended virtio header with hash info 2020-06-18 21:05:50 +08:00
trace-events trace: Remove trailing newline in events 2019-09-18 10:19:47 +01:00
util.c
util.h
vde.c
vhost-user-stub.c
vhost-user.c chardev: Use QEMUChrEvent enum in IOEventHandler typedef 2020-01-08 11:15:35 +01:00