Re: [PATCH v1] gpio: mmio: restroe get multiple gpio mask

From: Andy Shevchenko
Date: Mon Apr 24 2023 - 09:33:39 EST


On Sun, Apr 23, 2023 at 05:06:48PM +0800, Yan Wang wrote:
> Simplify the code,should not modify its logic.

> Fixes: 761b5c30c206 ("gpio: mmio: replace open-coded for_each_set_bit()")

What does it fix?

...

> for_each_set_bit(i, mask, gc->bgpio_bits) {
> - if (test_bit(i, bits))
> - *set_mask |= bgpio_line2mask(gc, i);
> - else
> - *clear_mask |= bgpio_line2mask(gc, i);
> + if (*mask == 0)
> + break;

Huh?!

We never enter here if mask is 0. So, do not add a dead code, please.

Moreover, in principle mask can be longer than 1 long, this code simply wrong.

NAK

> + if (__test_and_clear_bit(i, mask)) {
> + if (test_bit(i, bits))
> + *set_mask |= bgpio_line2mask(gc, i);
> + else
> + *clear_mask |= bgpio_line2mask(gc, i);
> + }
> }

--
With Best Regards,
Andy Shevchenko