8 Oct 02:04
[PATCH] Fix v3 GeodeLX stack and global variable pointer corruption
From: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 <at> gmx.net>
Subject: [PATCH] Fix v3 GeodeLX stack and global variable pointer corruption
Newsgroups: gmane.linux.bios
Date: 2008-10-08 00:08:05 GMT
Subject: [PATCH] Fix v3 GeodeLX stack and global variable pointer corruption
Newsgroups: gmane.linux.bios
Date: 2008-10-08 00:08:05 GMT
Fix v3 GeodeLX stack and global variable pointer corruption. We had a jump instead of a call to stage1_main in geodelx/stage0.S. That means all accesses to bist and init_detected were off by 8 bytes and collided with accesses to the global variable pointer. Found during my cleanup runs. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 <at> gmx.net> Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 <at> gmx.net> Index: corebootv3-arch_x86_cleanup/arch/x86/geodelx/stage0.S =================================================================== --- corebootv3-arch_x86_cleanup/arch/x86/geodelx/stage0.S (Revision 907) +++ corebootv3-arch_x86_cleanup/arch/x86/geodelx/stage0.S (Arbeitskopie) @@ -376,7 +376,7 @@ pushl $0 /* First parameter: bist */ pushl %eax - jmp stage1_main + call stage1_main /* We will not go back. */ /* Reset vector. */ -- -- http://www.hailfinger.org/ -- coreboot mailing list: coreboot <at> coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
RSS Feed