From: Rosen Penev Date: Sat, 20 Jun 2026 20:19:44 +0000 (-0700) Subject: kernel: replace BUG_ON/BUG with WARN_ON/WARN_ON X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7aec4efba8ec1b40a83e6141930a6235da7882fb;p=thirdparty%2Fopenwrt.git kernel: replace BUG_ON/BUG with WARN_ON/WARN_ON BUG() and BUG_ON() are deprecated - they destabilize the system and make debugging impossible. Replace with: - WARN_ON() + return error for assertion failures - WARN_ON_ONCE() for bounds checks - WARN_ON() + return -EPERM for in_interrupt() guards Assisted-by: Opencode:Big-Pickle Signed-off-by: Rosen Penev Link: https://github.com/openwrt/openwrt/pull/23892 Signed-off-by: Jonas Jelonek --- diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c index 71bf0bf04d2..1f47c35753f 100644 --- a/target/linux/generic/files/drivers/net/phy/ar8216.c +++ b/target/linux/generic/files/drivers/net/phy/ar8216.c @@ -2315,7 +2315,8 @@ ar8xxx_mib_init(struct ar8xxx_priv *priv) if (!ar8xxx_has_mib_counters(priv)) return 0; - BUG_ON(!priv->chip->mib_decs || !priv->chip->num_mibs); + if (WARN_ON(!priv->chip->mib_decs || !priv->chip->num_mibs)) + return -EINVAL; len = priv->dev.ports * priv->chip->num_mibs * sizeof(*priv->mib_stats); diff --git a/target/linux/generic/files/drivers/net/phy/rtl8306.c b/target/linux/generic/files/drivers/net/phy/rtl8306.c index a4b26642e26..5ddb874bf85 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8306.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8306.c @@ -266,7 +266,8 @@ rtl_set_page(struct rtl_priv *priv, unsigned int page) if (priv->page == page) return; - BUG_ON(page > RTL8306_NUM_PAGES); + if (WARN_ON_ONCE(page > RTL8306_NUM_PAGES)) + return; pgsel = bus->read(bus, 0, RTL8306_REG_PAGE); pgsel &= ~(RTL8306_REG_PAGE_LO | RTL8306_REG_PAGE_HI); if (page & (1 << 0)) @@ -320,7 +321,8 @@ rtl_get(struct switch_dev *dev, enum rtl_regidx s) const struct rtl_reg *r = &rtl_regs[s]; u16 val; - BUG_ON(s >= ARRAY_SIZE(rtl_regs)); + if (WARN_ON_ONCE(s >= ARRAY_SIZE(rtl_regs))) + return 0; if (r->bits == 0) /* unimplemented */ return 0; @@ -343,7 +345,8 @@ rtl_set(struct switch_dev *dev, enum rtl_regidx s, unsigned int val) const struct rtl_reg *r = &rtl_regs[s]; u16 mask = 0xffff; - BUG_ON(s >= ARRAY_SIZE(rtl_regs)); + if (WARN_ON_ONCE(s >= ARRAY_SIZE(rtl_regs))) + return -EINVAL; if (r->bits == 0) /* unimplemented */ return 0; diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c index aa8ef0bba27..84c6e7eca2f 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c @@ -257,7 +257,8 @@ static int __rtl8366_mdio_read_reg(struct rtl8366_smi *smi, u32 addr, u32 *data) u32 phy_id = smi->phy_id; struct mii_bus *mbus = smi->ext_mbus; - BUG_ON(in_interrupt()); + if (WARN_ON(in_interrupt())) + return -EPERM; mutex_lock(&mbus->mdio_lock); /* Write Start command to register 29 */ @@ -279,7 +280,7 @@ static int __rtl8366_mdio_read_reg(struct rtl8366_smi *smi, u32 addr, u32 *data) mbus->write(mbus, phy_id, MDC_MDIO_CTRL1_REG, MDC_MDIO_READ_OP); /* Write Start command to register 29 */ - mbus->write(smi->ext_mbus, phy_id, MDC_MDIO_START_REG, MDC_MDIO_START_OP); + mbus->write(mbus, phy_id, MDC_MDIO_START_REG, MDC_MDIO_START_OP); /* Read data from register 25 */ *data = mbus->read(mbus, phy_id, MDC_MDIO_DATA_READ_REG); @@ -294,7 +295,8 @@ static int __rtl8366_mdio_write_reg(struct rtl8366_smi *smi, u32 addr, u32 data) u32 phy_id = smi->phy_id; struct mii_bus *mbus = smi->ext_mbus; - BUG_ON(in_interrupt()); + if (WARN_ON(in_interrupt())) + return -EPERM; mutex_lock(&mbus->mdio_lock); @@ -1344,7 +1346,8 @@ struct rtl8366_smi *rtl8366_smi_alloc(struct device *parent) { struct rtl8366_smi *smi; - BUG_ON(!parent); + if (WARN_ON(!parent)) + return NULL; smi = kzalloc(sizeof(*smi), GFP_KERNEL); if (!smi) { diff --git a/target/linux/generic/files/drivers/net/phy/swconfig.c b/target/linux/generic/files/drivers/net/phy/swconfig.c index f902ddc9183..37c8ef74695 100644 --- a/target/linux/generic/files/drivers/net/phy/swconfig.c +++ b/target/linux/generic/files/drivers/net/phy/swconfig.c @@ -1114,7 +1114,8 @@ register_switch(struct switch_dev *dev, struct net_device *netdev) if (!dev->alias) dev->alias = netdev->name; } - BUG_ON(!dev->alias); + if (WARN_ON(!dev->alias)) + return -EINVAL; /* Make sure swdev_id doesn't overflow */ if (swdev_id == INT_MAX) {