Il 25/05/2013 12:19, Jan Kiszka ha scritto:
>          addr -= section->offset_within_address_space;
> -        len = MIN(section->size - addr, len);
                     ^^^^^^^^^^^^^   ^^^^

This is the size of a section minus an offset in the section.

> +        diff = int128_sub(section->mr->size, int128_make64(addr));
                             ^^^^^^^^^^^^^^^^^                ^^^^

This is the size of a region minus the same offset in the section.

> +        len = MIN(int128_get64(diff), len);
>  
>          /* Compute offset within MemoryRegion */
>          addr += section->offset_within_region;

So this has to be moved above.  Do you have a branch pushed somewhere
that I can test against?

Paolo


Reply via email to