Re: [U-Boot] [PATCH] ubifsmount fails due to not initialized list
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
Re: [U-Boot] [PATCH] ubifsmount fails due to not initialized list
On Wed, Apr 21, 2010 at 8:47 AM, Stefano Babic sba...@denx.de wrote: ubifsmount is not working and causes an access with a pointer set to zero because the ubifs_fs_type is not initialized correctly. Signed-off-by: Stefano Babic sba...@denx.de --- fs/ubifs/super.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index 391dea4..39e3efe 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c @@ -1178,6 +1178,7 @@ int ubifs_mount(char *vol_name) ubifs_umount(ubifs_sb-s_fs_info); INIT_LIST_HEAD(ubifs_infos); + INIT_LIST_HEAD(ubifs_fs_type.fs_supers); /* * Mount in read-only mode -- 1.6.3.3 Out of interest, how did something like this get away with only causing an occasional failure? ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] ubifsmount fails due to not initialized list
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 Best regards, Stefano Babic -- = DENX Software Engineering GmbH, MD: Wolfgang Denk Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: off...@denx.de = ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] ubifsmount fails due to not initialized list
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... Best regards, Stefano Babic -- = DENX Software Engineering GmbH, MD: Wolfgang Denk Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: off...@denx.de = ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] ubifsmount fails due to not initialized list
On Wednesday 21 April 2010 09:47:19 Stefano Babic wrote: ubifsmount is not working and causes an access with a pointer set to zero because the ubifs_fs_type is not initialized correctly. Applied to u-boot-ubi/master. Thanks. Cheers, Stefan -- DENX Software Engineering GmbH, MD: Wolfgang Denk Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: off...@denx.de ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH] ubifsmount fails due to not initialized list
ubifsmount is not working and causes an access with a pointer set to zero because the ubifs_fs_type is not initialized correctly. Signed-off-by: Stefano Babic sba...@denx.de --- fs/ubifs/super.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index 391dea4..39e3efe 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c @@ -1178,6 +1178,7 @@ int ubifs_mount(char *vol_name) ubifs_umount(ubifs_sb-s_fs_info); INIT_LIST_HEAD(ubifs_infos); + INIT_LIST_HEAD(ubifs_fs_type.fs_supers); /* * Mount in read-only mode -- 1.6.3.3 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot