public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* ppc modprost warnings in 2.6.22-rc1
@ 2007-05-14 14:20 Meelis Roos
  2007-05-15 20:45 ` Sam Ravnborg
  0 siblings, 1 reply; 9+ messages in thread
From: Meelis Roos @ 2007-05-14 14:20 UTC (permalink / raw)
  To: Linux Kernel list

Trying to compile 2.6.22-rc1 for ppc (prep) arch. While section 
mismatches are an old thing, what are these COMMON symbols?

  MODPOST vmlinux
WARNING: "fee_restarts" [arch/ppc/kernel/built-in] is COMMON symbol
WARNING: "ee_restarts" [arch/ppc/kernel/built-in] is COMMON symbol
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x18) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x3c) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x114) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x138) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x15c) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x180) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x1a4) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x1c8) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x1ec) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x210) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x234) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x258) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x27c) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x2a0) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x2c4) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x2e8) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x30c) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x330) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x354) and 'Mesquite_pci_IRQ_map'
WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x378) and 'Mesquite_pci_IRQ_map'
WARNING: "primary_pteg_full" [arch/ppc/mm/built-in] is COMMON symbol
WARNING: "next_slot" [arch/ppc/mm/built-in] is COMMON symbol
WARNING: "htab_hash_searches" [arch/ppc/mm/built-in] is COMMON symbol
WARNING: arch/ppc/mm/built-in.o - Section mismatch: reference to .init.text:early_get_page from .text between 'pte_alloc_one_kernel' (at offset 0x1168) and 'hash_page'
WARNING: mm/built-in.o - Section mismatch: reference to .init.text:set_up_list3s from .text between 'kmem_cache_create' (at offset 0x24208) and 'kmem_cache_shrink'
WARNING: mm/built-in.o - Section mismatch: reference to .init.text:set_up_list3s from .text between 'kmem_cache_create' (at offset 0x24350) and 'kmem_cache_shrink'
WARNING: lib/built-in: '__div64_32' exported twice. Previous export was in arch/ppc/kernel/built-in.ko


-- 
Meelis Roos (mroos@linux.ee)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ppc modprost warnings in 2.6.22-rc1
  2007-05-14 14:20 ppc modprost warnings in 2.6.22-rc1 Meelis Roos
@ 2007-05-15 20:45 ` Sam Ravnborg
  2007-05-30 13:55   ` Meelis Roos
  0 siblings, 1 reply; 9+ messages in thread
From: Sam Ravnborg @ 2007-05-15 20:45 UTC (permalink / raw)
  To: Meelis Roos; +Cc: Linux Kernel list

On Mon, May 14, 2007 at 05:20:20PM +0300, Meelis Roos wrote:
> Trying to compile 2.6.22-rc1 for ppc (prep) arch. While section 
> mismatches are an old thing, what are these COMMON symbols?
> 
>   MODPOST vmlinux
> WARNING: "fee_restarts" [arch/ppc/kernel/built-in] is COMMON symbol
> WARNING: "ee_restarts" [arch/ppc/kernel/built-in] is COMMON symbol

Symbols that modpst see belongs to SHN_COMMON.
Should we drop that warning?

> WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x18) and 'Mesquite_pci_IRQ_map'
.....

mot_info is only used by functions marked __init.
So why not mark it __init so it get discarded and we get rid of all those warnings?

	Sam

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ppc modprost warnings in 2.6.22-rc1
  2007-05-15 20:45 ` Sam Ravnborg
@ 2007-05-30 13:55   ` Meelis Roos
  2007-05-30 14:58     ` Satyam Sharma
  2007-05-30 15:14     ` Sam Ravnborg
  0 siblings, 2 replies; 9+ messages in thread
From: Meelis Roos @ 2007-05-30 13:55 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Linux Kernel list

> > WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x18) and 'Mesquite_pci_IRQ_map'
> .....
> 
> mot_info is only used by functions marked __init.
> So why not mark it __init so it get discarded and we get rid of all those warnings?

How do I mark a initialized struct __init? Adding __init or const __init in
front of the declaration results in

  CC      arch/ppc/platforms/prep_pci.o
arch/ppc/platforms/prep_pci.c:806: error: mot_info causes a section type conflict

-- 
Meelis Roos (mroos@linux.ee)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ppc modprost warnings in 2.6.22-rc1
  2007-05-30 13:55   ` Meelis Roos
