diff options
author | Juergen Gross <jgross@suse.com> | 2019-12-12 15:17:50 +0100 |
---|---|---|
committer | Juergen Gross <jgross@suse.com> | 2019-12-13 08:39:52 +0100 |
commit | c673ec61ade89bf2f417960f986bc25671762efb (patch) | |
tree | 34416758a6feb4200575f6c17dd42bf221e50e04 | |
parent | xen-blkback: prevent premature module unload (diff) | |
download | linux-c673ec61ade89bf2f417960f986bc25671762efb.tar.xz linux-c673ec61ade89bf2f417960f986bc25671762efb.zip |
xen/balloon: fix ballooned page accounting without hotplug enabled
When CONFIG_XEN_BALLOON_MEMORY_HOTPLUG is not defined
reserve_additional_memory() will set balloon_stats.target_pages to a
wrong value in case there are still some ballooned pages allocated via
alloc_xenballooned_pages().
This will result in balloon_process() no longer be triggered when
ballooned pages are freed in batches.
Reported-by: Nicholas Tsirakis <niko.tsirakis@gmail.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
-rw-r--r-- | drivers/xen/balloon.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c index 5bae515c8e25..bed90d612e48 100644 --- a/drivers/xen/balloon.c +++ b/drivers/xen/balloon.c @@ -395,7 +395,8 @@ static struct notifier_block xen_memory_nb = { #else static enum bp_state reserve_additional_memory(void) { - balloon_stats.target_pages = balloon_stats.current_pages; + balloon_stats.target_pages = balloon_stats.current_pages + + balloon_stats.target_unpopulated; return BP_ECANCELED; } #endif /* CONFIG_XEN_BALLOON_MEMORY_HOTPLUG */ |