From: Arnd Bergmann <arnd@arndb.de> To: linux-arm-kernel@lists.infradead.org Cc: arm@kernel.org, linux-kernel@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>, Magnus Damm <damm@opensource.se>, Linus Walleij <linus.walleij@linaro.org>, "Rafael J. Wysocki" <rjw@sisk.pl> Subject: [PATCH 06/11] gpio: em: do not discard em_gio_irq_domain_cleanup Date: Wed, 8 Aug 2012 16:47:23 +0200 [thread overview] Message-ID: <1344437248-20560-7-git-send-email-arnd@arndb.de> (raw) In-Reply-To: <1344437248-20560-1-git-send-email-arnd@arndb.de> The newly added gpio-em driver marks its em_gio_irq_domain_cleanup function as __devexit, which would lead to that function being discarded in case CONFIG_HOTPLUG is disabled. However, the function is also called by the error handling logic em_gio_probe, which would cause a jump into a NULL pointer if it was removed from the kernel or module. Without this patch, building kzm9d_defconfig results in: WARNING: drivers/gpio/built-in.o(.devinit.text+0x330): Section mismatch in reference from the function em_gio_probe() to the function .devexit.text:em_gio_irq_domain_cleanup() The function __devinit em_gio_probe() references a function __devexit em_gio_irq_domain_cleanup(). This is often seen when error handling in the init function uses functionality in the exit path. The fix is often to remove the __devexit annotation of em_gio_irq_domain_cleanup() so it may be used outside an exit section. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Magnus Damm <damm@opensource.se> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Rafael J. Wysocki <rjw@sisk.pl> --- drivers/gpio/gpio-em.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-em.c b/drivers/gpio/gpio-em.c index 150d976..ae37181 100644 --- a/drivers/gpio/gpio-em.c +++ b/drivers/gpio/gpio-em.c @@ -266,7 +266,7 @@ static int __devinit em_gio_irq_domain_init(struct em_gio_priv *p) return 0; } -static void __devexit em_gio_irq_domain_cleanup(struct em_gio_priv *p) +static void em_gio_irq_domain_cleanup(struct em_gio_priv *p) { struct gpio_em_config *pdata = p->pdev->dev.platform_data; -- 1.7.10
WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 06/11] gpio: em: do not discard em_gio_irq_domain_cleanup Date: Wed, 8 Aug 2012 16:47:23 +0200 [thread overview] Message-ID: <1344437248-20560-7-git-send-email-arnd@arndb.de> (raw) In-Reply-To: <1344437248-20560-1-git-send-email-arnd@arndb.de> The newly added gpio-em driver marks its em_gio_irq_domain_cleanup function as __devexit, which would lead to that function being discarded in case CONFIG_HOTPLUG is disabled. However, the function is also called by the error handling logic em_gio_probe, which would cause a jump into a NULL pointer if it was removed from the kernel or module. Without this patch, building kzm9d_defconfig results in: WARNING: drivers/gpio/built-in.o(.devinit.text+0x330): Section mismatch in reference from the function em_gio_probe() to the function .devexit.text:em_gio_irq_domain_cleanup() The function __devinit em_gio_probe() references a function __devexit em_gio_irq_domain_cleanup(). This is often seen when error handling in the init function uses functionality in the exit path. The fix is often to remove the __devexit annotation of em_gio_irq_domain_cleanup() so it may be used outside an exit section. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Magnus Damm <damm@opensource.se> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Rafael J. Wysocki <rjw@sisk.pl> --- drivers/gpio/gpio-em.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-em.c b/drivers/gpio/gpio-em.c index 150d976..ae37181 100644 --- a/drivers/gpio/gpio-em.c +++ b/drivers/gpio/gpio-em.c @@ -266,7 +266,7 @@ static int __devinit em_gio_irq_domain_init(struct em_gio_priv *p) return 0; } -static void __devexit em_gio_irq_domain_cleanup(struct em_gio_priv *p) +static void em_gio_irq_domain_cleanup(struct em_gio_priv *p) { struct gpio_em_config *pdata = p->pdev->dev.platform_data; -- 1.7.10
next prev parent reply other threads:[~2012-08-08 14:47 UTC|newest] Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-08-08 14:47 [PATCH 00/11] recently added ARM defconfig warnings Arnd Bergmann 2012-08-08 14:47 ` Arnd Bergmann 2012-08-08 14:47 ` [PATCH 01/11] ARM: topology: mark init_cpu_topology as __init Arnd Bergmann 2012-08-08 14:47 ` Arnd Bergmann 2012-08-08 17:53 ` Stephen Boyd 2012-08-08 17:53 ` Stephen Boyd 2012-08-08 19:14 ` Arnd Bergmann 2012-08-08 19:14 ` Arnd Bergmann 2012-08-08 14:47 ` [PATCH 02/11] mfd/asic3: fix asic3_mfd_probe return value Arnd Bergmann 2012-08-08 14:47 ` Arnd Bergmann 2012-08-08 14:47 ` [PATCH 03/11] usb/ohci-omap: remove unused variable Arnd Bergmann 2012-08-08 14:47 ` Arnd Bergmann 2012-08-08 15:25 ` Greg Kroah-Hartman 2012-08-08 15:25 ` Greg Kroah-Hartman 2012-08-08 15:34 ` Alan Stern 2012-08-08 15:34 ` Alan Stern 2012-08-08 14:47 ` [PATCH 04/11] ARM: ux500: really kill snowball_of_platform_devs Arnd Bergmann 2012-08-08 14:47 ` Arnd Bergmann 2012-08-08 16:22 ` Lee Jones 2012-08-08 16:22 ` Lee Jones 2012-08-08 17:19 ` Arnd Bergmann 2012-08-08 17:19 ` Arnd Bergmann 2012-08-08 14:47 ` [PATCH 05/11] ARM: exynos: exynos_pm_add_dev_to_genpd may be unused Arnd Bergmann 2012-08-08 14:47 ` Arnd Bergmann 2012-08-10 6:48 ` Kukjin Kim 2012-08-10 6:48 ` Kukjin Kim 2012-08-10 6:57 ` Thomas Abraham 2012-08-10 6:57 ` Thomas Abraham 2012-08-08 14:47 ` Arnd Bergmann [this message] 2012-08-08 14:47 ` [PATCH 06/11] gpio: em: do not discard em_gio_irq_domain_cleanup Arnd Bergmann 2012-08-10 10:59 ` Linus Walleij 2012-08-10 10:59 ` Linus Walleij 2012-08-10 11:33 ` Arnd Bergmann 2012-08-10 11:33 ` Arnd Bergmann 2012-08-08 14:47 ` [PATCH 07/11] net/stmmac: mark probe function as __devinit Arnd Bergmann 2012-08-08 14:47 ` Arnd Bergmann 2012-08-08 15:07 ` Stefan Roese 2012-08-08 15:07 ` Stefan Roese 2012-08-08 23:08 ` David Miller 2012-08-08 23:08 ` David Miller 2012-08-08 14:47 ` [PATCH 08/11] mtd/omap2: fix dmaengine_slave_config error handling Arnd Bergmann 2012-08-08 14:47 ` Arnd Bergmann 2012-08-08 14:47 ` [PATCH 09/11] regulator/twl: remove fixed resource handling Arnd Bergmann 2012-08-08 14:47 ` Arnd Bergmann 2012-08-08 14:50 ` Mark Brown 2012-08-08 14:50 ` Mark Brown 2012-08-08 15:06 ` Arnd Bergmann 2012-08-08 15:06 ` Arnd Bergmann 2012-08-08 14:47 ` [PATCH 10/11] spi/s3c64xx: improve error handling Arnd Bergmann 2012-08-08 14:47 ` Arnd Bergmann 2012-08-10 6:39 ` Kukjin Kim 2012-08-10 6:39 ` Kukjin Kim 2012-08-10 7:34 ` Arnd Bergmann 2012-08-10 7:34 ` Arnd Bergmann 2012-08-10 6:58 ` Thomas Abraham 2012-08-10 6:58 ` Thomas Abraham 2012-08-08 14:47 ` [PATCH 11/11] pm/drivers: fix use of SIMPLE_DEV_PM_OPS Arnd Bergmann 2012-08-08 14:47 ` Arnd Bergmann 2012-08-08 15:40 ` Stephen Warren 2012-08-08 15:40 ` Stephen Warren 2012-08-08 16:22 ` Arnd Bergmann 2012-08-08 16:22 ` Arnd Bergmann 2012-08-08 16:43 ` Takashi Iwai 2012-08-08 16:43 ` Takashi Iwai 2012-08-08 17:26 ` Arnd Bergmann 2012-08-08 17:26 ` Arnd Bergmann 2012-08-08 19:25 ` Rafael J. Wysocki 2012-08-08 19:25 ` Rafael J. Wysocki 2012-08-20 8:32 ` Herbert Xu 2012-08-20 8:32 ` Herbert Xu 2012-08-08 18:11 ` Kevin Hilman 2012-08-08 18:11 ` Kevin Hilman
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=1344437248-20560-7-git-send-email-arnd@arndb.de \ --to=arnd@arndb.de \ --cc=arm@kernel.org \ --cc=damm@opensource.se \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=rjw@sisk.pl \ /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: linkBe 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.