@ 2007-05-30 14:58     ` Satyam Sharma
  2007-05-30 16:14       ` [PATCH] [ppc] fix mot_info section Meelis Roos
  2007-05-30 16:15       ` ppc modprost warnings in 2.6.22-rc1 Meelis Roos
  2007-05-30 15:14     ` Sam Ravnborg
  1 sibling, 2 replies; 9+ messages in thread
From: Satyam Sharma @ 2007-05-30 14:58 UTC (permalink / raw)
  To: Meelis Roos; +Cc: Sam Ravnborg, Linux Kernel list

Hi Meelis,

On 5/30/07, Meelis Roos <mroos@linux.ee> wrote:
> > > WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x18) and 'Mesquite_pci_IRQ_map'
> > .....
> >
> > mot_info is only used by functions marked __init.
> > So why not mark it __init so it get discarded and we get rid of all those warnings?
>
> How do I mark a initialized struct __init? Adding __init or const __init in
> front of the declaration results in
>
>   CC      arch/ppc/platforms/prep_pci.o
> arch/ppc/platforms/prep_pci.c:806: error: mot_info causes a section type conflict

Data that is not accessed after initcalls are done (and hence can be
safely freed after kernel boot) must be marked __initdata.

Satyam

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: ppc modprost warnings in 2.6.22-rc1
  2007-05-30 13:55   ` Meelis Roos
  2007-05-30 14:58     ` Satyam Sharma
@ 2007-05-30 15:14     ` Sam Ravnborg
  1 sibling, 0 replies; 9+ messages in thread
From: Sam Ravnborg @ 2007-05-30 15:14 UTC (permalink / raw)
  To: Meelis Roos; +Cc: Linux Kernel list

On Wed, May 30, 2007 at 04:55:30PM +0300, Meelis Roos wrote:
> > > WARNING: arch/ppc/platforms/built-in.o - Section mismatch: reference to .init.text:Powerplus_Map_Non0 from .data between 'mot_info' (at offset 0x18) and 'Mesquite_pci_IRQ_map'
> > .....
> > 
> > mot_info is only used by functions marked __init.
> > So why not mark it __init so it get discarded and we get rid of all those warnings?
> 
> How do I mark a initialized struct __init? Adding __init or const __init in
> front of the declaration results in
> 
>   CC      arch/ppc/platforms/prep_pci.o
> arch/ppc/platforms/prep_pci.c:806: error: mot_info causes a section type conflict

>From include/linux/init.h:
 * For initialized data:
 * You should insert __initdata between the variable name and equal
 * sign followed by value, e.g.:
 *
 * static int init_variable __initdata = 0;
 * static char linux_logo[] __initdata = { 0x32, 0x36, ... };
 *
 * Don't forget to initialize data not at file scope, i.e. within a function,
 * as gcc otherwise puts the data into the bss section and not into the init
 * section.
 * 
 * Also note, that this data cannot be "const".

If you need more info we would need to update this comment.

	Sam

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH] [ppc] fix mot_info section
  2007-05-30 14:58     ` Satyam Sharma
