history of extratext sections?

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

 



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 [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