diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2017-03-15 14:19:59 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2017-03-15 14:19:59 +0000 |
| commit | 7584bf5e6fcb444a75687314ab9d06d2ba1f8e4e (patch) | |
| tree | 6acdb80a67286f60f5b72c8687a0b52171d516eb | |
| parent | 926e368388420a9728de1e31528ba48e7e8029b3 (diff) | |
| parent | 9dc44aa5829eb3131a01378a738dee28a382bbc1 (diff) | |
| download | focaccia-qemu-7584bf5e6fcb444a75687314ab9d06d2ba1f8e4e.tar.gz focaccia-qemu-7584bf5e6fcb444a75687314ab9d06d2ba1f8e4e.zip | |
Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging
# gpg: Signature made Wed 15 Mar 2017 05:05:04 GMT # gpg: using RSA key 0x9CA4ABB381AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>" # gpg: aka "Stefan Hajnoczi <stefanha@gmail.com>" # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/block-pull-request: os: don't corrupt pre-existing memory-backend data with prealloc Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| -rw-r--r-- | util/oslib-posix.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/util/oslib-posix.c b/util/oslib-posix.c index 956f66ab4a..94d81b9ec0 100644 --- a/util/oslib-posix.c +++ b/util/oslib-posix.c @@ -361,7 +361,19 @@ static void *do_touch_pages(void *arg) memset_thread_failed = true; } else { for (i = 0; i < numpages; i++) { - memset(addr, 0, 1); + /* + * Read & write back the same value, so we don't + * corrupt existing user/app data that might be + * stored. + * + * 'volatile' to stop compiler optimizing this away + * to a no-op + * + * TODO: get a better solution from kernel so we + * don't need to write at all so we don't cause + * wear on the storage backing the region... + */ + *(volatile char *)addr = *addr; addr += hpagesize; } } |