[PATCH v2] iio: core: Replace BUG() with WARN_ON_ONCE() and error return
From: Rishab Madhugiri
Date: Wed Aug 26 2026 - 17:32:03 EST
As documented in Documentation/process/deprecated.rst, the
use of BUG() and BUG_ON() should be avoided as they could
cause a complete system crash, preventing further debugging.
In iio_get_time_ns() and current_timestamp_clock_show(), the
clock type is already validated against supported clock
types prior to these calls, making the default switch
branches expected to be unreachable. Replace these with
WARN_ON_ONCE(1) followed by an error return to avoid a
crash and to log the highly unexpected condition.
Signed-off-by: Rishab Madhugiri <rishab.madhugiri@xxxxxxxxx>
---
v2:
- Use WARN_ON_ONCE(1) instead of WARN_ONCE() with string message as suggested
by Jonathan Cameron.
- Reference Documentation/process/deprecated.rst and clarify unreachability
of default branches and reasoning for using WARN family over BUG family
in commit message as per Andy Shevchenko's feedback.
drivers/iio/industrialio-core.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
index 767a7794624a..819a864d1136 100644
--- a/drivers/iio/industrialio-core.c
+++ b/drivers/iio/industrialio-core.c
@@ -341,7 +341,8 @@ s64 iio_get_time_ns(const struct iio_dev *indio_dev)
case CLOCK_TAI:
return ktime_get_clocktai_ns();
default:
- BUG();
+ WARN_ON_ONCE(1);
+ return 0;
}
}
EXPORT_SYMBOL(iio_get_time_ns);
@@ -1518,7 +1519,8 @@ static ssize_t current_timestamp_clock_show(struct device *dev,
case CLOCK_TAI:
break;
default:
- BUG();
+ WARN_ON_ONCE(1);
+ return -EINVAL;
}
return sysfs_emit(buf, "%s\n", clock_names[clk]);
--
2.43.0