Hi,

> > As of revision 2762, the v2 repository is still BROKEN and superiotool
> > doesn't appear in v3 either (checked revision 486).
> > 
> > Such commits are one reason why I think self-acked commits should not be
> > allowed.
> 
> Well. Half-hearted code reviews are an illusion of safety, too.
> 
> The current code's lar handling is pretty much broken even though that
> code was reviewed, but obviously nobody even tested it:
> 
> Wrote LinuxBIOS table at: 0x00000500 - 0x00000a54  checksum 401f
> Show all devs...
> cpus: Unknown device path type: 0
> Stage2 code done.
> LAR: Attempting to open 'normal/payload'.
> LAR: Attempting to open 'normal/payload/segment0'.
> LAR: load_file: No such file 'normal/payload/segment0'
> 
> It just hangs somewhere bogus and never gets to the defined error in 
> 
>   arch/x86/stage1.c:194: die("FATAL: No usable payload found.\n");
> 
> also the current code contains quite some warnings again regarding
> int-to-pointer casts in lar.c and pointer-to-int cast and uninitialized
> variable use in stage1.c

run_address gets called with entry=0.

Attached patch fixes it.

(If thread hi-jacking is forbidden, sorry)

--
Alex

Index: arch/x86/stage1.c
===================================================================
--- arch/x86/stage1.c	(revision 486)
+++ arch/x86/stage1.c	(working copy)
@@ -189,7 +189,8 @@
 			entry = newentry;
 	}
 	printk(BIOS_SPEW, "all loaded, entry %p\n", entry);
-	run_address(entry);
+	if (entry)
+		run_address(entry);
 
 	die("FATAL: No usable payload found.\n");
 
-- 
linuxbios mailing list
[email protected]
http://www.linuxbios.org/mailman/listinfo/linuxbios

Reply via email to