diff options
author | Minchan Kim <minchan@kernel.org> | 2015-12-28 08:35:12 +0900 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-03-03 15:07:17 -0800 |
commit | ac3981b170863371c0386f9578d6bf4b8f961cc0 (patch) | |
tree | 06c18c4849920a43cda4973ef235a1edcabcc49e /mm | |
parent | 7d661c4658ce4485d5737eb522303d6eefa42749 (diff) | |
download | lwn-ac3981b170863371c0386f9578d6bf4b8f961cc0.tar.gz lwn-ac3981b170863371c0386f9578d6bf4b8f961cc0.zip |
virtio_balloon: fix race by fill and leak
commit f68b992bbb474641881932c61c92dcfa6f5b3689 upstream.
During my compaction-related stuff, I encountered a bug
with ballooning.
With repeated inflating and deflating cycle, guest memory(
ie, cat /proc/meminfo | grep MemTotal) is decreased and
couldn't be recovered.
The reason is balloon_lock doesn't cover release_pages_balloon
so struct virtio_balloon fields could be overwritten by race
of fill_balloon(e,g, vb->*pfns could be critical).
This patch fixes it in my test.
Signed-off-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'mm')
0 files changed, 0 insertions, 0 deletions