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?
====
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]