[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <200710240836.13412.rgetz@blackfin.uclinux.org>
Date: Wed, 24 Oct 2007 08:36:13 -0400
From: Robin Getz <rgetz@...ckfin.uclinux.org>
To: paulus@...ba.org
Cc: linux-kernel@...r.kernel.org,
"Andrew Morton" <akpm@...ux-foundation.org>
Subject: history of extratext sections?
Paul:
I noticed that when passing a zero address to kallsyms_lookup(), the kernel
thought it was a valid kernel address, even if it was not for the specific
architecture I was running things on.
This was because is_kernel_extratext() was checking against labels that don't
exist on many archs. Since PPC is the only kernel which defines _extra_text,
(which doesn't seem to be used anymore?) there are three options:
- make the check dependant on PPC
- make the check dependant on extratext being populated
- remove _extra_text support from:
linux-2.6.x/arch/ppc/kernel/vmlinux.lds.S
linux-2.6.x/include/asm-generic/sections.h
linux-2.6.x/kernel/kallsyms.c
linux-2.6.x/scripts/kallsyms.c
Since I don't know the history on that label I thought I would ask (since you
seem to be the only arch using it) before I sent a patch.
-Robin
Because #1 & #2 are trivial, here is what I was thinking:
- make the check dependant on PPC
===================================================================
--- linux-2.6.x/kernel/kallsyms.c (revision 3760)
+++ linux-2.6.x/kernel/kallsyms.c (working copy)
@@ -51,7 +51,8 @@
static inline int is_kernel_extratext(unsigned long addr)
{
+ #ifdef CONFIG_PPC
if (addr >= (unsigned long)_sextratext
&& addr <= (unsigned long)_eextratext)
return 1;
+ #endif
return 0;
}
OR
- make the check dependant on extratext being populated
===================================================================
--- linux-2.6.x/kernel/kallsyms.c (revision 3760)
+++ linux-2.6.x/kernel/kallsyms.c (working copy)
@@ -51,7 +51,8 @@
static inline int is_kernel_extratext(unsigned long addr)
{
if (addr >= (unsigned long)_sextratext
- && addr <= (unsigned long)_eextratext)
+ && addr <= (unsigned long)_eextratext
+ && _sextratext && _eextratext)
return 1;
return 0;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists