]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commit
virtio_balloon: fix race by fill and leak
authorMinchan Kim <minchan@kernel.org>
Sun, 27 Dec 2015 23:35:12 +0000 (08:35 +0900)
committerTim Gardner <tim.gardner@canonical.com>
Wed, 6 Apr 2016 09:23:06 +0000 (10:23 +0100)
commit660ff819efc56fc0f4987b82e1b80f143da9cb23
tree05c17897107b53db3523c1d1b66bab36e97fd2d0
parentb408098828abfedb5ec295ccfcbed9161e4bec4d
virtio_balloon: fix race by fill and leak

BugLink: http://bugs.launchpad.net/bugs/1553179
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>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
drivers/virtio/virtio_balloon.c