On 26/03/2015 21:55, Peter Maydell wrote: > I feel like we're recapitulating history here -- is > c3c1bb99d undoing the fix that a87f39543a made for when we > tried this a year ago in 360e607, or is there something > more subtle going on ?
It's more subtle. The patch should only make a difference when address_space_translate_internal modifies *plen. The crux of the change is the first operand of this MIN: - len = MIN(len, (addr | iotlb.addr_mask) - addr + 1); + *plen = MIN(*plen, (addr | iotlb.addr_mask) - addr + 1); changing from len to *plen. Paolo