Diskonchip regression

Brian Norris computersforpeace at gmail.com
Tue Mar 5 02:15:49 EST 2013


On 03/04/2013 01:33 AM, Alexander Shiyan wrote:
> Hello All.

Hi Alexander,

> I want to inform about diskonchip regression.
> Mounting diskonchip partition now failed due "mtd: nand: kill NAND_NO_READRDY" commit.
>
> Bug produce infinite error messages in the console, like this:
> # mount /dev/mtdblock5 /mnt/bbox -t jffs2 -o rw
> # jffs2: notice: (45) check_node_data: wrong data CRC in data node at 0x00f14f98: read 0xa0fcbcc1, calculated 0xc30e1a36.
> jffs2: mtd->read(0x567 bytes from 0xf14a00) returned ECC error
> jffs2: notice: (45) check_node_data: wrong data CRC in data node at 0x00f14924: read 0x73ba55cc, calculated 0x12ecdd4b.
> jffs2: mtd->read(0x724 bytes from 0xf14200) returned ECC error
> ...
>
> I found point to bug using "git bisect":
> shc at shc /home/git/linux-next $ git bisect log
> git bisect start
...

> git bisect bad 3d059693f6e0489066a98f455601137fa003df77
> shc at shc /home/git/linux-next $ git bisect bad
> 1696e6bc2ae83734e64e206ac99766ea19e9a14e is the first bad commit
> commit 1696e6bc2ae83734e64e206ac99766ea19e9a14e
> Author: Brian Norris <computersforpeace at gmail.com>
> Date:   Tue May 22 23:50:00 2012 -0700
>
>      mtd: nand: kill NAND_NO_READRDY
>
>      According to its documentation, the NAND_NO_READRDY option is always used
>      when autoincrement is not supported. Autoincrement support was recently
>      dropped, so we can drop this options as well (defaulting to "no read ready
>      check").
>
>      Signed-off-by: Brian Norris <computersforpeace at gmail.com>
>      Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
>      Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
>
> :040000 040000 5bf782761ebf2573393a9900b18f18901855be90 9633fd4d5e881a7d504c3f55656857f0f8d64052 M       drivers
> :040000 040000 d8bdeae25e074d3cc915321e0612d666bf692e0a d9de9de1e651791832265d9492f7e794d377d948 M       include
>
> So, should we revert this commit or find another solution?

Including a CC for the author would have been nice :) I found this only 
because you commented about DoC on another thread.

Does your DoC use small page size (i.e., 512B)? Can you provide a little 
more information regarding the NAND chip used (e.g., any of 
manufacturer, part number, page/eraseblock/device size, etc.), so I can 
document this a little better?

Anyway, I believe I overlooked some things in that patch. The original 
documentation for NAND_NO_READRDY included "True for all large page 
devices, as they do not support autoincrement." I was conflating "not 
support autoincrement" with the NAND_NO_AUTOINCR option, which was in 
fact doing nothing. But of course that didn't mean NAND_NO_READRDY was 
doing nothing...

I would recommend a revert (probably sent to stable). I can send this as 
an explicit patch myself soon, if given a little more info. Sorry for 
the bug!

Brian



More information about the linux-mtd mailing list