Already there is data 0x1985 shown in do_write_oneword() at a location before write (fwd)

Robert P. J. Day rpjday at mindspring.com
Tue Jul 27 11:57:17 EDT 2004


   forwarded from a colleague:

---------- Forwarded message ----------
Date: Tue, 27 Jul 2004 11:26:25 -0400

         We met a situation that is write flash time out in 
do_write_oneword() on Am29LV128MH, so we printed the 
before-write-word,wanted-write-word, and the after-write-word. The 
interesting thing is that the before-write-word always is 0x1985 in 3 
times timeout write of total 52,688,813 times write, because 0x1985 is 
the first mark word of any jffs2 node, so it makes me guess if a dirty 
space is allocated to write by regarding this dirty space to be clean 
space.

         Any thought?

         Another thing is in jffs2_garbage_collect_pristine() function, 
the parts of the code is interesting

         if (!retried && (nraw == jffs2_alloc_raw_node_ref())) {
                /* Try to reallocate space and retry */
                uint32_t dummy;
                struct jffs2_eraseblock *jeb = &c->blocks[phys_ofs /
c->sector_size];
                 .....

         why not here we use:
                     if (!retried && (nraw = jffs2_alloc_raw_node_ref())) {
                             ....

thanks.




More information about the linux-mtd mailing list