Re: [PATCH net] can: ctucanfd: handle bus error interrupts
[email protected] Fri, 24 Jul 2026 07:44:17 +0000
| Newsgroups | org.kernel.vger.linux-can |
|---|---|
| Message-ID | <[email protected]> |
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: Pre-existing issues: - [High] Un-ratelimited `netdev_info()` on bus errors causes a printk flood. -- --- Patch [1]: [PATCH net] can: ctucanfd: handle bus error interrupts --- commit dcd94808a20ebfaa5db627f0ee1ba372c3c77c87 Author: Avi Weiss <[email protected]> can: ctucanfd: handle bus error interrupts Include REG_INT_STAT_BEI in the top-level error interrupt condition. BEI is enabled when CAN_CTRLMODE_BERR_REPORTING is requested and ctucan_err_interrupt() already handles it. Without checking and clearing BEI in the top-level handler, bus error interrupts are not handled or acknowledged. > diff --git a/drivers/net/can/ctucanfd/ctucanfd_base.c b/drivers/net/can/ctucanfd/ctucanfd_base.c > index 0ea1ff28dfce8..0cd2d428c1f15 100644 > --- a/drivers/net/can/ctucanfd/ctucanfd_base.c > +++ b/drivers/net/can/ctucanfd/ctucanfd_base.c > @@ -1136,8 +1136,12 @@ static irqreturn_t ctucan_interrupt(int irq, void *dev_id) > /* Error interrupts */ > if (FIELD_GET(REG_INT_STAT_EWLI, isr) || > FIELD_GET(REG_INT_STAT_FCSI, isr) || > - FIELD_GET(REG_INT_STAT_ALI, isr)) { > - icr = isr & (REG_INT_STAT_EWLI | REG_INT_STAT_FCSI | REG_INT_STAT_ALI); > + FIELD_GET(REG_INT_STAT_ALI, isr) || > + FIELD_GET(REG_INT_STAT_BEI, isr)) { > + icr = isr & (REG_INT_STAT_EWLI | > + REG_INT_STAT_FCSI | > + REG_INT_STAT_ALI | > + REG_INT_STAT_BEI); > > ctucan_netdev_dbg(ndev, "some ERR interrupt: clearing 0x%08x\n", icr); > ctucan_write32(priv, CTUCANFD_INT_STAT, icr); [Severity: High] This isn't a bug introduced by this patch, but since we are now passing REG_INT_STAT_BEI into ctucan_err_interrupt() which is called directly after this write, could this cause a printk flood? Looking at ctucan_err_interrupt(): /* Check for Bus Error interrupt */ if (FIELD_GET(REG_INT_STAT_BEI, isr)) { netdev_info(ndev, "bus error\n"); This unconditional netdev_info() is called for every bus error interrupt, whereas other errors like ALI correctly use a dologerr ratelimit check. Would a flurry of bus errors overwhelm the system log? -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=1