@ 2007-05-30 16:14       ` Meelis Roos
  2007-05-30 17:08         ` Sam Ravnborg
  2007-05-30 16:15       ` ppc modprost warnings in 2.6.22-rc1 Meelis Roos
  1 sibling, 1 reply; 9+ messages in thread
From: Meelis Roos @ 2007-05-30 16:14 UTC (permalink / raw)
  Cc: Linux Kernel list

The following patch makes mot_info __initdata since it is used only in 
__init functions. prep_pci.c change has been tested in real life on 
Motorola Powerstack II (compiles without modpost warnings and boots 
fine), pplus.c has not been tested but seems similar.

Signed-off-by: Meelis Roos <mroos@linux.ee>

diff --git a/arch/ppc/platforms/pplus.c b/arch/ppc/platforms/pplus.c
index 8a1788c..9744108 100644
--- a/arch/ppc/platforms/pplus.c
+++ b/arch/ppc/platforms/pplus.c
@@ -256,7 +256,7 @@ struct brd_info {
 	const char *name;
 	int (*map_irq) (struct pci_dev *, unsigned char, unsigned char);
 };
-struct brd_info mot_info[] = {
+__initdata struct brd_info mot_info[] = {
 	{0x300, 0x00, 0x00, "MVME 2400", Genesis2_map_irq},
 	{0x1E0, 0xE0, 0x00, "Mesquite cPCI (MCP750)", mesquite_map_irq},
 	{0x1E0, 0xE1, 0x00, "Sitka cPCI (MCPN750)", sitka_map_irq},
diff --git a/arch/ppc/platforms/prep_pci.c b/arch/ppc/platforms/prep_pci.c
index 1df3150..bdec1f1 100644
--- a/arch/ppc/platforms/prep_pci.c
+++ b/arch/ppc/platforms/prep_pci.c
@@ -792,7 +792,7 @@ raven_init(void)
 	return 1;
 }
 
-struct mot_info {
+__initdata struct mot_info {
 	int		cpu_type;	/* 0x100 mask assumes for Raven and Hawk boards that the level/edge are set */
 					/* 0x200 if this board has a Hawk chip. */
 	int		base_type;

-- 
Meelis Roos (mroos@linux.ee)

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: ppc modprost warnings in 2.6.22-rc1
  2007-05-30 14:58     ` Satyam Sharma
  2007-05-30 16:14       ` [PATCH] [ppc] fix mot_info section Meelis Roos
@ 2007-05-30 16:15       ` Meelis Roos
  1 sibling, 0 replies; 9+ messages in thread
From: Meelis Roos @ 2007-05-30 16:15 UTC (permalink / raw)
  To: Satyam Sharma; +Cc: Sam Ravnborg, Linux Kernel list

> Data that is not accessed after initcalls are done (and hence can be
> safely freed after kernel boot) must be marked __initdata.

Thanks, yes, I have known it quite a long time, seems like todays heat
(around +30) is confusing me :(

Patch sent separately to LKML.

-- 
Meelis Roos (mroos@linux.ee)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] [ppc] fix mot_info section
  2007-05-30 16:14       ` [PATCH] [ppc] fix mot_info section Meelis Roos
@ 2007-05-30 17:08         ` Sam Ravnborg
  2007-05-30 17:23           ` Meelis Roos
  0 siblings, 1 reply; 9+ messages in thread
From: Sam Ravnborg @ 2007-05-30 17:08 UTC (permalink / raw)
  To: Meelis Roos
  Cc: "; no To-header on input" <""@mail.ravnborg.org>,
	Linux Kernel list

On Wed, May 30, 2007 at 07:14:49PM +0300, Meelis Roos wrote:
> The following patch makes mot_info __initdata since it is used only in 
> __init functions. prep_pci.c change has been tested in real life on 
> Motorola Powerstack II (compiles without modpost warnings and boots 
> fine), pplus.c has not been tested but seems similar.
> 
> Signed-off-by: Meelis Roos <mroos@linux.ee>
> 
> diff --git a/arch/ppc/platforms/pplus.c b/arch/ppc/platforms/pplus.c
> index 8a1788c..9744108 100644
> --- a/arch/ppc/platforms/pplus.c
> +++ b/arch/ppc/platforms/pplus.c
> @@ -256,7 +256,7 @@ struct brd_info {
>  	const char *name;
>  	int (*map_irq) (struct pci_dev *, unsigned char, unsigned char);
>  };
> -struct brd_info mot_info[] = {
> +__initdata struct brd_info mot_info[] = {
>  	{0x300, 0x00, 0x00, "MVME 2400", Genesis2_map_irq},
>  	{0x1E0, 0xE0, 0x00, "Mesquite cPCI (MCP750)", mesquite_map_irq},
>  	{0x1E0, 0xE1, 0x00, "Sitka cPCI (MCPN750)", sitka_map_irq},
> diff --git a/arch/ppc/platforms/prep_pci.c b/arch/ppc/platforms/prep_pci.c
> index 1df3150..bdec1f1 100644
> --- a/arch/ppc/platforms/prep_pci.c
> +++ b/arch/ppc/platforms/prep_pci.c
> @@ -792,7 +792,7 @@ raven_init(void)
>  	return 1;
>  }
>  
> -struct mot_info {
> +__initdata struct mot_info {
>  	int		cpu_type;	/* 0x100 mask assumes for Raven and Hawk boards that the level/edge are set */
>  					/* 0x200 if this board has a Hawk chip. */
>  	int		base_type;

The way you place __initdata is bogus.
Please read following from init.h again:

 * For initialized data:
 * You should insert __initdata between the variable name and equal
 * sign followed by value, e.g.:
 *
 * static int init_variable __initdata = 0;
 * static char linux_logo[] __initdata = { 0x32, 0x36, ... };

If gcc happes to accept your placement does not make it correct.
It is still bogus and unreadable.

	Sam

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] [ppc] fix mot_info section
  2007-05-30 17:08         ` Sam Ravnborg
