Re: [patch 2.6.15] Tell kallsyms_lookup_name() to ignore type U entries

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

 



Keith Owens wrote:
When one module exports a function symbol and another module uses that
symbol then kallsyms shows the symbol twice.  Once from the consumer
with a type of 'U' and once from the provider with a type of 't' or
'T'.  On most architectures, both entries have the same address so it
does not matter which one is returned by kallsyms_lookup_name().  But
on architectures with function descriptors, the 'U' entry points to the
descriptor, not to the code body, which is not what we want.

IA64 # grep -w qla2x00_remove_one /proc/kallsyms
a000000208c25ef8 U qla2x00_remove_one   [qla2300]   <= descriptor
a000000208bf44c0 t qla2x00_remove_one   [qla2xxx]   <= function body

[...]
--- linux.orig/kernel/kallsyms.c	2006-01-06 12:58:52.842111488 +1100
+++ linux/kernel/kallsyms.c	2006-01-06 12:59:03.436355969 +1100
@@ -144,12 +144,14 @@ unsigned long kallsyms_lookup_name(const
 {
 	char namebuf[KSYM_NAME_LEN+1];
 	unsigned long i;
-	unsigned int off;
+	unsigned int off, prev_off;
for (i = 0, off = 0; i < kallsyms_num_syms; i++) {
+		prev_off = off;
 		off = kallsyms_expand_symbol(off, namebuf);
- if (strcmp(namebuf, name) == 0)
+		if (strcmp(namebuf, name) == 0 &&
+		    kallsyms_get_symbol_type(prev_off) != 'U')

This check should not be needed as it is already done in scripts/kallsyms.c so that these symbols don't end up in the kernel symbol table at all.

It seems that only symbols from modules can suffer from this problem, but maybe I'm missing something here...

--
Paulo Marques - www.grupopie.com

Pointy-Haired Boss: I don't see anything that could stand in our way.
           Dilbert: Sanity? Reality? The laws of physics?
-
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