public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* history of extratext sections?
@ 2007-10-24 12:36 Robin Getz
  2007-10-24 16:19 ` Mike Frysinger
  2007-10-26  9:57 ` Robin Getz
  0 siblings, 2 replies; 8+ messages in thread
From: Robin Getz @ 2007-10-24 12:36 UTC (permalink / raw)
  To: paulus; +Cc: linux-kernel, Andrew Morton

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;
 }

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

end of thread, other threads:[~2007-10-30  0:10 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-24 12:36 history of extratext sections? Robin Getz
2007-10-24 16:19 ` Mike Frysinger
2007-10-26  9:57 ` Robin Getz
2007-10-26 14:31   ` David Woodhouse
2007-10-26 14:40     ` Jon Loeliger
2007-10-26 19:43       ` [patch] remove support for un-needed _extratext section Robin Getz
2007-10-29 22:22         ` Andrew Morton
2007-10-30  0:11           ` Robin Getz

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