@ 2007-05-30 17:23           ` Meelis Roos
  0 siblings, 0 replies; 9+ messages in thread
From: Meelis Roos @ 2007-05-30 17:23 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Linux Kernel list, Satyam Sharma

Thanks for the suggestions, here is updated patch:

The following patch makes mot_info __initdata since it is used only in
__init functions. prep_pci.c change has been tested in real life on
Motorola Powerstack II (compiles without modpost warnings and boots
fine), pplus.c has not been tested but seems similar.

Signed-off-by: Meelis Roos <mroos@linux.ee>

diff --git a/arch/ppc/platforms/pplus.c b/arch/ppc/platforms/pplus.c
index 8a1788c..c569962 100644
--- a/arch/ppc/platforms/pplus.c
+++ b/arch/ppc/platforms/pplus.c
@@ -256,7 +256,7 @@ struct brd_info {
 	const char *name;
 	int (*map_irq) (struct pci_dev *, unsigned char, unsigned char);
 };
-struct brd_info mot_info[] = {
+struct brd_info mot_info[] __initdata = {
 	{0x300, 0x00, 0x00, "MVME 2400", Genesis2_map_irq},
 	{0x1E0, 0xE0, 0x00, "Mesquite cPCI (MCP750)", mesquite_map_irq},
 	{0x1E0, 0xE1, 0x00, "Sitka cPCI (MCPN750)", sitka_map_irq},
diff --git a/arch/ppc/platforms/prep_pci.c b/arch/ppc/platforms/prep_pci.c
index 1df3150..d8c4e28 100644
--- a/arch/ppc/platforms/prep_pci.c
+++ b/arch/ppc/platforms/prep_pci.c
@@ -803,7 +803,7 @@ struct mot_info {
 	void            (*map_non0_bus)(struct pci_dev *);      /* For boards with more than bus 0 devices. */
 	struct powerplus_irq_list *pci_irq_list; /* List of PCI MPIC inputs */
 	unsigned char   secondary_bridge_devfn; /* devfn of secondary bus transparent bridge */
-} mot_info[] = {
+} mot_info[] __initdata = {
 	{0x300, 0x00, 0x00, "MVME 2400",			Genesis2_pci_IRQ_map,	Raven_pci_IRQ_routes, Powerplus_Map_Non0, &Powerplus_pci_IRQ_list, 0xFF},
 	{0x010, 0x00, 0x00, "Genesis",				Genesis_pci_IRQ_map,	Genesis_pci_IRQ_routes, Powerplus_Map_Non0, &Powerplus_pci_IRQ_list, 0x00},
 	{0x020, 0x00, 0x00, "Powerstack (Series E)",		Comet_pci_IRQ_map,	Comet_pci_IRQ_routes, NULL, NULL, 0x00},

-- 
Meelis Roos (mroos@linux.ee)

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2007-05-30 17:23 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-14 14:20 ppc modprost warnings in 2.6.22-rc1 Meelis Roos
2007-05-15 20:45 ` Sam Ravnborg
2007-05-30 13:55   ` Meelis Roos
2007-05-30 14:58     ` Satyam Sharma
2007-05-30 16:14       ` [PATCH] [ppc] fix mot_info section Meelis Roos
2007-05-30 17:08         ` Sam Ravnborg
2007-05-30 17:23           ` Meelis Roos
2007-05-30 16:15       ` ppc modprost warnings in 2.6.22-rc1 Meelis Roos
2007-05-30 15:14     ` Sam Ravnborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox