]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[hyperv] Receive all VMBus messages in a poll
authorMichael Brown <mcb30@ipxe.org>
Sat, 20 Dec 2014 12:40:17 +0000 (12:40 +0000)
committerMichael Brown <mcb30@ipxe.org>
Sat, 20 Dec 2014 12:40:17 +0000 (12:40 +0000)
Allow for elision of transmitted TCP ACKs by handling all received
VMBus messages in each network device poll operation.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/netvsc.c

index bcab8a9ca653d6af26e83dae46dd36ab756843c3..8610339d26c8070ef16cd67df6308744c250b63d 100644 (file)
@@ -435,9 +435,11 @@ static struct vmbus_channel_operations netvsc_channel_operations = {
  */
 static void netvsc_poll ( struct rndis_device *rndis ) {
        struct netvsc_device *netvsc = rndis->priv;
+       struct vmbus_device *vmdev = netvsc->vmdev;
 
        /* Poll VMBus device */
-       vmbus_poll ( netvsc->vmdev );
+       while ( vmbus_has_data ( vmdev ) )
+               vmbus_poll ( vmdev );
 }
 
 /**