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 37f4b74..7921f82 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);