Fix Smatch-detected error: drivers/iio/adc/ad_sigma_delta.c:604 ad_sd_trigger_handler() error: uninitialized symbol 'status_pos'. The variable `status_pos` was only initialized in specific switch cases (1, 2, 3, 4), which could leave it uninitialized if `reg_size` had an unexpected value. Fix by validating `reg_size` before the switch block. If it’s not one of the expected values, return early and log an error. This ensures `status_pos` is always initialized before use and prevents undefined behavior. Signed-off-by: Purva Yeshi --- drivers/iio/adc/ad_sigma_delta.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_delta.c index 6c37f8e21120..d3b59d90b728 100644 --- a/drivers/iio/adc/ad_sigma_delta.c +++ b/drivers/iio/adc/ad_sigma_delta.c @@ -568,6 +568,11 @@ static irqreturn_t ad_sd_trigger_handler(int irq, void *p) else transfer_size = reg_size; + if (reg_size != 1 && reg_size != 2 && reg_size != 3 && reg_size != 4) { + dev_err(&indio_dev->dev, "Unsupported reg_size: %u\n", reg_size); + return IRQ_HANDLED; + } + switch (reg_size) { case 4: case 2: -- 2.34.1