diff --git a/[refs] b/[refs] index e10f8e7459e6..1fc6539fe32f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 06a8f1feb9e82e5b66f781ba3e39055e3f89a641 +refs/heads/master: 0731572b6c529f8e8a320dc4df6d67d9a595ecf3 diff --git a/trunk/drivers/hv/hv_balloon.c b/trunk/drivers/hv/hv_balloon.c index ce6f984535ec..32a96f164dc8 100644 --- a/trunk/drivers/hv/hv_balloon.c +++ b/trunk/drivers/hv/hv_balloon.c @@ -529,15 +529,21 @@ static void process_info(struct hv_dynmem_device *dm, struct dm_info_msg *msg) static void post_status(struct hv_dynmem_device *dm) { struct dm_status status; + struct sysinfo val; - + si_meminfo(&val); memset(&status, 0, sizeof(struct dm_status)); status.hdr.type = DM_STATUS_REPORT; status.hdr.size = sizeof(struct dm_status); status.hdr.trans_id = atomic_inc_return(&trans_id); - - status.num_committed = vm_memory_committed(); + /* + * The host expects the guest to report free memory. + * Further, the host expects the pressure information to + * include the ballooned out pages. + */ + status.num_avail = val.freeram; + status.num_committed = vm_memory_committed() + dm->num_pages_ballooned; vmbus_sendpacket(dm->dev->channel, &status, sizeof(struct dm_status),