[openfirmware] [commit] r2938 - ofw/fs/ext2fs

repository service svn at openfirmware.info
Fri Apr 6 11:32:55 CEST 2012


Author: quozl
Date: Fri Apr  6 11:32:55 2012
New Revision: 2938
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2938

Log:
ext2 - fix Divide Error on x86 when accessing ext2 filesystems.  OLPC #11762

Modified:
   ofw/fs/ext2fs/recovery.fth

Modified: ofw/fs/ext2fs/recovery.fth
==============================================================================
--- ofw/fs/ext2fs/recovery.fth	Wed Apr  4 08:25:06 2012	(r2937)
+++ ofw/fs/ext2fs/recovery.fth	Fri Apr  6 11:32:55 2012	(r2938)
@@ -175,8 +175,11 @@
 
 \ node is either the found one or the insertion point
 : find-revoked  ( d.block# -- d.block# node found? )
-   revoke-list ['] block#> find-node drop    ( d.block# node )
-   3dup >r_block# 2@ d=                      ( d.block# node )
+   revoke-list ['] block#> find-node  if    ( d.block# node )
+      3dup >r_block# 2@ d=                  ( d.block# node found? )
+   else                                     ( d.block# node )
+      false                                 ( d.block# node found? )
+   then                                     ( d.block# node found? )
 ;
 
 0 value next-commit-id
@@ -224,8 +227,11 @@
 
 \ node is either the found one or the insertion point
 : find-overlay?  ( d.block# -- d.block# node found? )
-   revoke-list ['] block#> find-node drop    ( d.block# node )
-   3dup >r_block# 2@ d=                      ( d.block# node )
+   overlay-list ['] block#> find-node  if    ( d.block# node )
+      3dup >r_block# 2@ d=                   ( d.block# node found? )
+   else                                      ( d.block# node )
+      false                                  ( d.block# node found? )
+   then                                      ( d.block# node found? )
 ;
 
 : j-read-file-block  ( adr lblk# -- )



More information about the openfirmware mailing list