Gerd Hoffmann <kra...@redhat.com> 于2020年9月1日周二 下午3:16写道: > > Hi, > > > + /* wraparound */ > > + memory_region_set_dirty(&s->vga.vram, off_cur, > > s->cirrus_addr_mask - off_cur); > > > So the len is 's->cirrus_addr_mask->off_cur+1'. > > Correct.
So do you agree me the first set size should be 's->cirrus_addr_mask - off_cur+1'? > > > + memory_region_set_dirty(&s->vga.vram, 0, off_cur_end); > > > > For the 'off_cur_end' here, why we add 1 at the first?: > > > > "off_cur_end = ((off_cur + bytesperline - 1) & s->cirrus_addr_mask) + 1;" > ^^^^ > > This addition '1' is what I think should be substracted in wrapped cases. > > The +1 balances the -1 done before ... Then the second set size is ok. Thanks, Li Qiang > > take care, > Gerd >