]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: adc: ad_sigma_delta: Fix use of uninitialized status_pos
authorPurva Yeshi <purvayeshi550@gmail.com>
Thu, 10 Apr 2025 17:04:08 +0000 (22:34 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 6 Jul 2025 09:00:07 +0000 (11:00 +0200)
[ Upstream commit e5cdb098a3cb165d52282ffc3a6448642953ea13 ]

Fix Smatch-detected issue:
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 adding a default case to the switch block to catch unexpected
values of `reg_size`. Use `dev_err_ratelimited()` for error logging and
`goto irq_handled` instead of returning early.

Signed-off-by: Purva Yeshi <purvayeshi550@gmail.com>
Link: https://patch.msgid.link/20250410170408.8585-1-purvayeshi550@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/iio/adc/ad_sigma_delta.c

index 7e21928707437baf9a2522f265d72194745205e6..533667eefe419c1ee1604b0359940e15c9633e8f 100644 (file)
@@ -476,6 +476,10 @@ static irqreturn_t ad_sd_trigger_handler(int irq, void *p)
                 * byte set to zero. */
                ad_sd_read_reg_raw(sigma_delta, data_reg, transfer_size, &data[1]);
                break;
+
+       default:
+               dev_err_ratelimited(&indio_dev->dev, "Unsupported reg_size: %u\n", reg_size);
+               goto irq_handled;
        }
 
        /*