[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] cirrus: handle wraparound in cirrus_invalidate_region
From: |
Li Qiang |
Subject: |
Re: [PATCH] cirrus: handle wraparound in cirrus_invalidate_region |
Date: |
Tue, 1 Sep 2020 15:37:17 +0800 |
Gerd Hoffmann <kraxel@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
>