Drivers: hv: balloon: keep track of where ha_region starts
authorVitaly Kuznetsov <vkuznets@redhat.com>
Wed, 24 Aug 2016 23:23:09 +0000 (16:23 -0700)
committerSasha Levin <alexander.levin@verizon.com>
Tue, 13 Jun 2017 13:29:17 +0000 (09:29 -0400)
commit2cbbeec3e5a7e5cac9b23310b0edff92dc6c4e83
tree6cdbbe0b7a16bc163670e145c541b0b3c4c287a8
parent5b9ab933c3693caf6279d6e5694bee8fc6494153
Drivers: hv: balloon: keep track of where ha_region starts

[ Upstream commit 7cf3b79ec85ee1a5bbaaf936bb1d050dc652983b ]

Windows 2012 (non-R2) does not specify hot add region in hot add requests
and the logic in hot_add_req() is trying to find a 128Mb-aligned region
covering the request. It may also happen that host's requests are not 128Mb
aligned and the created ha_region will start before the first specified
PFN. We can't online these non-present pages but we don't remember the real
start of the region.

This is a regression introduced by the commit 5abbbb75d733 ("Drivers: hv:
hv_balloon: don't lose memory when onlining order is not natural"). While
the idea of keeping the 'moving window' was wrong (as there is no guarantee
that hot add requests come ordered) we should still keep track of
covered_start_pfn. This is not a revert, the logic is different.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
drivers/hv/hv_balloon.c