From: Andrew Morton <akpm@digeo.com>
To: Aniruddha M Marathe <aniruddha.marathe@wipro.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: 2.5.53-mm3
Date: Wed, 01 Jan 2003 23:01:01 -0800 [thread overview]
Message-ID: <3E13E3AD.9B255CAE@digeo.com> (raw)
In-Reply-To: 94F20261551DC141B6B559DC491086720447DE@blr-m3-msg.wipro.com
Aniruddha M Marathe wrote:
>
> Failed while booting up.
> It executed mem_init()
> Then during execution of kmem_cache_sizes_init(),
> It created generic caches.
> After that following error came,
> Invalid operand: 0000
> ...
> Unable to handle kernel paging request at virtual address b08e3fef
> eip 00000000
>
Please enable "Load all symbols for debugging/kksymoops" in
the "Kernel hacking" menu and send a full report.
kksymoops is a bit broken in 2.5.54. You may need this patch:
--- 25/fs/proc/base.c~no-stem-compression Wed Jan 1 22:30:17 2003
+++ 25-akpm/fs/proc/base.c Wed Jan 1 22:30:17 2003
@@ -259,11 +259,10 @@ static int proc_pid_wchan(struct task_st
char *modname;
const char *sym_name;
unsigned long wchan, size, offset;
- char namebuf[128];
wchan = get_wchan(task);
- sym_name = kallsyms_lookup(wchan, &size, &offset, &modname, namebuf);
+ sym_name = kallsyms_lookup(wchan, &size, &offset, &modname);
if (sym_name)
return sprintf(buffer, "%s", sym_name);
return sprintf(buffer, "%lu", wchan);
--- 25/include/linux/kallsyms.h~no-stem-compression Wed Jan 1 22:30:17 2003
+++ 25-akpm/include/linux/kallsyms.h Wed Jan 1 22:30:17 2003
@@ -12,7 +12,7 @@
const char *kallsyms_lookup(unsigned long addr,
unsigned long *symbolsize,
unsigned long *offset,
- char **modname, char *namebuf);
+ char **modname);
/* Replace "%s" in format with address, if found */
extern void __print_symbol(const char *fmt, unsigned long address);
@@ -22,7 +22,7 @@ extern void __print_symbol(const char *f
static inline const char *kallsyms_lookup(unsigned long addr,
unsigned long *symbolsize,
unsigned long *offset,
- char **modname, char *namebuf)
+ char **modname)
{
return NULL;
}
--- 25/kernel/kallsyms.c~no-stem-compression Wed Jan 1 22:30:17 2003
+++ 25-akpm/kernel/kallsyms.c Wed Jan 1 22:30:17 2003
@@ -4,7 +4,6 @@
* Rewritten and vastly simplified by Rusty Russell for in-kernel
* module loader:
* Copyright 2002 Rusty Russell <rusty@rustcorp.com.au> IBM Corporation
- * Stem compression by Andi Kleen.
*/
#include <linux/kallsyms.h>
#include <linux/module.h>
@@ -23,7 +22,7 @@ extern char _stext[], _etext[];
const char *kallsyms_lookup(unsigned long addr,
unsigned long *symbolsize,
unsigned long *offset,
- char **modname, char *namebuf)
+ char **modname)
{
unsigned long i, best = 0;
@@ -31,8 +30,6 @@ const char *kallsyms_lookup(unsigned lon
if ((void *)kallsyms_addresses == &kallsyms_dummy)
BUG();
- namebuf[127] = 0;
-
if (addr >= (unsigned long)_stext && addr <= (unsigned long)_etext) {
unsigned long symbol_end;
char *name = kallsyms_names;
@@ -45,11 +42,8 @@ const char *kallsyms_lookup(unsigned lon
}
/* Grab name */
- for (i = 0; i < best; i++) {
- ++name;
- strncpy(namebuf + name[-1], name, 127);
+ for (i = 0; i < best; i++)
name += strlen(name)+1;
- }
/* Base symbol size on next symbol. */
if (best + 1 < kallsyms_num_syms)
@@ -60,7 +54,7 @@ const char *kallsyms_lookup(unsigned lon
*symbolsize = symbol_end - kallsyms_addresses[best];
*modname = NULL;
*offset = addr - kallsyms_addresses[best];
- return namebuf;
+ return name;
}
return module_address_lookup(addr, symbolsize, offset, modname);
@@ -72,9 +66,8 @@ void __print_symbol(const char *fmt, uns
char *modname;
const char *name;
unsigned long offset, size;
- char namebuf[128];
- name = kallsyms_lookup(address, &size, &offset, &modname, namebuf);
+ name = kallsyms_lookup(address, &size, &offset, &modname);
if (!name) {
char addrstr[sizeof("0x%lx") + (BITS_PER_LONG*3/10)];
--- 25/scripts/kallsyms.c~no-stem-compression Wed Jan 1 22:30:17 2003
+++ 25-akpm/scripts/kallsyms.c Wed Jan 1 22:30:17 2003
@@ -93,7 +93,6 @@ write_src(void)
{
unsigned long long last_addr;
int i, valid = 0;
- char *prev;
printf("#include <asm/types.h>\n");
printf("#if BITS_PER_LONG == 64\n");
@@ -131,22 +130,15 @@ write_src(void)
printf(".globl kallsyms_names\n");
printf("\tALGN\n");
printf("kallsyms_names:\n");
- prev = "";
for (i = 0, last_addr = 0; i < cnt; i++) {
- int k;
-
if (!symbol_valid(&table[i]))
continue;
if (table[i].addr == last_addr)
continue;
- for (k = 0; table[i].sym[k] && table[i].sym[k] == prev[k]; ++k)
- ;
-
- printf("\t.asciz\t\"\\x%02x%s\"\n", k, table[i].sym + k);
+ printf("\t.string\t\"%s\"\n", table[i].sym);
last_addr = table[i].addr;
- prev = table[i].sym;
}
printf("\n");
}
_
next prev parent reply other threads:[~2003-01-02 6:52 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-02 6:50 2.5.53-mm3 Aniruddha M Marathe
2003-01-02 7:01 ` Andrew Morton [this message]
-- strict thread matches above, loose matches on Subject: below --
2003-01-02 2:14 2.5.53-mm3 Andrew Morton
2003-01-02 4:13 ` 2.5.53-mm3 Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3E13E3AD.9B255CAE@digeo.com \
--to=akpm@digeo.com \
--cc=aniruddha.marathe@wipro.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox