All of lore.kernel.org
 help / color / mirror / Atom feed
From: "G, Manjunath Kondaiah" <manjugk@ti.com>
To: linux-omap@vger.kernel.org
Cc: linux-input@vger.kernel.org, Dmitry Torokhov <dtor@mail.ru>,
	linux-arm-kernel@lists.infradead.org,
	Tony Lindgren <tony@atomide.com>
Subject: [PATCH v2] OMAP3: Keypad: Fix failure exit path in probe
Date: Tue, 21 Sep 2010 17:19:30 +0530	[thread overview]
Message-ID: <1285069770-4261-1-git-send-email-manjugk@ti.com> (raw)

The failure exit paths seems to be wrong in probe function.
This patch corrects exit failure paths for error handling
cases.

Boot warning incase of request irq failure:

[    1.553985] twl4030_keypad twl4030_keypad: request_irq failed for irq no=369
[    1.561157] ------------[ cut here ]------------
[    1.565795] WARNING: at kernel/irq/manage.c:899 __free_irq+0x88/0x164()
[    1.572418] Trying to free already-free IRQ 369
[    1.576965] Modules linked in:
[    1.580047] [<c00470ec>] (unwind_backtrace+0x0/0xe4) from [<c0078b5c>] (warn_slowpath_common+0x4c/0x64)
[    1.589477] [<c0078b5c>] (warn_slowpath_common+0x4c/0x64) from [<c0078bf4>] (warn_slowpath_fmt+0x2c/0x3c)
[    1.599060] [<c0078bf4>] (warn_slowpath_fmt+0x2c/0x3c) from [<c00adb90>] (__free_irq+0x88/0x164)
[    1.607849] [<c00adb90>] (__free_irq+0x88/0x164) from [<c00adca8>] (free_irq+0x3c/0x5c)
[    1.615875] [<c00adca8>] (free_irq+0x3c/0x5c) from [<c043ab2c>] (twl4030_kp_probe+0x308/0x374)
[    1.624511] [<c043ab2c>] (twl4030_kp_probe+0x308/0x374) from [<c023c338>] (platform_drv_probe+0x14/0x18)
[    1.634033] [<c023c338>] (platform_drv_probe+0x14/0x18) from [<c023b4dc>] (driver_probe_device+0xc8/0x184)
[    1.643707] [<c023b4dc>] (driver_probe_device+0xc8/0x184) from [<c023b600>] (__driver_attach+0x68/0x8c)
[    1.653106] [<c023b600>] (__driver_attach+0x68/0x8c) from [<c023ad34>] (bus_for_each_dev+0x48/0x74)
[    1.662170] [<c023ad34>] (bus_for_each_dev+0x48/0x74) from [<c023a690>] (bus_add_driver+0x9c/0x210)
[    1.671234] [<c023a690>] (bus_add_driver+0x9c/0x210) from [<c023b8f8>] (driver_register+0xa8/0x134)
[    1.680297] [<c023b8f8>] (driver_register+0xa8/0x134) from [<c0041340>] (do_one_initcall+0x58/0x1b4)
[    1.689453] [<c0041340>] (do_one_initcall+0x58/0x1b4) from [<c0008574>] (kernel_init+0x98/0x150)
[    1.698272] [<c0008574>] (kernel_init+0x98/0x150) from [<c0042970>] (kernel_thread_exit+0x0/0x8)
[    1.707214] ---[ end trace 6559b322ad3cbdfe ]---
[    1.718292] twl4030_keypad: probe of twl4030_keypad failed with error -16

Signed-off-by: G, Manjunath Kondaiah <manjugk@ti.com>
Cc: linux-input@vger.kernel.org
Cc: Dmitry Torokhov <dtor@mail.ru>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-input@vger.kernel.org
Cc: Tony Lindgren <tony@atomide.com>
---
 version v1 : initial patch
 version v2 : CC'ed input subsystem and arm kernel mailing lists.

 drivers/input/keyboard/twl4030_keypad.c |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/input/keyboard/twl4030_keypad.c b/drivers/input/keyboard/twl4030_keypad.c
index fb16b5e..39a9f30 100644
--- a/drivers/input/keyboard/twl4030_keypad.c
+++ b/drivers/input/keyboard/twl4030_keypad.c
@@ -347,8 +347,7 @@ static int __devinit twl4030_kp_probe(struct platform_device *pdev)
 	kp = kzalloc(sizeof(*kp), GFP_KERNEL);
 	input = input_allocate_device();
 	if (!kp || !input) {
-		error = -ENOMEM;
-		goto err1;
+		return -ENOMEM;
 	}
 
 	/* Get the debug Device */
@@ -406,23 +405,22 @@ static int __devinit twl4030_kp_probe(struct platform_device *pdev)
 	if (error) {
 		dev_info(kp->dbg_dev, "request_irq failed for irq no=%d\n",
 			kp->irq);
-		goto err3;
+		goto err2;
 	}
 
 	/* Enable KP and TO interrupts now. */
 	reg = (u8) ~(KEYP_IMR1_KP | KEYP_IMR1_TO);
 	if (twl4030_kpwrite_u8(kp, reg, KEYP_IMR1)) {
 		error = -EIO;
-		goto err4;
+		goto err3;
 	}
 
 	platform_set_drvdata(pdev, kp);
 	return 0;
 
-err4:
+err3:
 	/* mask all events - we don't care about the result */
 	(void) twl4030_kpwrite_u8(kp, 0xff, KEYP_IMR1);
-err3:
 	free_irq(kp->irq, NULL);
 err2:
 	input_unregister_device(input);
-- 
1.7.0.4


             reply	other threads:[~2010-09-21 11:49 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-21 11:49 G, Manjunath Kondaiah [this message]
2010-09-21 13:34 ` [PATCH v2] OMAP3: Keypad: Fix failure exit path in probe Ameya Palande
2010-09-21 13:34   ` Ameya Palande
2010-09-21 13:41   ` G, Manjunath Kondaiah
2010-09-21 13:41     ` G, Manjunath Kondaiah
2010-09-21 16:26     ` Dmitry Torokhov
2010-09-21 16:26       ` Dmitry Torokhov
2010-09-22  9:08       ` G, Manjunath Kondaiah
2010-09-22  9:08         ` G, Manjunath Kondaiah
2010-10-04  8:02       ` G, Manjunath Kondaiah
2010-10-04  8:02         ` G, Manjunath Kondaiah
2010-10-04 18:28         ` Dmitry Torokhov
2010-10-04 18:28           ` Dmitry Torokhov
2010-10-04 18:52           ` G, Manjunath Kondaiah
2010-10-04 18:52             ` G, Manjunath Kondaiah
2010-09-24 11:30 ` Datta, Shubhrajyoti
2010-09-24 11:30   ` Datta, Shubhrajyoti
2010-09-24 11:40   ` G, Manjunath Kondaiah
2010-09-24 11:40     ` G, Manjunath Kondaiah
2010-09-24 15:35     ` Datta, Shubhrajyoti
2010-09-24 15:35       ` Datta, Shubhrajyoti

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1285069770-4261-1-git-send-email-manjugk@ti.com \
    --to=manjugk@ti.com \
    --cc=dtor@mail.ru \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.