diff mbox

omap2+: pm: Fix section mismatch in pm_dbg_init()

Message ID 1308256260-15597-1-git-send-email-premi@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sanjeev Premi June 16, 2011, 8:31 p.m. UTC
Fix the section mismatch warning:

  WARNING: vmlinux.o(.text+0x21118): Section mismatch
  in reference from the function pm_dbg_init() to the
  function .init.text:pwrdms_setup()
  The function pm_dbg_init() references
  the function __init pwrdms_setup().
  This is often because pm_dbg_init lacks a __init
  annotation or the annotation of pwrdms_setup is wrong.

Signed-off-by: Sanjeev Premi <premi@ti.com>
---
 Applies to current linux-omap master

 arch/arm/mach-omap2/pm-debug.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

Kevin Hilman June 20, 2011, 9:09 p.m. UTC | #1
Sanjeev Premi <premi@ti.com> writes:

> Fix the section mismatch warning:
>
>   WARNING: vmlinux.o(.text+0x21118): Section mismatch
>   in reference from the function pm_dbg_init() to the
>   function .init.text:pwrdms_setup()
>   The function pm_dbg_init() references
>   the function __init pwrdms_setup().
>   This is often because pm_dbg_init lacks a __init
>   annotation or the annotation of pwrdms_setup is wrong.
>
> Signed-off-by: Sanjeev Premi <premi@ti.com>
> ---
>  Applies to current linux-omap master

A previous commit just removed the __init annotation here because of a
different conflict with the regset init.   The regset code is now
removed in my queue for 3.1, so this patch is fine on top of that
series.

Queueing for v3.1 (branch: for_3.1/pm-misc)

Thanks,

Kevin



>
>  arch/arm/mach-omap2/pm-debug.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c
> index e01da45..ef33273 100644
> --- a/arch/arm/mach-omap2/pm-debug.c
> +++ b/arch/arm/mach-omap2/pm-debug.c
> @@ -595,7 +595,7 @@ static int option_set(void *data, u64 val)
>  
>  DEFINE_SIMPLE_ATTRIBUTE(pm_dbg_option_fops, option_get, option_set, "%llu\n");
>  
> -static int pm_dbg_init(void)
> +static int __init pm_dbg_init(void)
>  {
>  	int i;
>  	struct dentry *d;
Russell King - ARM Linux June 20, 2011, 9:16 p.m. UTC | #2
On Mon, Jun 20, 2011 at 02:09:39PM -0700, Kevin Hilman wrote:
> Sanjeev Premi <premi@ti.com> writes:
> 
> > Fix the section mismatch warning:
> >
> >   WARNING: vmlinux.o(.text+0x21118): Section mismatch
> >   in reference from the function pm_dbg_init() to the
> >   function .init.text:pwrdms_setup()
> >   The function pm_dbg_init() references
> >   the function __init pwrdms_setup().
> >   This is often because pm_dbg_init lacks a __init
> >   annotation or the annotation of pwrdms_setup is wrong.
> >
> > Signed-off-by: Sanjeev Premi <premi@ti.com>
> > ---
> >  Applies to current linux-omap master
> 
> A previous commit just removed the __init annotation here because of a
> different conflict with the regset init.   The regset code is now
> removed in my queue for 3.1, so this patch is fine on top of that
> series.
> 
> Queueing for v3.1 (branch: for_3.1/pm-misc)

Sigh.  Please put some thought into it first and stop applying patches
without first doing some analysis and test-buliding the thing.  Otherwise
you're going to be applying patches for ever which add and delete
these things.

If you make pm_dbg_init() __init, then you also have to make
pm_dbg_regset_init() __init too.  What about the callers to
pm_dbg_regset_init() - are these marked __init or not?  If not,
they too will have to be marked __init, etc.

If that's not possible, then the __init attribute must be deleted
from pwrdms_setup().
Kevin Hilman June 20, 2011, 10:18 p.m. UTC | #3
Russell King - ARM Linux <linux@arm.linux.org.uk> writes:

> On Mon, Jun 20, 2011 at 02:09:39PM -0700, Kevin Hilman wrote:
>> Sanjeev Premi <premi@ti.com> writes:
>> 
>> > Fix the section mismatch warning:
>> >
>> >   WARNING: vmlinux.o(.text+0x21118): Section mismatch
>> >   in reference from the function pm_dbg_init() to the
>> >   function .init.text:pwrdms_setup()
>> >   The function pm_dbg_init() references
>> >   the function __init pwrdms_setup().
>> >   This is often because pm_dbg_init lacks a __init
>> >   annotation or the annotation of pwrdms_setup is wrong.
>> >
>> > Signed-off-by: Sanjeev Premi <premi@ti.com>
>> > ---
>> >  Applies to current linux-omap master
>> 
>> A previous commit just removed the __init annotation here because of a
>> different conflict with the regset init.   The regset code is now
>> removed in my queue for 3.1, so this patch is fine on top of that
>> series.
>> 
>> Queueing for v3.1 (branch: for_3.1/pm-misc)
>
> Sigh.  Please put some thought into it first and stop applying patches
> without first doing some analysis and test-buliding the thing.  Otherwise
> you're going to be applying patches for ever which add and delete
> these things.
>
> If you make pm_dbg_init() __init, then you also have to make
> pm_dbg_regset_init() __init too.  What about the callers to
> pm_dbg_regset_init() - are these marked __init or not?  If not,
> they too will have to be marked __init, etc.
>
> If that's not possible, then the __init attribute must be deleted
> from pwrdms_setup().

As I mentioned above, the regset code (pm_dbg_regset_*) is being removed
in a pending series I already have queued.

Thus, adding back the __init here is fine.  

It was thought about and test built.

Kevin
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c
index e01da45..ef33273 100644
--- a/arch/arm/mach-omap2/pm-debug.c
+++ b/arch/arm/mach-omap2/pm-debug.c
@@ -595,7 +595,7 @@  static int option_set(void *data, u64 val)
 
 DEFINE_SIMPLE_ATTRIBUTE(pm_dbg_option_fops, option_get, option_set, "%llu\n");
 
-static int pm_dbg_init(void)
+static int __init pm_dbg_init(void)
 {
 	int i;
 	struct dentry *d;