mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org, arm@kernel.org,
	Arnd Bergmann <arnd@arndb.de>,
	Thomas Abraham <thomas.abraham@linaro.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Stephen Warren <swarren@nvidia.com>,
	Kukjin Kim <kgene.kim@samsung.com>
Subject: [PATCH 11/12] pinctrl: samsung: use __devinit section for init code
Date: Fri, 28 Sep 2012 23:36:16 +0200	[thread overview]
Message-ID: <1348868177-21205-12-git-send-email-arnd@arndb.de> (raw)
In-Reply-To: <1348868177-21205-1-git-send-email-arnd@arndb.de>

The samsung pinctrl driver has a probe function that is
__devinit and that calls a lot of other functions that are
marked __init, which kbuild complains about.

Marking everything __devinit means that the code does not
discarded when CONFIG_HOTPLUG is set, which is a little
more wasteful, but also more consistent

Without this patch, building exynos_defconfig results in:

WARNING: drivers/pinctrl/built-in.o(.devinit.text+0x124): Section mismatch in reference from the function samsung_pinctrl_probe() to the function .init.text:samsung_gpiolib_register()
The function __devinit samsung_pinctrl_probe() references
a function __init samsung_gpiolib_register().
If samsung_gpiolib_register is only used by samsung_pinctrl_probe then
annotate samsung_gpiolib_register with a matching annotation.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Thomas Abraham <thomas.abraham@linaro.org>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: Kukjin Kim <kgene.kim@samsung.com>
---
 drivers/pinctrl/pinctrl-samsung.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-samsung.c b/drivers/pinctrl/pinctrl-samsung.c
