Message ID | 20161108134035.1764500-1-arnd@arndb.de |
---|---|
State | New |
Headers | show |
On Tue, Nov 08, 2016 at 02:40:06PM +0100, Arnd Bergmann wrote: > The newly added acpi_gpiochip_scan_gpios function produces a few harmless > warnings: > > drivers/gpio/gpiolib-acpi.c: In function ‘acpi_gpiochip_add’: > drivers/gpio/gpiolib-acpi.c:925:7: error: ‘dflags’ may be used uninitialized in this function [-Werror=maybe-uninitialized] > drivers/gpio/gpiolib-acpi.c:925:9: error: ‘lflags’ may be used uninitialized in this function [-Werror=maybe-uninitialized] > > The problem is that he compiler cannot know that a negative return value > from fwnode_property_read_u32_array() or acpi_gpiochip_pin_to_gpio_offset() > implies that the IS_ERR(gpio_desc) is true, as the value could in theory > be below -MAX_ERRNO. > > The function already initializes its output values to zero, and moving > that intialization a little higher up ensures that we can never have > uninitialized data in the caller. > > Fixes: c80f1ba75df2 ("ACPI / gpio: Add hogging support") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Nov 8, 2016 at 2:40 PM, Arnd Bergmann <arnd@arndb.de> wrote: > The newly added acpi_gpiochip_scan_gpios function produces a few harmless > warnings: > > drivers/gpio/gpiolib-acpi.c: In function ‘acpi_gpiochip_add’: > drivers/gpio/gpiolib-acpi.c:925:7: error: ‘dflags’ may be used uninitialized in this function [-Werror=maybe-uninitialized] > drivers/gpio/gpiolib-acpi.c:925:9: error: ‘lflags’ may be used uninitialized in this function [-Werror=maybe-uninitialized] > > The problem is that he compiler cannot know that a negative return value > from fwnode_property_read_u32_array() or acpi_gpiochip_pin_to_gpio_offset() > implies that the IS_ERR(gpio_desc) is true, as the value could in theory > be below -MAX_ERRNO. > > The function already initializes its output values to zero, and moving > that intialization a little higher up ensures that we can never have > uninitialized data in the caller. > > Fixes: c80f1ba75df2 ("ACPI / gpio: Add hogging support") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Patch applied with Mika's ACK. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c index 265e0fad518e..a3faefa44f68 100644 --- a/drivers/gpio/gpiolib-acpi.c +++ b/drivers/gpio/gpiolib-acpi.c @@ -869,6 +869,10 @@ static struct gpio_desc *acpi_gpiochip_parse_own_gpio( u32 gpios[2]; int ret; + *lflags = 0; + *dflags = 0; + *name = NULL; + ret = fwnode_property_read_u32_array(fwnode, "gpios", gpios, ARRAY_SIZE(gpios)); if (ret < 0) @@ -882,10 +886,6 @@ static struct gpio_desc *acpi_gpiochip_parse_own_gpio( if (IS_ERR(desc)) return desc; - *lflags = 0; - *dflags = 0; - *name = NULL; - if (gpios[1]) *lflags |= GPIO_ACTIVE_LOW;
The newly added acpi_gpiochip_scan_gpios function produces a few harmless warnings: drivers/gpio/gpiolib-acpi.c: In function ‘acpi_gpiochip_add’: drivers/gpio/gpiolib-acpi.c:925:7: error: ‘dflags’ may be used uninitialized in this function [-Werror=maybe-uninitialized] drivers/gpio/gpiolib-acpi.c:925:9: error: ‘lflags’ may be used uninitialized in this function [-Werror=maybe-uninitialized] The problem is that he compiler cannot know that a negative return value from fwnode_property_read_u32_array() or acpi_gpiochip_pin_to_gpio_offset() implies that the IS_ERR(gpio_desc) is true, as the value could in theory be below -MAX_ERRNO. The function already initializes its output values to zero, and moving that intialization a little higher up ensures that we can never have uninitialized data in the caller. Fixes: c80f1ba75df2 ("ACPI / gpio: Add hogging support") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- drivers/gpio/gpiolib-acpi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)