• Minchan Kim's avatar
    virtio_balloon: fix race by fill and leak · f68b992b
    Minchan Kim authored
    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: default avatarMinchan Kim <minchan@kernel.org>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    f68b992b
virtio_balloon.c 17.2 KB