> I had a look and figured a one-liner will sort this
>
> change
> if(ecc)
> to
> if(ecc & ecc <= 64)
>
Ok but the problem is only side-stepped and not even logged. One could
increment a badness count that is retrievable via /proc/yaffs as a debug
aid.
> Of course this does not fix/handle multi-bit errors, but that's about as
good
> as we can get. Need to handle retirement etc.
>
> That you encountered this smells of an underlying hw issue.
Aha - mkyaffsimage is the culprit, again. It calculates the wrong TagsECC
value leading to the mysterious kernel multibit errors that cause no error
when not corrected because no error exists.
It calculates the TagsECC using the old "for(j = 1; j &0x7f; j<<=1)" instead
of the updated "for (j = 1; j & 0xff; j<<=1)"
All is now explained and working fine. Rename now seems to work ok too.
Nick
---------------------------------------------------------------------------------------
This mailing list is hosted by Toby Churchill open software (
www.toby-churchill.org).
If mailing list membership is no longer wanted you can remove yourself from the list by
sending an email to
yaffs-request@toby-churchill.org with the text "unsubscribe"
(without the quotes) as the subject.