- 论坛徽章:
- 0
|
小弟在做NAND驱动升级的时候遇到了如下问题:
驱动用的atheros的U10的nand 驱动,硬件ECC。发现系统在mount JFFS2分区的时候有10%的几率出现这个错误。
看起来像是atheros的driver在读数据的时候发生ECC错误了。
对于JFFS2系统不大了解,这里的gc_node应该是垃圾收集要回收的node,在等于NULL时会调用BUG()重启系统。但是不大明白的是,有时这个错误没什么大碍,重启系统但不会影响数据。有时这个错误会导致JFFS2文件系统上的数据全部丢失。这里有什么内部机制,在发现gc_node 为NULL时重新扫描整个分区然后重新建立一些结构么?
忘知道的大大不吝赐教:wink:- ath_nand_rw_page: Read uncorrectable errors. 0xd20d0000 0 ecc = 0x426
- jffs2_scan_eraseblock(): Node at 0x025333f8 {0x1985, 0x2004, 0x00000408) has invalid CRC 0x00000000 (calculated 0x21410195)
- ath_nand_rw_page: Read uncorrectable errors. 0xf3c00000 0 ecc = 0x426
- ath_nand_rw_page: Read uncorrectable errors. 0xd2260000 0 ecc = 0x426
- Read of newly-erased block at 0x02513000 failed: 1. Putting on bad_list
- Eep. ret->gc_node for block at 0x035e0000 is NULL
- Kernel bug detected[#1]:
- Cpu 0
- $ 0 : 00000000 00000001 00000038 00000001
- $ 4 : 802fb498 802fb4a4 ffffffff 80300000
- $ 8 : 00000000 80300000 00000000 00005765
- $12 : 6e6f6465 83c9f433 c0051000 20666f72
- $16 : 878f4e3c 878f4e9c 878f4e00 8110578c
- $20 : 878f4ea4 878f4eb4 878f4e9c 00000000
- $24 : 00000008 8015c7d0
- $28 : 86b64000 86b67e10 00000000 800df7d0
- Hi : 00000000
- Lo : 43db0000
- epc : 800df7d0 jffs2_garbage_collect_pass+0x2f0/0x68c
- Not tainted
- ra : 800df7d0 jffs2_garbage_collect_pass+0x2f0/0x68c
- Status: 1100ff03 KERNEL EXL IE
- Cause : 00800024
- PrId : 0001974c (MIPS 74Kc)
- Modules linked in: ah_fe_hook fe awe ath_pktlog umac ath_dev ath_spectral ath_rate_atheros ath_dfs ath_hal asf adf eth_drv ah_sec ah_board0 kmpi ah_systop
- Process ah_cli (pid: 1458, threadinfo=86b64000, task=86b3eb68, tls=2aad5830)
- Stack : 00000000 035e0000 00000001 00000002 00000026 80081b20 00000000 00000000
- 00000001 00000000 7fffffff 00000000 00000000 00000000 878f4e3c 024e5800
- 878f4e00 8024ae70 00000001 00001000 2abae000 2b81ce10 7fcb3e38 800e4f40
- 00000000 0000009c 87401ee8 00000300 00000014 ffffffff 8754ff38 87854660
- 00000000 800d7cdc 87854660 ffffffea 8024ae70 00000001 00001000 8009bbd4
- ...
- Call Trace:
- [<800df7d0>] jffs2_garbage_collect_pass+0x2f0/0x68c
- [<800e4f40>] jffs2_flush_wbuf_gc+0xa4/0x150
- [<800d7cdc>] jffs2_fsync+0x1c/0x2c
- [<8009bbd4>] vfs_fsync_range+0x88/0xc0
- [<8009bc38>] vfs_fsync+0x2c/0x38
- [<8009bc74>] do_fsync+0x30/0x50
- [<8000ce04>] stack_done+0x20/0x3c
- Code: 3c04802c 0c08f80a 2484d1d4 <0200000d> 08037df5 00000000 8e62001c 1040000c 00000000
复制代码 |
|