diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2012-04-12 16:38:00 +0300 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2012-04-15 11:51:06 +0300 |
commit | 3ccc9372ed0fab33d20f10be3c1efd5776ff5913 (patch) | |
tree | c0e0422269e8d340906848e4993d268b8d4170ad /mm/sparse-vmemmap.c | |
parent | 1a87228f5f1d316002c7c161316f5524592be766 (diff) | |
download | op-kernel-dev-3ccc9372ed0fab33d20f10be3c1efd5776ff5913.zip op-kernel-dev-3ccc9372ed0fab33d20f10be3c1efd5776ff5913.tar.gz |
virtio_balloon: fix handling of PAGE_SIZE != 4k
As reported by David Gibson, current code handles PAGE_SIZE != 4k
completely wrong which can lead to guest memory corruption errors:
- page_to_balloon_pfn is wrong: e.g. on system with 64K page size
it gives the same pfn value for 16 different pages.
- we also need to convert back to linux pfns when we free.
- for each linux page we need to tell host about multiple balloon
pages, but code only adds one pfn to the array.
This patch fixes all that, tested with a 64k ppc64 kernel.
Reported-by: David Gibson <david@gibson.dropbear.id.au>
Tested-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'mm/sparse-vmemmap.c')
0 files changed, 0 insertions, 0 deletions