| diff -Naur libsmbios-2.2.19.orig/src/bin/dellMediaDirectCtl.cpp libsmbios-2.2.19/src/bin/dellMediaDirectCtl.cpp |
| --- libsmbios-2.2.19.orig/src/bin/dellMediaDirectCtl.cpp 2009-02-26 14:29:03.000000000 +0000 |
| +++ libsmbios-2.2.19/src/bin/dellMediaDirectCtl.cpp 2011-01-20 06:55:48.000000000 +0000 |
| @@ -183,16 +183,21 @@ |
| { |
| iopl(3); |
| |
| + u32 tmpebx; |
| __asm__ __volatile__ ( |
| - // magic port |
| - "outb %%al, %%dx \n\t" |
| - |
| + "movl %%ebx,%[tmpebx]\n\t" |
| + "movl %[ebx],%%ebx\n\t" |
| + // magic port |
| + "outb %%al, %%dx \n\t" |
| + "movl %%ebx,%[ebx]\n\t" |
| + "movl %[tmpebx],%%ebx\n\t" |
| : /* output args */ |
| "=a" (r->eax), |
| - "=b" (r->ebx), |
| + [ebx] "=rm" (r->ebx), |
| "=c" (r->ecx), |
| "=S" (r->esi), |
| - "=D" (r->edi) |
| + "=D" (r->edi), |
| + [tmpebx] "+m" (tmpebx) |
| : /* input args */ |
| "0" (r->eax), |
| "1" (r->ebx), |