[PATCH v2] iio: core: Replace BUG() with WARN_ON_ONCE() and error return
Rishab Madhugiri <[email protected]>
| Newsgroups | org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> --- 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