index dd108a9..861cd5f 100644
--- a/drivers/pinctrl/pinctrl-samsung.c
+++ b/drivers/pinctrl/pinctrl-samsung.c
@@ -513,7 +513,7 @@ static int samsung_gpio_direction_output(struct gpio_chip *gc, unsigned offset,
  * Parse the pin names listed in the 'samsung,pins' property and convert it
  * into a list of gpio numbers are create a pin group from it.
  */
-static int __init samsung_pinctrl_parse_dt_pins(struct platform_device *pdev,
+static int __devinit samsung_pinctrl_parse_dt_pins(struct platform_device *pdev,
 			struct device_node *cfg_np, struct pinctrl_desc *pctl,
 			unsigned int **pin_list, unsigned int *npins)
 {
@@ -560,7 +560,7 @@ static int __init samsung_pinctrl_parse_dt_pins(struct platform_device *pdev,
  * from device node of the pin-controller. A pin group is formed with all
  * the pins listed in the "samsung,pins" property.
  */
-static int __init samsung_pinctrl_parse_dt(struct platform_device *pdev,
+static int __devinit samsung_pinctrl_parse_dt(struct platform_device *pdev,
 				struct samsung_pinctrl_drv_data *drvdata)
 {
 	struct device *dev = &pdev->dev;
@@ -655,7 +655,7 @@ static int __init samsung_pinctrl_parse_dt(struct platform_device *pdev,
 }
 
 /* register the pinctrl interface with the pinctrl subsystem */
-static int __init samsung_pinctrl_register(struct platform_device *pdev,
+static int __devinit samsung_pinctrl_register(struct platform_device *pdev,
 				struct samsung_pinctrl_drv_data *drvdata)
 {
 	struct pinctrl_desc *ctrldesc = &drvdata->pctl;
@@ -729,7 +729,7 @@ static int __init samsung_pinctrl_register(struct platform_device *pdev,
 }
 
 /* register the gpiolib interface with the gpiolib subsystem */
-static int __init samsung_gpiolib_register(struct platform_device *pdev,
+static int __devinit samsung_gpiolib_register(struct platform_device *pdev,
 				struct samsung_pinctrl_drv_data *drvdata)
 {
 	struct gpio_chip *gc;
@@ -762,7 +762,7 @@ static int __init samsung_gpiolib_register(struct platform_device *pdev,
 }
 
 /* unregister the gpiolib interface with the gpiolib subsystem */
-static int __init samsung_gpiolib_unregister(struct platform_device *pdev,
+static int __devinit samsung_gpiolib_unregister(struct platform_device *pdev,
 				struct samsung_pinctrl_drv_data *drvdata)
 {
 	int ret = gpiochip_remove(drvdata->gc);
-- 
1.7.10


  parent reply	other threads:[~2012-09-28 21:38 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-28 21:36 [PATCH 00/12] New warnings and build errors in linux-next Arnd Bergmann
2012-09-28 21:36 ` [PATCH 01/12] mtd: atmel nand: build regression Arnd Bergmann
2012-09-29 19:53   ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-28 21:36 ` [PATCH 02/12] ata: mark probe function as __devinit rather than __init Arnd Bergmann
2012-09-28 21:38   ` Mark Langsdorf
2012-09-28 21:36 ` [PATCH 03/12] mmc: dw_mmc: fix building exynos driver as a module Arnd Bergmann
2012-10-01 11:05   ` Will Newton
2012-10-04 12:40     ` Seungwon Jeon
2012-09-28 21:36 ` [PATCH 04/12] video: exynos: warnings in exynos_dp_core.c Arnd Bergmann
2012-10-05  8:01   ` Jingoo Han
2012-10-05  8:16     ` Arnd Bergmann
2012-09-28 21:36 ` [PATCH 05/12] ARM: ixp4xx: use __iomem for MMIO Arnd Bergmann
2012-09-29 10:35   ` ARM SoC tree, Was: " Krzysztof Halasa
2012-09-29 14:58     ` Arnd Bergmann
2012-09-29 17:02       ` Krzysztof Halasa
2012-09-29 17:31         ` Olof Johansson
2012-09-29 17:44         ` Russell King - ARM Linux
2012-09-29 21:38           ` Krzysztof Halasa
2012-09-29 21:53             ` Russell King - ARM Linux
2012-09-30 17:01               ` Krzysztof Halasa
2012-09-28 21:36 ` [PATCH 06/12] sched: warnings in kernel/sched/fair.c Arnd Bergmann
2012-09-28 21:36 ` [PATCH 07/12] staging/iio/lis3l02dq: fix building without irq_to_gpio Arnd Bergmann
2012-09-29 10:02   ` Jonathan Cameron
2012-09-29 15:03     ` Arnd Bergmann
2012-10-13  9:54       ` Jonathan Cameron
2012-09-28 21:36 ` [PATCH 08/12] dtc: be more quiet with "make -s" Arnd Bergmann
2012-09-28 21:55   ` Stephen Warren
2012-09-29  7:27     ` Arnd Bergmann
2012-09-28 21:36 ` [PATCH 09/12] tty/console: fix warnings in drivers/tty/serial/kgdboc.c Arnd Bergmann
2012-09-28 21:45   ` Jason Wessel
2012-10-22 23:37     ` Greg Kroah-Hartman
2012-09-28 21:36 ` [PATCH 10/12] gpio: pcf857x: select IRQ_DOMAIN Arnd Bergmann
2012-09-30 21:39   ` Linus Walleij
2012-09-28 21:36 ` Arnd Bergmann [this message]
2012-10-01  6:15   ` [PATCH 11/12] pinctrl: samsung: use __devinit section for init code Linus Walleij
2012-10-02 11:52     ` Arnd Bergmann
2012-10-02 12:57       ` Linus Walleij
2012-10-02 20:28   ` Thierry Reding
2012-09-28 21:36 ` [PATCH 12/12] time/jiffies: bring back unconditional LATCH definition Arnd Bergmann
2012-09-28 21:55   ` John Stultz

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=1348868177-21205-12-git-send-email-arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=arm@kernel.org \
    --cc=kgene.kim@samsung.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=swarren@nvidia.com \
    --cc=thomas.abraham@linaro.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®