I'm playing around with a script to unpack images to the CF, and I get the following kernel oops:
loop: loaded (max 8 devices)
blkmtd: version $Revision: 1.24 $
blkmtd: mtd4: [/dev/loop/4] erase_size = 16KiB
CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 803cc53c, ra == 803cc4c4
Oops in arch/mips/mm/fault.c::do_page_fault, line 166[#1]:
Cpu 0
$ 0 : 00000000 1000f800 81cf5de0 00000000
$ 4 : 00010000 00000001 82d73c80 8077ec30
$ 8 : 804184ac 82d73c00 00000000 804a54b4
$12 : 804a54e0 001fffff 001f0000 2ab99d3c
$16 : 00000002 807750c0 82d73914 804b0000
$20 : 10010050 10010000 00000000 00000001
$24 : 00000000 801a8118
$28 : 81cf4000 81cf5dd0 1000d1c0 803cc4c4
Hi : 00000000
Lo : 00000000
epc : 803cc53c __down_write+0xe4/0x198 Tainted: P
ra : 803cc4c4 __down_write+0x6c/0x198
Status: 1000f802 KERNEL EXL
Cause : 3080000c
BadVA : 00000000
PrId : 00018448
Modules linked in: blkmtd loop usbhid sd_mod usb_storage scsi_mod rfmod dreambox_rc2 fp lcd xilleon avs stb_proc tu1216 alps_bsbe1 stv0299 mb86a15
Process umount (pid: 1709, threadinfo=81cf4000, task=807750c0)
Stack : 00000204 82d73c00 80420090 00000000 82d73914 10010000 807750c0 00000002
82d73800 82d73910 82d7382c 00000000 8025a9e4 804a54b4 00000000 00000002
00000000 00000d6c 82d73800 804b0000 80258d70 00000000 00000000 00000000
00000000 00000000 82d73c00 804b0000 82d73c4c 80180a64 00000001 00000000
82d73c00 804a54b4 82d73c00 804b0000 80420090 8018a900 81cf5e68 81cf5e68
...
Call Trace:
[<8025a9e4>] jffs2_flush_wbuf_pad+0x20/0x50
[<80258d70>] jffs2_sync_fs+0x60/0x180
[<80180a64>] fsync_super+0x1a8/0x208
[<8018a900>] generic_shutdown_super+0x50/0x27c
[<80259538>] jffs2_kill_sb+0x14/0x3c
[<801a98e0>] free_vfsmnt+0x18/0x34
[<8018a890>] deactivate_super+0xdc/0xfc
[<80194eac>] path_release_on_umount+0x18/0xd0
[<801aa4bc>] sys_umount+0x4c/0x26c
[<801aa4bc>] sys_umount+0x4c/0x26c
[<8018fab8>] sys_lstat64+0x3c/0x4c
[<8010f5c0>] stack_done+0x20/0x3c
[<8010f5c0>] stack_done+0x20/0x3c
Code: 27a20010 afb20010 ae420004 <ac620000> afa30014 40016000 3421001f 3821001e 40816000
Alles anzeigen
Basically, the program will
a) Unpack the nfi to make boot.jjfs2 and root.jffs2 filesystem images
b) Use the loopback device to make the image look like a block device
d) Use the blkmtd kernel module to add a block device as an MTD
c) Mount the simulated MTD as jffs2
d) Copy out the files
e) umount
f) remove the kernel module
g) delete the loopback
The oops happens at step e), when I try to unmount the jffs2 file system.
And yeah, it works perfectly on my PC, kernel 2.6.13.3.
Anybody?
And BTW, the loopback device (/dev/loop/*) isn't configured in the kernel. Could this be added, please? Also, I would be grateful if the standard config included the blkmtd and/or the block2mtd as modules...