diff options
| author | Michael S. Tsirkin <[email protected]> | 2012-04-12 13:38:00 +0000 |
|---|---|---|
| committer | Michael S. Tsirkin <[email protected]> | 2012-04-15 08:51:06 +0000 |
| commit | 3ccc9372ed0fab33d20f10be3c1efd5776ff5913 (patch) | |
| tree | c0e0422269e8d340906848e4993d268b8d4170ad /lib/mpi/mpi-bit.c | |
| parent | virtio_balloon: Fix endian bug (diff) | |
| download | kernel-3ccc9372ed0fab33d20f10be3c1efd5776ff5913.tar.gz kernel-3ccc9372ed0fab33d20f10be3c1efd5776ff5913.zip | |
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 <[email protected]>
Tested-by: David Gibson <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>
Diffstat (limited to 'lib/mpi/mpi-bit.c')
0 files changed, 0 insertions, 0 deletions
