Even further correction - the problem is nothing to do with my BFS module.
Calling sysfs(2) system call from user space causes the same Oops under
2.3.22 (now it should be only a matter of minutes until someone (or me?)
fixes it...)
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <linux/unistd.h>
_syscall3(int,sysfs,int,option,unsigned long,arg1,unsigned long,arg2);
int main()
{
int index = 0;
if ((index = sysfs(1, (unsigned long)"ufs", 0)) == -1) {
fprintf(stderr, "sysfs(), errno=%d (%s)\n",
errno, strerror(errno));
exit(1);
}
fprintf(stderr, "sysfs()=%d\n", index);
return 0;
}
ksymoops 0.7c on i686 2.3.22. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.3.22/ (default)
-m /usr/src/linux/System.map (default)
Warning: You did not tell me where to find symbol information. I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc. ksymoops -h explains the options.
Unable to handle kernel paging request at virtual address f881a72c
c0131600
*pde = 0000e063
Oops: 0000
CPU: 0
EIP: 0010:[<c0131600>]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010282
eax: ffffffff ebx: 00000003 ecx: c3dc3000 edx: f881a72c
esi: c01d2021 edi: c3dc3001 ebp: bffffdd0 esp: c2031fac
ds: 0018 es: 0018 ss: 0018
Process sysfs (pid: 162, stackpage=c2031000)
Stack: bffffe34 c0131706 080485e0 c2030000 4000a610 c0109a24 00000001 080485e0
00000000 4000a610 bffffe34 bffffdd0 00000087 0000002b 0000002b 00000087
080484b7 00000023 00000292 bffffdc0 0000002b
Call Trace: [<c0131706>] [<c0109a24>]
Code: 8b 32 89 cf fc ac ae 75 08 84 c0 75 f8 31 c0 eb 04 19 c0 0c
>>EIP; c0131600 <fs_index+40/74> <=====
Trace; c0131706 <sys_sysfs+4a/9c>
Trace; c0109a24 <system_call+34/38>
Code; c0131600 <fs_index+40/74>
00000000 <_EIP>:
Code; c0131600 <fs_index+40/74> <=====
0: 8b 32 movl (%edx),%esi <=====
Code; c0131602 <fs_index+42/74>
2: 89 cf movl %ecx,%edi
Code; c0131604 <fs_index+44/74>
4: fc cld
Code; c0131605 <fs_index+45/74>
5: ac lodsb %ds:(%esi),%al
Code; c0131606 <fs_index+46/74>
6: ae scasb %es:(%edi),%al
Code; c0131607 <fs_index+47/74>
7: 75 08 jne 11 <_EIP+0x11> c0131611 <fs_index+51/74>
Code; c0131609 <fs_index+49/74>
9: 84 c0 testb %al,%al
Code; c013160b <fs_index+4b/74>
b: 75 f8 jne 5 <_EIP+0x5> c0131605 <fs_index+45/74>
Code; c013160d <fs_index+4d/74>
d: 31 c0 xorl %eax,%eax
Code; c013160f <fs_index+4f/74>
f: eb 04 jmp 15 <_EIP+0x15> c0131615 <fs_index+55/74>
Code; c0131611 <fs_index+51/74>
11: 19 c0 sbbl %eax,%eax
Code; c0131613 <fs_index+53/74>
13: 0c 00 orb $0x0,%al
1 warning issued. Results may not be reliable.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/