On Sun, Sep 26, 2010 at 9:01 PM, Andreas Färber andreas.faerber@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.