]> www.infradead.org Git - users/jedix/linux-maple.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)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 26 May 2016 22:43:54 +0000 (15:43 -0700)
commitff4e3629b04cbd8b6283bd3791bed464b4036e56
treea9ae9c0d4b7b4264f0a9232a25b05f7d9655bb27
parent2025e4cd6f3211dec133ac03aa61ea94295d42a9
virtio_balloon: fix race by fill and leak

Orabug: 23330627

[ Upstream commit f68b992bbb474641881932c61c92dcfa6f5b3689 ]

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.

Cc: <stable@vger.kernel.org>
Signed-off-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
(cherry picked from commit 3bbe9868ba5654df63f9e10766620f813e92fdf8)

Signed-off-by: Dan Duval <dan.duval@oracle.com>
drivers/virtio/virtio_balloon.c