On Mon, Sep 27, 2010 at 8:38 PM, Blue Swirl firstname.lastname@example.org wrote:
On Sun, Sep 26, 2010 at 9:01 PM, Andreas Färber email@example.com 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.