aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/hv/hv_util.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/hv/hv_util.c b/drivers/hv/hv_util.c
index 4aa3cb63fd41..bcd06306f3e8 100644
--- a/drivers/hv/hv_util.c
+++ b/drivers/hv/hv_util.c
@@ -314,10 +314,14 @@ static void heartbeat_onchannelcallback(void *context)
314 u8 *hbeat_txf_buf = util_heartbeat.recv_buffer; 314 u8 *hbeat_txf_buf = util_heartbeat.recv_buffer;
315 struct icmsg_negotiate *negop = NULL; 315 struct icmsg_negotiate *negop = NULL;
316 316
317 vmbus_recvpacket(channel, hbeat_txf_buf, 317 while (1) {
318 PAGE_SIZE, &recvlen, &requestid); 318
319 vmbus_recvpacket(channel, hbeat_txf_buf,
320 PAGE_SIZE, &recvlen, &requestid);
321
322 if (!recvlen)
323 break;
319 324
320 if (recvlen > 0) {
321 icmsghdrp = (struct icmsg_hdr *)&hbeat_txf_buf[ 325 icmsghdrp = (struct icmsg_hdr *)&hbeat_txf_buf[
322 sizeof(struct vmbuspipe_hdr)]; 326 sizeof(struct vmbuspipe_hdr)];
323 327