iio: adc: stmpe-adc: Shuffle an if statement around in stmpe_adc_isr
authorNathan Chancellor <natechancellor@gmail.com>
Thu, 7 Mar 2019 17:16:04 +0000 (10:16 -0700)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 4 Apr 2019 19:19:56 +0000 (20:19 +0100)
When building with -Wsometimes-uninitialized, Clang warns:

drivers/iio/adc/stmpe-adc.c:204:13: warning: variable 'data' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]

Clang can't tell that data will never be used uninitialized because the
two if statements take care of all cases. Remove the first if statement
and make it the else branch of the second one so that it is apparent to
Clang that all cases are covered.

Link: https://github.com/ClangBuiltLinux/linux/issues/387
Suggested-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: NIck Desaulniers <ndesaulniers@google.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/stmpe-adc.c

index 37f4b74a5d3230eb13e8fb569f36a13938219770..7921f827c6ec4747511d6fb0955112119429c44d 100644 (file)
@@ -184,9 +184,6 @@ static irqreturn_t stmpe_adc_isr(int irq, void *dev_id)
        struct stmpe_adc *info = (struct stmpe_adc *)dev_id;
        u16 data;
 
-       if (info->channel > STMPE_TEMP_CHANNEL)
-               return IRQ_NONE;
-
        if (info->channel <= STMPE_ADC_LAST_NR) {
                int int_sta;
 
@@ -205,6 +202,8 @@ static irqreturn_t stmpe_adc_isr(int irq, void *dev_id)
                /* Read value */
                stmpe_block_read(info->stmpe, STMPE_REG_TEMP_DATA, 2,
                                (u8 *) &data);
+       } else {
+               return IRQ_NONE;
        }
 
        info->value = (u32) be16_to_cpu(data);