2018-06-04 21:14:10

by Nadav Amit

[permalink] [raw]
Subject: [PATCH] gpio: Fix wrong rounding in gpio-menz127

men_z127_debounce() tries to round up and down, but uses functions which
are only suitable when the divider is a power of two, which is not the
case. Use the appropriate ones.

Found by static check. Compile tested.

Fixes: f436bc2726c64 ("gpio: add driver for MEN 16Z127 GPIO controller")

Signed-off-by: Nadav Amit <[email protected]>
---
drivers/gpio/gpio-menz127.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpio/gpio-menz127.c b/drivers/gpio/gpio-menz127.c
index e1037582e34d..b2635326546e 100644
--- a/drivers/gpio/gpio-menz127.c
+++ b/drivers/gpio/gpio-menz127.c
@@ -56,9 +56,9 @@ static int men_z127_debounce(struct gpio_chip *gc, unsigned gpio,
rnd = fls(debounce) - 1;

if (rnd && (debounce & BIT(rnd - 1)))
- debounce = round_up(debounce, MEN_Z127_DB_MIN_US);
+ debounce = roundup(debounce, MEN_Z127_DB_MIN_US);
else
- debounce = round_down(debounce, MEN_Z127_DB_MIN_US);
+ debounce = rounddown(debounce, MEN_Z127_DB_MIN_US);

if (debounce > MEN_Z127_DB_MAX_US)
debounce = MEN_Z127_DB_MAX_US;
--
2.17.0



2018-06-12 08:42:58

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] gpio: Fix wrong rounding in gpio-menz127

On Mon, Jun 4, 2018 at 3:58 PM, Nadav Amit <[email protected]> wrote:

> men_z127_debounce() tries to round up and down, but uses functions which
> are only suitable when the divider is a power of two, which is not the
> case. Use the appropriate ones.
>
> Found by static check. Compile tested.
>
> Fixes: f436bc2726c64 ("gpio: add driver for MEN 16Z127 GPIO controller")
>
> Signed-off-by: Nadav Amit <[email protected]>

Applied as a non-critical fix as I have not error reports.

Yours,
Linus Walleij