All,
I am using yaffs during 3 years without any major problem. In order to support
2k nand flash I try to integrate in the linux kernel 2.4.18 (montavista 3.0
with preempt patch) the yaffs2 support.
In this case I use the latest mtd support for 2.4 kernel and integrate it in the
2.4.18_mvl30 and I use yaffs2 (six months older).
With my embedded cpu board, it is not possible to switch for a linux 2.6 today
because we have a lot of modifications.
Could you help me by giving some ways or information that could be necessary to
check.
In fact today, I could erase the 2k nand flash, mounted it and writing on it.
But just few time after the umount, the next inode access (like logrotate) a
Oops arrived (each time).
/mnt/automount is only a mount point for the nand flash partition
[root@base-8000-0 automount]# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/root 130665864 68352232 61006974 53% /
/dev/ram0 7931 5042 2480 68% /mnt/var/log
/dev/ram1 7931 22 7500 1% /var/spool
/dev/ram2 7931 22 7500 1% /tmp
/dev/mtdblock2 112640 59796 52844 54% /mnt/automount
ensun14:/home/mts8000 130665888 68352256 61006976 53% /mnt/home
[root@base-8000-0 automount]# cd
[root@base-8000-0 root]# strace umount /mnt/automount/
execve("/bin/umount", ["umount", "/mnt/automount/"], [/* 14 varsnand_sync:
called
*/]) = 0
brk(0mtdblock_release
nand_sync: called
ok
) = 0x1001a57c
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x30018000
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(0x3, 0x7ffff018) = 0
mmap(NULL, 14606, PROT_READ, MAP_PRIVATE, 3, 0) = 0x30019000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\1\344"..., 1024) =
1024
fstat64(0x3, 0x7ffff070) = 0
mmap(0xfeb4000, 1294044, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xfeb4000
mprotect(0xffd5000, 110300, PROT_NONE) = 0
mmap(0xffe4000, 28672, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0x120000) = 0xffe4000
mmap(0xffeb000, 20188, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffeb000
close(3) = 0
mprotect(0xfeb4000, 1183744, PROT_READ|PROT_WRITE) = 0
mprotect(0xfeb4000, 1183744, PROT_READ|PROT_EXEC) = 0
munmap(0x30019000, 14606) = 0
brk(0) = 0x1001a57c
brk(0x1001a5a4) = 0x1001a5a4
brk(0x1001b000) = 0x1001b000
getuid() = 0
geteuid() = 0
brk(0x1001d000) = 0x1001d000
readlink("/mnt", 0x7fffec78, 4096) = -1 EINVAL (Invalid argument)
readlink("/mnt/automount", 0x7fffec78, 4096) = -1 EINVAL (Invalid argument)
open("/etc/mtab", O_RDONLY|O_LARGEFILE) = 3
fstat64(0x3, 0x7ffffa38) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x30019000
read(3, "/dev/root / nfs rw,v2,rsize=4096"..., 4096) = 370
read(3, "", 4096) = 0
close(3) = 0
munmap(0x30019000, 4096) = 0
oldumount("/mnt/automount") = 0
lstat64(0x10008338, 0x7ffffba8) = 0
exit(0) = ?
[root@base-8000-0 root]#
Oops: kernel access of bad area, sig: 11
NIP: C0010524 XER: 00000000 LR: C00104EC SP: C7ABDE10 REGS: c7abdd50 TRAP: 0800
Tainted: PF
MSR: 00001030 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 11
DEAR: 62F612D1, ESR: 00000000
TASK = c7abc000[604] 'logrotate' Last syscall: 1
last math 00000000 last altivec 00000000
PLB0: bear= 0x00000000 acr= 0x00000000 besr= 0x00000000
PLB0 to OPB: bear= 0x00000000 besr0= 0x00000000 besr1= 0x00000000
GPR00: 00000002 C7ABDE10 C7ABC000 00000001 00000000 00000001 00004001 C029EBDB
GPR08: 00000000 62F612D1 00000031 2F646576 C0310000 1001E658 00000000 00000000
GPR16: 00000000 00000000 00000000 00000000 00009032 07ABDF30 00000000 C0002D38
GPR24: C0002A20 0FFC2B14 00000000 00000001 00000001 C7FF6AA0 C6E93000 C7ABDE10
Call backtrace:
C02E9860 runqueue_lock
C00533D4 pipe_release
C0053494 pipe_read_release
C0045308 fput
C004296C filp_close
C001AA0C close_files
C001930C put_files_struct
C0019CD8 do_exit
C0019F34 complete_and_exit
C0002A7C ret_from_syscall_1
note: logrotate[604] exited with preempt_count 2
Do you have some explanation, witch struct had been change and could not be
compatible with linux kernel or mtd version ?
Best regards and thanks for your help and your work
Olivier