Commit 3d65c9488cadd2f11bd4d60c7266e639ece5d0d6
Committed by
Jeremy Fitzhardinge
1 parent
b4606f2165
Exists in
master
and in
7 other branches
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; |