29 lines
863 B
Diff
29 lines
863 B
Diff
|
Index: libsmbios-2.2.28/src/bin/dellMediaDirectCtl.cpp
|
||
|
===================================================================
|
||
|
--- libsmbios-2.2.28.orig/src/bin/dellMediaDirectCtl.cpp
|
||
|
+++ libsmbios-2.2.28/src/bin/dellMediaDirectCtl.cpp
|
||
|
@@ -196,17 +196,21 @@ void _callSmi(smiRegs *r, u8 port)
|
||
|
|
||
|
__asm__ __volatile__ (
|
||
|
// magic port
|
||
|
+ "push %%ebx\n\t"
|
||
|
+ "mov %0, %%ebx\n\t"
|
||
|
"outb %%al, %%dx \n\t"
|
||
|
+ "mov %%ebx,%1\n\t"
|
||
|
+ "pop %%ebx\n\t"
|
||
|
|
||
|
: /* output args */
|
||
|
"=a" (r->eax),
|
||
|
- "=b" (r->ebx),
|
||
|
+ "=g" (r->ebx),
|
||
|
"=c" (r->ecx),
|
||
|
"=S" (r->esi),
|
||
|
"=D" (r->edi)
|
||
|
: /* input args */
|
||
|
"0" (r->eax),
|
||
|
- "1" (r->ebx),
|
||
|
+ "g" (r->ebx),
|
||
|
"2" (r->ecx),
|
||
|
"3" (r->esi),
|
||
|
"4" (r->edi),
|