Hi,
I have one old disk that is not functioning properly
(Western Digital Caviar). There are some bad sectors. I have
reriserfs partition on this disk(no useful data ,so I don't want to
repair it)
Kernel version 2.4.5
When I was trying to mount the partition I got :
Warning (compare_maps): ksyms_base symbol __VERSIONED_SYMBOL(shmem_file_setup) not
found in System.map. Ignoring ksyms_base entry
Unable to handle kernel NULL pointer dereference at virtual address 00000034
c016b1cb
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c016b1cb>]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010296
eax: 00000000 ebx: 00000000 ecx: c4100c80 edx: c4100c80
esi: 00000000 edi: 00000426 ebp: c64fea00 esp: c46afdfc
ds: 0018 es: 0018 ss: 0018
Process mount (pid: 852, stackpage=c46af000)
Stack: 00000000 00000000 00000426 c64fea00 c012fd25 c016bb22 c64fea00 00000000
c46afe60 c46afe64 00000302 00000426 00001000 c64fea00 00000000 c0296260
00004000 00000001 00000000 c4abb000 00000000 00000000 3b2fc155 00000000
Call Trace: [<c012fd25>] [<c016bb22>] [<c016c256>] [<c015fa1d>] [<c01326ec>]
[<c01328a3>] [<c0132aa1>]
[<c0133505>] [<c01ff11d>] [<c013333d>] [<c01336bc>] [<c0106a6f>]
Code: 8b 40 34 8b 5c 24 24 89 44 24 10 83 78 04 00 0f 84 70 01 00
>>EIP; c016b1cb <journal_transaction_is_valid+f/19c> <=====
Trace; c012fd25 <bread+31/64>
Trace; c016bb22 <journal_read+1e2/418>
Trace; c016c256 <journal_init+29e/330>
Trace; c015fa1d <reiserfs_read_super+f1/408>
Trace; c01326ec <get_empty_super+48/19c>
Trace; c01328a3 <read_super+63/a8>
Trace; c0132aa1 <get_sb_bdev+155/1ac>
Trace; c0133505 <do_mount+179/2ac>
Trace; c01ff11d <rwsem_wake+19a5/19e4>
Trace; c013333d <copy_mount_options+55/a4>
Trace; c01336bc <sys_mount+84/c8>
Trace; c0106a6f <system_call+33/38>
Code; c016b1cb <journal_transaction_is_valid+f/19c>
00000000 <_EIP>:
Code; c016b1cb <journal_transaction_is_valid+f/19c> <=====
0: 8b 40 34 mov 0x34(%eax),%eax <=====
Code; c016b1ce <journal_transaction_is_valid+12/19c>
3: 8b 5c 24 24 mov 0x24(%esp,1),%ebx
Code; c016b1d2 <journal_transaction_is_valid+16/19c>
7: 89 44 24 10 mov %eax,0x10(%esp,1)
Code; c016b1d6 <journal_transaction_is_valid+1a/19c>
b: 83 78 04 00 cmpl $0x0,0x4(%eax)
Code; c016b1da <journal_transaction_is_valid+1e/19c>
f: 0f 84 70 01 00 00 je 185 <_EIP+0x185> c016b350
<journal_transaction_is_valid+194/19c>
2 warnings issued. Results may not be reliable.
I think that system_call should return with an error code instead of
generating an oops. If anyone is interesting in fixing this I can
keep the disk and perform any tests you need.
Maciek