diff options
Diffstat (limited to 'main/xen/xen-x86-pic.patch')
-rw-r--r-- | main/xen/xen-x86-pic.patch | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/main/xen/xen-x86-pic.patch b/main/xen/xen-x86-pic.patch new file mode 100644 index 0000000000..dcb4d0d817 --- /dev/null +++ b/main/xen/xen-x86-pic.patch @@ -0,0 +1,19 @@ +--- ./tools/misc/xen-detect.c.orig ++++ ./tools/misc/xen-detect.c +@@ -41,8 +41,16 @@ + int pv_context) + { + asm volatile ( ++#if defined(__PIC__) && defined(__i386__) ++ "movl %%ebx, %%edi ;" ++ "test %1,%1 ; jz 1f ; ud2a ; .ascii \"xen\" ;" ++ "1: cpuid ; " ++ "xchg %%ebx, %%edi" ++ : "=a" (*eax), "=D" (*ebx), "=c" (*ecx), "=d" (*edx) ++#else + "test %1,%1 ; jz 1f ; ud2a ; .ascii \"xen\" ; 1: cpuid" + : "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx) ++#endif + : "0" (idx), "1" (pv_context) ); + } + |