On 25 May 2018 at 09:42, Shannon Zhao <zhaoshengl...@huawei.com> wrote: > On 2018/5/24 22:56, Peter Maydell wrote: >> We can fix the gicd_ipriority[] case simply by adding >> bmp = GIC_INTERNAL; >> before the assignment to 'field' in both kvm_dist_get_priority() >> and kvm_dist_put_priority(). This doesn't affect migration >> compatibility. We should do this separately from fixing the >> other bitmaps, because it's simpler. >> > If we do bmp += GIC_INTERNAL, we should also add this to offset, > otherwise we will put the SGI/PPIs data to SPIs, right?
Yes. This code seems remarkably hard to get right, I think because we effectively have three different things indexing through the loop -- irq, field, offset -- and they're all independently set to starting values in different places. thanks -- PMM