Hi, On Wed, May 05, 2010 at 03:10:20PM +0100, Quotient Remainder wrote: > On Wed, May 5, 2010 at 1:59 PM, Stefano Babic <sba...@denx.de> wrote: > > > Quotient Remainder wrote: > > > > > Out of interest, how did something like this get away with only causing > > > an occasional failure? > > > > Well, there are some explanations. MMU is normally off and a Null > > Pointer does not cause an exception in u-boot. If we get a failure, it > > depends on the architecture we are using. On PowerPC, address 0 is > > accessible and then we get no failure. In this particular case > > (ubifsmount), the list is set but not used by the calling function. > > Because writing to address 0 is allowed, the bug is not noticeable. > > > > Different is on arm, where I have found the problem. Because in this > > case address 0 is not accessible at all, u-boot hangs and it is not > > possible to avoid to see that we have a problem.... > > > > > I've been using UBIFS on arm (1136) with the v2009.11 release and it > works almost all the time. Sometimes U-Boot fails to mount the > UBIFS (1 in 100 boots, maybe), and in these cases I was putting it > down to forgetting to do a sync in Linux before rebooting. I wonder > if this was the problem all along...
Probably not. IMHO rebooting without a sync is pretty common and should work. With v2009.11 and the "INIT_LIST_HEAD(&ubifs_fs_type.fs_supers);" fix I was able to force a mount-failure of UBIFS in u-boot by executing some tar under linux in parallel and pulling the plug in the meantime: "tar zxf some_tar.tgz & mkdir -p P; tar zxf some_tar.tgz -C P" I fixed it ("fixed" as in http://thereifixedit.com) by disabling journal-replaying. In fs/ubifs/super.c:686 I skipped "ubifs_replay_journal(c)". Without that "fix" I needed the linux kernel to once mount the volume and replay the journal. Afterwards everything was fine on next volume mount in u-boot. I failed to find the cause in ubifs_replay_journal(). How harmful is the skipping of ubifs_replay_journal() ? Does someone have a real fix ? Christian Hohnstaedt -- Christian Hohnstaedt / Project Manager Hardware and Manufacturing Innominate Security Technologies AG / protecting industrial networks tel: +49.30.921028.208 / fax: +49.30.921028.020 Rudower Chaussee 13, D-12489 Berlin / http://www.innominate.com Register Court: AG Charlottenburg, HR B 81603 Management Board: Dirk Seewald Chairman of the Supervisory Board: Volker Bibelhausen _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot