[OpenBIOS] [PATCH 1/2] iso9660: Fix Forth return value for iso9660_files_open()
blauwirbel at gmail.com
Wed Sep 29 22:38:00 CEST 2010
On Mon, Sep 27, 2010 at 8:38 PM, Blue Swirl <blauwirbel at gmail.com> wrote:
> On Sun, Sep 26, 2010 at 9:01 PM, Andreas Färber <andreas.faerber at web.de> wrote:
>> There's a mixup of 0 and -1. Don't return failure if iso9660_open() succeeded. Don't return success in case
>> iso9660_open() or iso9660_mount() failed.
>> This resolves both a hang when trying to boot cd:,\\:tbxi and failure to boot either cd:,\ppc\bootinfo.txt
>> or cd:,\ppc\chrp\bootfile.exe despite present on the AIX 6.1 disk.
> There are still some other problems with iso9660. If I apply these
> patches and change Sparc32 to use iso9660 instead of grubfs iso9660,
> SILO crashes for example with Aurora 1.0:
> Jumping to entry point 00004000 for type 00000005...
> switching to new context:
> SILO Unhandled Exception 0x00000007
> PC = 0xffd02a28 NPC = 0xffd02a2c
> Stopping execution
> This is unaligned access exception. It seems to happen because ofmem
> structure gets corrupted, maybe by free() or malloc() call after
> something (iso9660?) has clobbered memory slightly outside of the
> allocated area.
Since r872 I can use iso9660 without a crash on Sparc32. One issue
was that there were no problems when using nographic, but with
graphical console the crashes would happen. Avoiding a lot of
malloc/free traffic when writing to screen seems to help, but the
underlying bug that corrupts ofmem probably still lurks somewhere.
More information about the OpenBIOS