<div dir="ltr"><div>Wcall16 with invalid stack: eax=dfbf3e62 edx=0 func=0x000f9563 esp=dfbf3e50 ret=0x000f2304</div><div><br></div><div><div>│.text:000F22C8 sub_F22C8 proc near ; CODE XREF: sub_F2309+2Cvp ▒</div><div>│.text:000F22C8 ; sub_F2309+35vj ▒</div><div>│.text:000F22C8 ▒</div><div>│.text:000F22C8 var_2A = byte ptr -2Ah ▒</div><div>│.text:000F22C8 var_1A = byte ptr -1Ah ▒</div><div>│.text:000F22C8 var_E = byte ptr -0Eh ▒</div><div>│.text:000F22C8 var_D = byte ptr -0Dh ▒</div><div>│.text:000F22C8 var_6 = word ptr -6 ▒</div><div>│.text:000F22C8 ▒</div><div>│.text:000F22C8 push ebx ▒</div><div>│.text:000F22C9 sub esp, 28h ▒</div><div>│.text:000F22CC mov ebx, eax ▒</div><div>│.text:000F22CE mov ecx, 26h ▒</div><div>│.text:000F22D3 xor edx, edx ▒</div><div>│.text:000F22D5 lea eax, [esp+2Ch+var_2A] ▒</div><div>│.text:000F22D9 call sub_F1BA0 ▒</div><div>│.text:000F22DE mov [esp+2Ch+var_6], 200h ▒</div><div>│.text:000F22E5 mov [esp+2Ch+var_D], 0Eh ▒</div><div>│.text:000F22EA mov [esp+2Ch+var_E], bl ·</div><div>│.text:000F22EE mov [esp+2Ch+var_1A], 7 ▒</div><div>│.text:000F22F3 mov edx, offset word_FD2EA ▒</div><div>│.text:000F22F8 movzx edx, dx ▒</div><div>│.text:000F22FB lea eax, [esp+2Ch+var_2A] ▒</div><div>│.text:000F22FF call sub_F22A6 ▒</div><div>│.text:000F2304 add esp, 28h ▒</div><div>│.text:000F2307 pop ebx ▒</div><div>│.text:000F2308 retn ▒</div><div>│.text:000F2308 sub_F22C8 endp ▒</div></div><div><br></div><div><div>00001ba0 R_386_PC32 .text.pci_probe_devices</div></div><div><div>.text.asm.irq_trampoline_0x10 0xd2ea : { *(.text.asm.irq_trampoline_0x10) }</div></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 23, 2015 at 6:55 PM, Kevin O'Connor <span dir="ltr"><<a href="mailto:kevin@koconnor.net" target="_blank">kevin@koconnor.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed, Dec 23, 2015 at 12:51:30PM -0500, Kevin O'Connor wrote:<br>
> On Wed, Dec 23, 2015 at 04:27:55PM +0100, Tobias Diedrich wrote:<br>
> > And with verbose logging (level 8).<br>
> ><br>
> > [...]<br>
> > Wcall16 with invalid stack<br>
><br>
> Strange. Can you report the output with the patch below?<br>
<br>
</span>Using the patch below would be even better.<br>
<span class=""><br>
-Kevin<br>
<br>
<br>
--- a/src/stacks.c<br>
+++ b/src/stacks.c<br>
@@ -274,7 +274,8 @@ call16(u32 eax, u32 edx, void *func)<br>
{<br>
ASSERT32FLAT();<br>
if (getesp() > MAIN_STACK_MAX)<br>
- panic("call16 with invalid stack\n");<br>
</span>+ panic("call16 with invalid stack eax=%x edx=%x func=%p esp=%x ret=%p\n"<br>
+ , eax, edx, func, getesp(), __builtin_return_address(0));<br>
<div class="HOEnZb"><div class="h5"> if (CONFIG_CALL32_SMM && Call16Data.method == C16_SMM)<br>
return call16_smm(eax, edx, func);<br>
<br>
</div></div></blockquote></div><br></div>