From 1d6a01365fd63fbf7c2709a183e2936728c8efad Mon Sep 17 00:00:00 2001
From: Fabio Estevam <fabio.estevam@freescale.com>
Date: Sat, 13 Dec 2014 11:02:08 -0800
Subject: [PATCH] Input: gpio_keys - fix warning regarding uninitialized
 'button' variable

Commit af906faabcf91eb1 ("Input: gpio_keys - fix warning regarding uninitialized
'irq' variable") introduced the following build warning:

drivers/input/keyboard/gpio_keys.c:625:16: warning: 'button' may be used uninitialized in this function [-Wmaybe-uninitialized]

Move the 'button' initialization to a proper location to avoid such warning.

Reported-by: Olof's autobuilder <build@lixom.net>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
 drivers/input/keyboard/gpio_keys.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
index b8b4876ac8d3..f44f05b70ee0 100644
--- a/drivers/input/keyboard/gpio_keys.c
+++ b/drivers/input/keyboard/gpio_keys.c
@@ -621,9 +621,12 @@ gpio_keys_get_devtree_pdata(struct device *dev)
 		int gpio = -1;
 		enum of_gpio_flags flags;
 
+		button = &pdata->buttons[i++];
+
 		if (!of_find_property(pp, "gpios", NULL)) {
 			button->irq = irq_of_parse_and_map(pp, 0);
 			if (button->irq == 0) {
+				i--;
 				pdata->nbuttons--;
 				dev_warn(dev, "Found button without gpios or irqs\n");
 				continue;
@@ -640,8 +643,6 @@ gpio_keys_get_devtree_pdata(struct device *dev)
 			}
 		}
 
-		button = &pdata->buttons[i++];
-
 		button->gpio = gpio;
 		button->active_low = flags & OF_GPIO_ACTIVE_LOW;
 
-- 
GitLab