This code is trying to extract the GIC_CONFIG_COUNTBITS field from read_gic_config(), so it needs to shift count_width right by the index of the least significant bit (__ffs) instead of the most significant bit (__fls) of the field mask.
Fixes: e07127a077c7 ("clocksource: mips-gic-timer: Use new GIC accessor functions") Cc: Paul Burton <paul.bur...@imgtec.com> Cc: sta...@vger.kernel.org Signed-off-by: Felix Fietkau <n...@nbd.name> --- drivers/clocksource/mips-gic-timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clocksource/mips-gic-timer.c b/drivers/clocksource/mips-gic-timer.c index a04808a21d4e..bf0eee78c6ef 100644 --- a/drivers/clocksource/mips-gic-timer.c +++ b/drivers/clocksource/mips-gic-timer.c @@ -166,7 +166,7 @@ static int __init __gic_clocksource_init(void) /* Set clocksource mask. */ count_width = read_gic_config() & GIC_CONFIG_COUNTBITS; - count_width >>= __fls(GIC_CONFIG_COUNTBITS); + count_width >>= __ffs(GIC_CONFIG_COUNTBITS); count_width *= 4; count_width += 32; gic_clocksource.mask = CLOCKSOURCE_MASK(count_width); -- 2.14.2