From: Jens Axboe Date: Tue, 18 Dec 2012 18:54:40 +0000 (+0100) Subject: Fixup CPUID for 32-bit x86 X-Git-Tag: fio-2.0.12.1~1 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=267339ff794d41af0f3714483c7ab75985d8a85f;p=fio.git Fixup CPUID for 32-bit x86 Signed-off-by: Jens Axboe --- diff --git a/arch/arch-x86-common.h b/arch/arch-x86-common.h index 1e623544..d533d22d 100644 --- a/arch/arch-x86-common.h +++ b/arch/arch-x86-common.h @@ -4,24 +4,17 @@ static inline void do_cpuid(unsigned int *eax, unsigned int *ebx, unsigned int *ecx, unsigned int *edx) { - unsigned int id = *eax; - - asm("movl %4, %%eax;" - "cpuid;" - "movl %%eax, %0;" - "movl %%ebx, %1;" - "movl %%ecx, %2;" - "movl %%edx, %3;" - : "=r" (*eax), "=r" (*ebx), "=r" (*ecx), "=r" (*edx) - : "r" (id) - : "eax", "ebx", "ecx", "edx"); + asm volatile("cpuid" + : "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx) + : "0" (*eax), "2" (*ecx) + : "memory"); } #define ARCH_HAVE_INIT extern int tsc_reliable; static inline int arch_init(char *envp[]) { - unsigned int eax, ebx, ecx, edx; + unsigned int eax, ebx, ecx = 0, edx; /* * Check for TSC diff --git a/crc/crc32c-intel.c b/crc/crc32c-intel.c index 8e1cd587..0b0f193c 100644 --- a/crc/crc32c-intel.c +++ b/crc/crc32c-intel.c @@ -81,7 +81,7 @@ uint32_t crc32c_intel(unsigned char const *data, unsigned long length) void crc32c_intel_probe(void) { if (!crc32c_probed) { - unsigned int eax, ebx, ecx, edx; + unsigned int eax, ebx, ecx = 0, edx; eax = 1;