Re: [U-Boot] [PATCH] ubifsmount fails due to not initialized list

2010-05-26 Thread Christian Hohnstaedt
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

2010-05-05 Thread Quotient Remainder
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

2010-05-05 Thread Stefano Babic
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

2010-05-05 Thread Quotient Remainder
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

2010-04-28 Thread Stefan Roese
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

2010-04-21 Thread Stefano Babic
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