* Wei Yang (richardw.y...@linux.intel.com) wrote:
> 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.y...@linux.intel.com>
> ---
>  exec.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/exec.c b/exec.c
> index 50ea9c5aaa..8fa980baae 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -4067,10 +4067,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: %lx",
> +                         length);

Yes, I *think* this is safe, we'll need to watch out for any warnings;
David Gibson's balloon fix from February means that the balloon code
should now warn in it's case.

rth: Want to pick this up?

Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com>

>              goto err;
>          }
>  
> -- 
> 2.17.1
> 
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK

Reply via email to