From: Michael Brown Date: Sat, 20 Dec 2014 12:40:17 +0000 (+0000) Subject: [hyperv] Receive all VMBus messages in a poll X-Git-Tag: v1.20.1~1015 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4e6821662c33926a979ecc6fb99698b8b0b9e271;p=thirdparty%2Fipxe.git [hyperv] Receive all VMBus messages in a poll Allow for elision of transmitted TCP ACKs by handling all received VMBus messages in each network device poll operation. Signed-off-by: Michael Brown --- diff --git a/src/drivers/net/netvsc.c b/src/drivers/net/netvsc.c index bcab8a9ca..8610339d2 100644 --- a/src/drivers/net/netvsc.c +++ b/src/drivers/net/netvsc.c @@ -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 ); } /**