Module Name: src Committed By: riastradh Date: Fri Jul 14 12:57:10 UTC 2023
Modified Files: src/sys/arch/evbarm/g42xxeb: obio.c Log Message: evbarm/g42xxeb: Fix off-by-one in previous. The original find_first_bit(x) was 31 - __builtin_clz((uint32_t)x), which is equivalent to fls32(x) - 1, not to fls32(x). Note that fls32 is 1-based and returns 0 for x=0. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/evbarm/g42xxeb/obio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/evbarm/g42xxeb/obio.c diff -u src/sys/arch/evbarm/g42xxeb/obio.c:1.15 src/sys/arch/evbarm/g42xxeb/obio.c:1.16 --- src/sys/arch/evbarm/g42xxeb/obio.c:1.15 Thu Jul 13 20:22:29 2023 +++ src/sys/arch/evbarm/g42xxeb/obio.c Fri Jul 14 12:57:10 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: obio.c,v 1.15 2023/07/13 20:22:29 mrg Exp $ */ +/* $NetBSD: obio.c,v 1.16 2023/07/14 12:57:10 riastradh Exp $ */ /* * Copyright (c) 2002, 2003, 2005 Genetec corp. All rights reserved. @@ -156,7 +156,7 @@ obio_softint(void *arg) int psw; psw = disable_interrupts(I32_bit); - while ((irqno = fls32(sc->sc_intr_pending)) >= 0) { + while ((irqno = fls32(sc->sc_intr_pending) - 1) >= 0) { sc->sc_intr_pending &= ~(1U<<irqno); restore_interrupts(psw);