mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
vmw_balloon: do not use 2MB without batching
commit5081efd112
upstream. If the hypervisor sets 2MB batching is on, while batching is cleared, the balloon code breaks. In this case the legacy mechanism is used with 2MB page. The VM would report a 2MB page is ballooned, and the hypervisor would only take the first 4KB. While the hypervisor should not report such settings, make the code more robust by not enabling 2MB support without batching. Fixes:365bd7ef7e
("VMware balloon: Support 2m page ballooning.") Cc: stable@vger.kernel.org Reviewed-by: Xavier Deguillard <xdeguillard@vmware.com> Signed-off-by: Nadav Amit <nadav.amit@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
9fd44e9090
commit
d3b403844d
@ -341,7 +341,13 @@ static bool vmballoon_send_start(struct vmballoon *b, unsigned long req_caps)
|
||||
success = false;
|
||||
}
|
||||
|
||||
if (b->capabilities & VMW_BALLOON_BATCHED_2M_CMDS)
|
||||
/*
|
||||
* 2MB pages are only supported with batching. If batching is for some
|
||||
* reason disabled, do not use 2MB pages, since otherwise the legacy
|
||||
* mechanism is used with 2MB pages, causing a failure.
|
||||
*/
|
||||
if ((b->capabilities & VMW_BALLOON_BATCHED_2M_CMDS) &&
|
||||
(b->capabilities & VMW_BALLOON_BATCHED_CMDS))
|
||||
b->supported_page_sizes = 2;
|
||||
else
|
||||
b->supported_page_sizes = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user