spapr-vlan: flush queue whenever can_receive can go from false to true
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Fri, 14 Feb 2014 01:27:04 +0000 (12:27 +1100)
committerAlexander Graf <agraf@suse.de>
Wed, 5 Mar 2014 02:07:00 +0000 (03:07 +0100)
When the guests adds buffers to receive queue, the network device
should flush its queue of pending packets. This is done with
qemu_flush_queued_packets.

This adds a call to qemu_flush_queued_packets() which wakes up the main
loop and let QEMU update the network device status which now is "can
receive". The patch basically does the same thing as e8b4c68 does.

Suggested-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Alexander Graf <agraf@suse.de>
hw/net/spapr_llan.c

index 1bd6f50..f6fbcb5 100644 (file)
@@ -405,6 +405,8 @@ static target_ulong h_add_logical_lan_buffer(PowerPCCPU *cpu,
 
     dev->rx_bufs++;
 
+    qemu_flush_queued_packets(qemu_get_queue(dev->nic));
+
     DPRINTF("h_add_logical_lan_buffer():  Added buf  ptr=%d  rx_bufs=%d"
             " bd=0x%016llx\n", dev->add_buf_ptr, dev->rx_bufs,
             (unsigned long long)buf);