aboutsummaryrefslogtreecommitdiff
path: root/exec.c
diff options
context:
space:
mode:
authorWei Yang <richardw.yang@linux.intel.com>2019-07-12 11:27:04 +0800
committerPaolo Bonzini <pbonzini@redhat.com>2019-12-18 02:34:10 +0100
commit72821d93e0cc8c017bf387d2f8826a827cd6dc15 (patch)
tree14eeed36d1583a6fdf71683cbe91da9f8035ce3e /exec.c
parent5d248213180749e674fbccbacc6ee9c38499abb3 (diff)
migration: check length directly to make sure the range is aligned
Since the start addr is already checked, to make sure the range is aligned, checking the length is enough. Signed-off-by: Wei Yang <richardw.yang@linux.intel.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190712032704.7826-1-richardw.yang@linux.intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'exec.c')
-rw-r--r--exec.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/exec.c b/exec.c
index a34c348184..dfe2096d4a 100644
--- a/exec.c
+++ b/exec.c
@@ -3901,10 +3901,9 @@ int ram_block_discard_range(RAMBlock *rb, uint64_t start, size_t length)
if ((start + length) <= rb->used_length) {
bool need_madvise, need_fallocate;
- uint8_t *host_endaddr = host_startaddr + length;
- if ((uintptr_t)host_endaddr & (rb->page_size - 1)) {
- error_report("ram_block_discard_range: Unaligned end address: %p",
- host_endaddr);
+ if (length & (rb->page_size - 1)) {
+ error_report("ram_block_discard_range: Unaligned length: %zx",
+ length);
goto err;
}