* [PATCH] Fix section mismatch warning.
@ 2008-11-19 13:52 Sanjeev Premi
2008-11-20 0:26 ` David Brownell
0 siblings, 1 reply; 6+ messages in thread
From: Sanjeev Premi @ 2008-11-19 13:52 UTC (permalink / raw)
To: linux-omap; +Cc: Sanjeev Premi
This warning is observed when building for OMAP3EVM with pm-20081106.
WARNING: vmlinux.o(.data+0x89d4): Section mismatch in reference from the variable omap3evm_twldata to the variable .init.data:generic3430_t2scripts_data
The variable omap3evm_twldata references
the variable __initdata generic3430_t2scripts_data
If the reference is valid then annotate the
variable with __init* (see linux/init.h) or name the variable:
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
Signed-off-by: Sanjeev Premi <premi@ti.com>
---
arch/arm/mach-omap2/board-omap3evm.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index a72772f..65e0bdc 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -130,7 +130,7 @@ static struct twl4030_madc_platform_data omap3evm_madc_data = {
.irq_line = 1,
};
-static struct twl4030_platform_data omap3evm_twldata = {
+static struct twl4030_platform_data __initdata omap3evm_twldata = {
.irq_base = TWL4030_IRQ_BASE,
.irq_end = TWL4030_IRQ_END,
--
1.5.6
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix section mismatch warning.
2008-11-19 13:52 [PATCH] Fix section mismatch warning Sanjeev Premi
@ 2008-11-20 0:26 ` David Brownell
2008-11-20 12:44 ` Premi, Sanjeev
0 siblings, 1 reply; 6+ messages in thread
From: David Brownell @ 2008-11-20 0:26 UTC (permalink / raw)
To: Sanjeev Premi; +Cc: linux-omap
I know that Beagle and Overo get the same warnings, so this
isn't really a sufficient fix...
On Wednesday 19 November 2008, Sanjeev Premi wrote:
> --- a/arch/arm/mach-omap2/board-omap3evm.c
> +++ b/arch/arm/mach-omap2/board-omap3evm.c
> @@ -130,7 +130,7 @@ static struct twl4030_madc_platform_data omap3evm_madc_data = {
> .irq_line = 1,
> };
>
> -static struct twl4030_platform_data omap3evm_twldata = {
> +static struct twl4030_platform_data __initdata omap3evm_twldata = {
... and that's incorrect in any case, since that data is used
by probe() code that's doesn't sit in an init section.
I have the following in my patchset, currently disabled since
it conflicts with other patches. And in any case, Beagle can't
reboot with these "generic" scripts for some TBD reason.
- Dave
================= CUT HERE
---
arch/arm/mach-omap2/board-omap3beagle.c | 2 +-
arch/arm/mach-omap2/board-omap3evm.c | 2 +-
arch/arm/mach-omap2/board-overo.c | 2 +-
arch/arm/mach-omap2/twl4030-generic-scripts.c | 3 +++
arch/arm/mach-omap2/twl4030-generic-scripts.h | 5 +++++
5 files changed, 11 insertions(+), 3 deletions(-)
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -188,7 +188,7 @@ static struct twl4030_platform_data beag
/* platform_data for children goes here */
.usb = &beagle_usb_data,
.gpio = &beagle_gpio_data,
- .power = &generic3430_t2scripts_data,
+ .power = GENERIC3430_T2SCRIPTS_DATA,
};
static struct i2c_board_info __initdata beagle_i2c_boardinfo[] = {
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -140,7 +140,7 @@ static struct twl4030_platform_data omap
.keypad = &omap3evm_kp_data,
.madc = &omap3evm_madc_data,
.usb = &omap3evm_usb_data,
- .power = &generic3430_t2scripts_data,
+ .power = GENERIC3430_T2SCRIPTS_DATA,
.gpio = &omap3evm_gpio_data,
};
--- a/arch/arm/mach-omap2/board-overo.c
+++ b/arch/arm/mach-omap2/board-overo.c
@@ -162,7 +162,7 @@ static struct twl4030_platform_data over
.irq_end = TWL4030_IRQ_END,
.gpio = &overo_gpio_data,
.usb = &overo_usb_data,
- .power = &generic3430_t2scripts_data,
+ .power = GENERIC3430_T2SCRIPTS_DATA,
};
static struct i2c_board_info __initdata overo_i2c_boardinfo[] = {
--- a/arch/arm/mach-omap2/twl4030-generic-scripts.c
+++ b/arch/arm/mach-omap2/twl4030-generic-scripts.c
@@ -23,6 +23,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#ifdef CONFIG_TWL4030_POWER
+
#include <linux/kernel.h>
#include <linux/device.h>
#include <linux/init.h>
@@ -76,3 +78,4 @@ struct twl4030_power_data generic3430_t2
};
+#endif /* CONFIG_TWL4030_POWER */
--- a/arch/arm/mach-omap2/twl4030-generic-scripts.h
+++ b/arch/arm/mach-omap2/twl4030-generic-scripts.h
@@ -3,6 +3,11 @@
#include <linux/i2c/twl4030.h>
+#ifdef CONFIG_TWL4030_POWER
extern struct twl4030_power_data generic3430_t2scripts_data;
+#define GENERIC3430_T2SCRIPTS_DATA &generic3430_t2scripts_data
+#else
+#define GENERIC3430_T2SCRIPTS_DATA NULL
+#endif /* CONFIG_TWL4030_POWER */
#endif
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH] Fix section mismatch warning.
2008-11-20 0:26 ` David Brownell
@ 2008-11-20 12:44 ` Premi, Sanjeev
2008-11-20 12:55 ` Felipe Balbi
2008-11-20 13:41 ` David Brownell
0 siblings, 2 replies; 6+ messages in thread
From: Premi, Sanjeev @ 2008-11-20 12:44 UTC (permalink / raw)
To: David Brownell; +Cc: linux-omap@vger.kernel.org
> -----Original Message-----
> From: David Brownell [mailto:david-b@pacbell.net]
> Sent: Thursday, November 20, 2008 5:56 AM
> To: Premi, Sanjeev
> Cc: linux-omap@vger.kernel.org
> Subject: Re: [PATCH] Fix section mismatch warning.
>
> I know that Beagle and Overo get the same warnings, so this
> isn't really a sufficient fix...
Was trying to fix for EVM. Can extend to these boards once we have a fix.
>
> On Wednesday 19 November 2008, Sanjeev Premi wrote:
> > --- a/arch/arm/mach-omap2/board-omap3evm.c
> > +++ b/arch/arm/mach-omap2/board-omap3evm.c
> > @@ -130,7 +130,7 @@ static struct twl4030_madc_platform_data
> > omap3evm_madc_data = {
> > .irq_line = 1,
> > };
> >
> > -static struct twl4030_platform_data omap3evm_twldata = {
> > +static struct twl4030_platform_data __initdata omap3evm_twldata = {
>
> ... and that's incorrect in any case, since that data is used
> by probe() code that's doesn't sit in an init section.
Function probe() would be in __devinit. Changing __initdata to __devinit
would be fine for compilation. Do you see any issues with it?
BTW, I could not locate the definition of platform_driver for twl4030
to verify if probe() is indeed in __devinit.
> I have the following in my patchset, currently disabled since
> it conflicts with other patches. And in any case, Beagle
> can't reboot with these "generic" scripts for some TBD reason.
>
> - Dave
>
> ================= CUT HERE
> ---
> arch/arm/mach-omap2/board-omap3beagle.c | 2 +-
> arch/arm/mach-omap2/board-omap3evm.c | 2 +-
> arch/arm/mach-omap2/board-overo.c | 2 +-
> arch/arm/mach-omap2/twl4030-generic-scripts.c | 3 +++
> arch/arm/mach-omap2/twl4030-generic-scripts.h | 5 +++++
> 5 files changed, 11 insertions(+), 3 deletions(-)
>
> --- a/arch/arm/mach-omap2/board-omap3beagle.c
> +++ b/arch/arm/mach-omap2/board-omap3beagle.c
> @@ -188,7 +188,7 @@ static struct twl4030_platform_data beag
> /* platform_data for children goes here */
> .usb = &beagle_usb_data,
> .gpio = &beagle_gpio_data,
> - .power = &generic3430_t2scripts_data,
> + .power = GENERIC3430_T2SCRIPTS_DATA,
> };
>
> static struct i2c_board_info __initdata beagle_i2c_boardinfo[] = {
> --- a/arch/arm/mach-omap2/board-omap3evm.c
> +++ b/arch/arm/mach-omap2/board-omap3evm.c
> @@ -140,7 +140,7 @@ static struct twl4030_platform_data omap
> .keypad = &omap3evm_kp_data,
> .madc = &omap3evm_madc_data,
> .usb = &omap3evm_usb_data,
> - .power = &generic3430_t2scripts_data,
> + .power = GENERIC3430_T2SCRIPTS_DATA,
> .gpio = &omap3evm_gpio_data,
> };
>
> --- a/arch/arm/mach-omap2/board-overo.c
> +++ b/arch/arm/mach-omap2/board-overo.c
> @@ -162,7 +162,7 @@ static struct twl4030_platform_data over
> .irq_end = TWL4030_IRQ_END,
> .gpio = &overo_gpio_data,
> .usb = &overo_usb_data,
> - .power = &generic3430_t2scripts_data,
> + .power = GENERIC3430_T2SCRIPTS_DATA,
> };
>
> static struct i2c_board_info __initdata overo_i2c_boardinfo[] = {
> --- a/arch/arm/mach-omap2/twl4030-generic-scripts.c
> +++ b/arch/arm/mach-omap2/twl4030-generic-scripts.c
> @@ -23,6 +23,8 @@
> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> 02111-1307 USA
> */
>
> +#ifdef CONFIG_TWL4030_POWER
> +
> #include <linux/kernel.h>
> #include <linux/device.h>
> #include <linux/init.h>
> @@ -76,3 +78,4 @@ struct twl4030_power_data generic3430_t2 };
>
>
> +#endif /* CONFIG_TWL4030_POWER */
> --- a/arch/arm/mach-omap2/twl4030-generic-scripts.h
> +++ b/arch/arm/mach-omap2/twl4030-generic-scripts.h
> @@ -3,6 +3,11 @@
>
> #include <linux/i2c/twl4030.h>
>
> +#ifdef CONFIG_TWL4030_POWER
> extern struct twl4030_power_data generic3430_t2scripts_data;
> +#define GENERIC3430_T2SCRIPTS_DATA &generic3430_t2scripts_data #else
> +#define GENERIC3430_T2SCRIPTS_DATA NULL #endif /*
> CONFIG_TWL4030_POWER
> +*/
>
> #endif
>
>
> --
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix section mismatch warning.
2008-11-20 12:44 ` Premi, Sanjeev
@ 2008-11-20 12:55 ` Felipe Balbi
2008-11-21 0:14 ` David Brownell
2008-11-20 13:41 ` David Brownell
1 sibling, 1 reply; 6+ messages in thread
From: Felipe Balbi @ 2008-11-20 12:55 UTC (permalink / raw)
To: ext Premi, Sanjeev; +Cc: David Brownell, linux-omap@vger.kernel.org
On Thu, Nov 20, 2008 at 06:14:55PM +0530, ext Premi, Sanjeev wrote:
>
> > -----Original Message-----
> > From: David Brownell [mailto:david-b@pacbell.net]
> > Sent: Thursday, November 20, 2008 5:56 AM
> > To: Premi, Sanjeev
> > Cc: linux-omap@vger.kernel.org
> > Subject: Re: [PATCH] Fix section mismatch warning.
> >
> > I know that Beagle and Overo get the same warnings, so this
> > isn't really a sufficient fix...
>
> Was trying to fix for EVM. Can extend to these boards once we have a fix.
>
> >
> > On Wednesday 19 November 2008, Sanjeev Premi wrote:
> > > --- a/arch/arm/mach-omap2/board-omap3evm.c
> > > +++ b/arch/arm/mach-omap2/board-omap3evm.c
> > > @@ -130,7 +130,7 @@ static struct twl4030_madc_platform_data
> > > omap3evm_madc_data = {
> > > .irq_line = 1,
> > > };
> > >
> > > -static struct twl4030_platform_data omap3evm_twldata = {
> > > +static struct twl4030_platform_data __initdata omap3evm_twldata = {
> >
> > ... and that's incorrect in any case, since that data is used
> > by probe() code that's doesn't sit in an init section.
__initdata_or_module would do the trick for static and dynamically
linked modules. When building it statically, we'd get a bit of
shrinkage, right ?
> Function probe() would be in __devinit. Changing __initdata to __devinit
> would be fine for compilation. Do you see any issues with it?
doesn't make sense.
> BTW, I could not locate the definition of platform_driver for twl4030
> to verify if probe() is indeed in __devinit.
It's in drivers/base/platform.c
--
balbi
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix section mismatch warning.
2008-11-20 12:44 ` Premi, Sanjeev
2008-11-20 12:55 ` Felipe Balbi
@ 2008-11-20 13:41 ` David Brownell
1 sibling, 0 replies; 6+ messages in thread
From: David Brownell @ 2008-11-20 13:41 UTC (permalink / raw)
To: Premi, Sanjeev; +Cc: linux-omap@vger.kernel.org
On Thursday 20 November 2008, Premi, Sanjeev wrote:
> BTW, I could not locate the definition of platform_driver for twl4030
> to verify if probe() is indeed in __devinit.
In this case, drivers/mfd/twl4030-power.c is what will use that
data, and it's called from drivers/mfd/twl4030-core.c ... which
is an I2C client.
I don't know of any cases when it's safe to have I2C drivers
have their probe() use an __init or __devinit annotation.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix section mismatch warning.
2008-11-20 12:55 ` Felipe Balbi
@ 2008-11-21 0:14 ` David Brownell
0 siblings, 0 replies; 6+ messages in thread
From: David Brownell @ 2008-11-21 0:14 UTC (permalink / raw)
To: felipe.balbi; +Cc: ext Premi, Sanjeev, linux-omap@vger.kernel.org
On Thursday 20 November 2008, Felipe Balbi wrote:
> > > > -static struct twl4030_platform_data omap3evm_twldata = {
> > > > +static struct twl4030_platform_data __initdata omap3evm_twldata = {
> > >
> > > ... and that's incorrect in any case, since that data is used
> > > by probe() code that's doesn't sit in an init section.
>
> __initdata_or_module would do the trick for static and dynamically
> linked modules.
Not in this case. Recall there are several drivers who
would all need to be using non-hotpluggable structures ...
but since the root of their tree must be hotpluggable,
they can't work that way.
> When building it statically, we'd get a bit of
> shrinkage, right ?
Can't work that way.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-11-21 0:14 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-19 13:52 [PATCH] Fix section mismatch warning Sanjeev Premi
2008-11-20 0:26 ` David Brownell
2008-11-20 12:44 ` Premi, Sanjeev
2008-11-20 12:55 ` Felipe Balbi
2008-11-21 0:14 ` David Brownell
2008-11-20 13:41 ` David Brownell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox