[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] ati-vga: increment mm_index in ati_mm_read/write
From: |
Gerd Hoffmann |
Subject: |
Re: [PATCH] ati-vga: increment mm_index in ati_mm_read/write |
Date: |
Wed, 3 Jun 2020 17:32:13 +0200 |
On Wed, Jun 03, 2020 at 08:05:50PM +0530, P J P wrote:
> +-- On Wed, 3 Jun 2020, Gerd Hoffmann wrote --+
> | Hmm, why modify mm_index? Shouldn't we just check it is non-zero
> | before calling ati_mm_read/ati_mm_write?
>
> if (s->regs.mm_index & BIT(31)) {
> ...
> } else {
} else if (s->regs.mm_index > 3) {
> ati_mm_write(s, s->regs.mm_index + addr - MM_DATA, data, size);
> }
>
> Exit condition for recursion is to set (mm_index & BIT(31)), so recursion
> would continue even with non-zero values I think.
It's wrapped into a case switch for all the registers. The code quoted
above is only entered for "addr >= MM_DATA && addr <= MM_DATA+3", so the
check should stop recursion. A less strict "s->regs.mm_index > 0" may
recurse a few times but will not recurse endless either.
cheers,
Gerd