vmw_balloon: fix inflation with batching
commit90d72ce079
upstream. Embarrassingly, the recent fix introduced worse problem than it solved, causing the balloon not to inflate. The VM informed the hypervisor that the pages for lock/unlock are sitting in the wrong address, as it used the page that is used the uninitialized page variable. Fixes:b23220fe05
("vmw_balloon: fixing double free when batching mode is off") Cc: stable@vger.kernel.org Reviewed-by: Xavier Deguillard <xdeguillard@vmware.com> Signed-off-by: Nadav Amit <namit@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
ba20e67aee
commit
f0a1bf29d8
@ -467,7 +467,7 @@ static int vmballoon_send_batched_lock(struct vmballoon *b,
|
||||
unsigned int num_pages, bool is_2m_pages, unsigned int *target)
|
||||
{
|
||||
unsigned long status;
|
||||
unsigned long pfn = page_to_pfn(b->page);
|
||||
unsigned long pfn = PHYS_PFN(virt_to_phys(b->batch_page));
|
||||
|
||||
STATS_INC(b->stats.lock[is_2m_pages]);
|
||||
|
||||
@ -515,7 +515,7 @@ static bool vmballoon_send_batched_unlock(struct vmballoon *b,
|
||||
unsigned int num_pages, bool is_2m_pages, unsigned int *target)
|
||||
{
|
||||
unsigned long status;
|
||||
unsigned long pfn = page_to_pfn(b->page);
|
||||
unsigned long pfn = PHYS_PFN(virt_to_phys(b->batch_page));
|
||||
|
||||
STATS_INC(b->stats.unlock[is_2m_pages]);
|
||||
|
||||
|
Reference in New Issue
Block a user