Re: [PATCH] x86-64: Calgary - fix section mismatch warnings in tce

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 26, 2007 at 12:06:11PM +0300, Muli Ben-Yehuda wrote:
> On Thu, Jul 26, 2007 at 08:23:30AM +0200, Sam Ravnborg wrote:
> > Fix the following two section mismatch warnings:
> > 
> > WARNING: vmlinux.o(.text+0x1ce84): Section mismatch: reference to .init.text:free_bootmem (between 'free_tce_table' and 'build_tce_table')
> > WARNING: vmlinux.o(.text+0x1d04d): Section mismatch: reference to .init.text:__alloc_bootmem_low (between 'alloc_tce_table' and 'kretprobe_trampoline_holder')
> > 
> > In both cases the functions was used only from __init
> > context so mark them __init.
> > 
> > Signed-off-by: Sam Ravnborg <[email protected]>
> 
> There was a more complete patch by Randy Dunlap posted a couple of
> days ago that I queued for the next Calgary update. However, since
> people are tripping over this and are bothered enough to send patches,
> Andi or Andrew, could you please expedite the attached patch upstream?

Now I recall I saw it too :-(
This one is beeter although the __init in the prototype declaration
should have no effect. (Also wonder why the prototypes are extern - that
should be a no-op too).

	Sam

> 
> ====
> 
> From: Randy Dunlap <[email protected]>
> Subject: x86-64: Calgary - fix section mismatch warnings in tce
> 
> Fix section mismatch warnings:
> these functions are called only from __init functions.
> 
> WARNING: vmlinux.o(.text+0x1861c): Section mismatch: reference to .init.text:free_bootmem (between 'free_tce_table' and 'build_tce_table')
> WARNING: vmlinux.o(.text+0x187e5): Section mismatch: reference to .init.text:__alloc_bootmem_low (between 'alloc_tce_table' and 'kretprobe_trampoline_holder')
> 
> Signed-off-by: Randy Dunlap <[email protected]>
> Signed-off-by: Muli Ben-Yehuda <[email protected]>
> ---
>  arch/x86_64/kernel/tce.c |    6 +++---
>  include/asm-x86_64/tce.h |    6 +++---
>  2 files changed, 6 insertions(+), 6 deletions(-)
> 
> --- linux-2.6.23-rc1.orig/arch/x86_64/kernel/tce.c
> +++ linux-2.6.23-rc1/arch/x86_64/kernel/tce.c
> @@ -131,7 +131,7 @@ done:
>  	return ret;
>  }
>  
> -int build_tce_table(struct pci_dev *dev, void __iomem *bbar)
> +int __init build_tce_table(struct pci_dev *dev, void __iomem *bbar)
>  {
>  	struct iommu_table *tbl;
>  	int ret;
> @@ -165,7 +165,7 @@ done:
>  	return ret;
>  }
>  
> -void* alloc_tce_table(void)
> +void* __init alloc_tce_table(void)
>  {
>  	unsigned int size;
>  
> @@ -175,7 +175,7 @@ void* alloc_tce_table(void)
>  	return __alloc_bootmem_low(size, size, 0);
>  }
>  
> -void free_tce_table(void *tbl)
> +void __init free_tce_table(void *tbl)
>  {
>  	unsigned int size;
>  
> --- linux-2.6.23-rc1.orig/include/asm-x86_64/tce.h
> +++ linux-2.6.23-rc1/include/asm-x86_64/tce.h
> @@ -41,8 +41,8 @@ struct iommu_table;
>  extern void tce_build(struct iommu_table *tbl, unsigned long index,
>          unsigned int npages, unsigned long uaddr, int direction);
>  extern void tce_free(struct iommu_table *tbl, long index, unsigned int npages);
> -extern void* alloc_tce_table(void);
> -extern void free_tce_table(void *tbl);
> -extern int build_tce_table(struct pci_dev *dev, void __iomem *bbar);
> +extern void* __init alloc_tce_table(void);
> +extern void __init free_tce_table(void *tbl);
> +extern int __init build_tce_table(struct pci_dev *dev, void __iomem *bbar);
>  
>  #endif /* _ASM_X86_64_TCE_H */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux