bk://linux-sam.bkbits.net/kbuild
kaos@ocs.com.au|ChangeSet|20050110163245|33088 kaos

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2005/01/11 22:00:19-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-kbuild
# 
# mm/memory.c
#   2005/01/11 22:00:15-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# arch/x86_64/mm/init.c
#   2005/01/11 22:00:15-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2005/01/11 12:17:52-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-kbuild
# 
# include/linux/mm.h
#   2005/01/11 12:17:48-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2005/01/10 15:11:38-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-kbuild
# 
# mm/memory.c
#   2005/01/10 15:11:34-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2005/01/10 17:32:45+01:00 kaos@ocs.com.au 
#   kallsyms: gate page patch breaks module lookups
#   
#   >Your recent patch looks to break module kallsyms lookups....
#   >It looks like if CONFIG_KALLSYMS_ALL is set then we never look up module
#   >addresses.
#   
#   Separate lookups for kernel and modules when CONFIG_KALLSYMS_ALL=y.
#   
#   Signed-off-by: Keith Owens <kaos@ocs.com.au>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# kernel/kallsyms.c
#   2005/01/10 14:42:42+01:00 kaos@ocs.com.au +9 -1
#   kallsyms: gate page patch breaks module lookups
# 
# ChangeSet
#   2005/01/08 21:54:21-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-kbuild
# 
# mm/memory.c
#   2005/01/08 21:54:17-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# include/linux/mm.h
#   2005/01/08 21:54:17-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2005/01/05 18:36:01-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-kbuild
# 
# mm/memory.c
#   2005/01/05 18:35:57-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# include/linux/mm.h
#   2005/01/05 18:35:57-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2005/01/04 23:30:57-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-kbuild
# 
# mm/memory.c
#   2005/01/04 23:30:53-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# include/linux/mm.h
#   2005/01/04 23:30:53-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2005/01/04 14:19:32-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-kbuild
# 
# mm/memory.c
#   2005/01/04 14:19:28-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# include/linux/mm.h
#   2005/01/04 14:19:28-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# include/asm-x86_64/page.h
#   2005/01/04 14:19:28-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# arch/x86_64/mm/init.c
#   2005/01/04 14:19:28-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2005/01/04 00:31:48-08:00 akpm@bix.(none) 
#   Merge bk://linux-sam.bkbits.net/kbuild
#   into bix.(none):/usr/src/bk-kbuild
# 
# arch/x86_64/mm/init.c
#   2005/01/04 00:31:44-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2005/01/04 00:30:42-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-kbuild
# 
# mm/memory.c
#   2005/01/04 00:30:38-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# include/linux/mm.h
#   2005/01/04 00:30:38-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2005/01/02 19:02:55-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-kbuild
# 
# mm/memory.c
#   2005/01/02 19:02:51-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2005/01/01 19:42:58-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-kbuild
# 
# mm/memory.c
#   2005/01/01 19:42:54-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# include/linux/mm.h
#   2005/01/01 19:42:54-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# include/asm-x86_64/page.h
#   2005/01/01 19:42:54-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# arch/x86_64/mm/init.c
#   2005/01/01 19:42:54-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
diff -Nru a/kernel/kallsyms.c b/kernel/kallsyms.c
--- a/kernel/kallsyms.c	2005-01-13 17:00:54 -08:00
+++ b/kernel/kallsyms.c	2005-01-13 17:00:54 -08:00
@@ -53,6 +53,13 @@
 	return in_gate_area_no_task(addr);
 }
 
+static inline int is_kernel(unsigned long addr)
+{
+	if (addr >= (unsigned long)_stext && addr <= (unsigned long)_end)
+		return 1;
+	return in_gate_area_no_task(addr);
+}
+
 /* expand a compressed symbol data into the resulting uncompressed string,
    given the offset to where the symbol is in the compressed stream */
 static unsigned int kallsyms_expand_symbol(unsigned int off, char *result)
@@ -153,7 +160,8 @@
 	namebuf[KSYM_NAME_LEN] = 0;
 	namebuf[0] = 0;
 
-	if (all_var || is_kernel_text(addr) || is_kernel_inittext(addr)) {
+	if ((all_var && is_kernel(addr)) ||
+	    (!all_var && (is_kernel_text(addr) || is_kernel_inittext(addr)))) {
 		unsigned long symbol_end=0;
 
 		/* do a binary search on the sorted kallsyms_addresses array */