From patchwork Tue Nov 8 13:40:06 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 101564 Delivered-To: patch@linaro.org Received: by 10.140.97.165 with SMTP id m34csp1554571qge; Tue, 8 Nov 2016 05:44:05 -0800 (PST) X-Received: by 10.98.30.129 with SMTP id e123mr23304493pfe.175.1478612645622; Tue, 08 Nov 2016 05:44:05 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a5si21284333pat.319.2016.11.08.05.44.03; Tue, 08 Nov 2016 05:44:05 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752014AbcKHNnQ (ORCPT + 27 others); Tue, 8 Nov 2016 08:43:16 -0500 Received: from mout.kundenserver.de ([217.72.192.73]:51621 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751157AbcKHNnO (ORCPT ); Tue, 8 Nov 2016 08:43:14 -0500 Received: from wuerfel.lan. ([78.43.20.153]) by mrelayeu.kundenserver.de (mreue104) with ESMTPA (Nemesis) id 0Lecww-1ccdiL1inu-00qVYE; Tue, 08 Nov 2016 14:40:39 +0100 From: Arnd Bergmann To: Linus Walleij Cc: Arnd Bergmann , Alexandre Courbot , Mika Westerberg , "Rafael J. Wysocki" , Dmitry Torokhov , Wei Yongjun , Christophe Ricard , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] ACPI / gpio: avoid warning for gpio hogging code Date: Tue, 8 Nov 2016 14:40:06 +0100 Message-Id: <20161108134035.1764500-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 MIME-Version: 1.0 X-Provags-ID: V03:K0:2dDVVOP6288DixKle8dmYEYXvYWU7uPCiSh7uGtMMTuXNOmdqXl oAlA8uSTTJoNgJk2KHkXFOoldsqGwEosYzJsBTieXdKzymq2WEG3A+iXUy24TiPAS4XDTGx xkXu50sXK3x1nNXXeeFm17eA6mWV8bc5XT+T125DUm5+SbW0eFtrvUou14imiByFUOcewbo VIDrvtsBpZWnemdMssDDg== X-UI-Out-Filterresults: notjunk:1; V01:K0:PT0CmBQxBJQ=:7XGvWy84UMWtnu9fASKTbM 3U13i3xbm/aMHTMcVMjLyqJUIkGoslo0jhAPaEXLEnlywj3AAx6P+yWzpcdd1rjPjpGI5tFzl xINbm/BzTgjzrY1LGEV4iVBKbjdKhIFPKhJJFv9pkRP6wSmHDv8oVSqiYh1Ws5RLJoEgEwJ2d IV6axoTXYJJ66jyjVPX6zJnx5Azj91HfMsYG3f3FBr7Y/cq/e3PO5QZ3Bg/xfOWRLrABeCbK6 j+wsJyWtpZT8OYPC5gMKW13c7CZHvUf8tqQ3pzv2QxiwL6rOFq6xu6uef9XMajqQyXzYcnewb ti5ahds3+rAJ9xYfq/G+2nFELDvAHkTaiQN6jTwsBz+DU2nNGR8m9VG7/SMWbia4cglRHnLua 8qMClqLSpp4UpKazBaVutzxz3Ga3b6QsH6M1f4vsUP3VXhnQsG+mTI0m0R9H7Ts2Ujh6OeGvh G+eFoBnN2oz7C4nJqUubk7UY2aUgJzAiXIf0dQ7Ya3lgc7cc169Eo2f46d+zF7HuA6ihmoBZu jaJd5yIwMduDmezL+LFIKoNWYXGeiFyiVOdOcEjthttmvukwlMwUIcl6mPlgu7kj+Q3zR8n7d RMKO2CWLmR7JPmHYsM77mwe5fBsVqvialeoigjouvQlw1pDVE/ly1MnYdXOGFKYzR2ssN5UNI KpdumIHpsSazaHoPAn8NObTzBGBGCLPzBxD6LSVIYJ21fI0j519btboklzqAy98G7E2CLN7LU IfsO+05Hh2QgakEP Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- drivers/gpio/gpiolib-acpi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) -- 2.9.0 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;