aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/xen
diff options
context:
space:
mode:
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>2014-10-07 17:00:07 -0400
committerDavid Vrabel <david.vrabel@citrix.com>2014-10-23 11:24:01 -0400
commitfd8b79511349efd1f0decea920f61b93acb34a75 (patch)
treeb4091d187db6d6a083bb2d9ffd8ead27030a60ba /drivers/xen
parentf114040e3ea6e07372334ade75d1ee0775c355e1 (diff)
xen/balloon: Don't continue ballooning when BP_ECANCELED is encountered
Commit 3dcf63677d4e ("xen/balloon: cancel ballooning if adding new memory failed") makes reserve_additional_memory() return BP_ECANCELED when an error is encountered. This error, however, is ignored by the caller (balloon_process()) since it is overwritten by subsequent call to update_schedule(). This results in continuous attempts to add more memory, all of which are likely to fail again. We should stop trying to schedule next iteration of ballooning when the current one has failed. Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Diffstat (limited to 'drivers/xen')
-rw-r--r--drivers/xen/balloon.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index 1e0a317d3dcd..3860d02729dc 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -167,6 +167,9 @@ static struct page *balloon_next_page(struct page *page)
167 167
168static enum bp_state update_schedule(enum bp_state state) 168static enum bp_state update_schedule(enum bp_state state)
169{ 169{
170 if (state == BP_ECANCELED)
171 return BP_ECANCELED;
172
170 if (state == BP_DONE) { 173 if (state == BP_DONE) {
171 balloon_stats.schedule_delay = 1; 174 balloon_stats.schedule_delay = 1;
172 balloon_stats.retry_count = 1; 175 balloon_stats.retry_count = 1;