Commit 3d65c9488cadd2f11bd4d60c7266e639ece5d0d6

Authored by Gianluca Guida
Committed by Jeremy Fitzhardinge
1 parent b4606f2165

Xen balloon: fix totalram_pages counting.

Change totalram_pages when a single page is added/removed to the
ballooned list. This avoid totalram_pages to be set erroneously to
max_pfn at boot.

Signed-off-by: Gianluca Guida <gianluca.guida@citrix.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stable Kernel <stable@kernel.org>

Showing 1 changed file with 4 additions and 3 deletions Side-by-side Diff

drivers/xen/balloon.c
... ... @@ -136,6 +136,8 @@
136 136 list_add(&page->lru, &ballooned_pages);
137 137 balloon_stats.balloon_low++;
138 138 }
  139 +
  140 + totalram_pages--;
139 141 }
140 142  
141 143 /* balloon_retrieve: rescue a page from the balloon, if it is not empty. */
... ... @@ -156,6 +158,8 @@
156 158 else
157 159 balloon_stats.balloon_low--;
158 160  
  161 + totalram_pages++;
  162 +
159 163 return page;
160 164 }
161 165  
... ... @@ -260,7 +264,6 @@
260 264 }
261 265  
262 266 balloon_stats.current_pages += nr_pages;
263   - totalram_pages = balloon_stats.current_pages;
264 267  
265 268 out:
266 269 spin_unlock_irqrestore(&balloon_lock, flags);
... ... @@ -323,7 +326,6 @@
323 326 BUG_ON(ret != nr_pages);
324 327  
325 328 balloon_stats.current_pages -= nr_pages;
326   - totalram_pages = balloon_stats.current_pages;
327 329  
328 330 spin_unlock_irqrestore(&balloon_lock, flags);
329 331  
... ... @@ -422,7 +424,6 @@
422 424 pr_info("xen_balloon: Initialising balloon driver.\n");
423 425  
424 426 balloon_stats.current_pages = min(xen_start_info->nr_pages, max_pfn);
425   - totalram_pages = balloon_stats.current_pages;
426 427 balloon_stats.target_pages = balloon_stats.current_pages;
427 428 balloon_stats.balloon_low = 0;
428 429 balloon_stats.balloon_high = 0;