|
@@ -40,21 +40,7 @@ extern struct start_info *xen_start_info;
|
|
|
|
|
|
static inline uint32_t xen_cpuid_base(void)
|
|
|
{
|
|
|
- uint32_t base, eax, ebx, ecx, edx;
|
|
|
- char signature[13];
|
|
|
-
|
|
|
- for (base = 0x40000000; base < 0x40010000; base += 0x100) {
|
|
|
- cpuid(base, &eax, &ebx, &ecx, &edx);
|
|
|
- *(uint32_t *)(signature + 0) = ebx;
|
|
|
- *(uint32_t *)(signature + 4) = ecx;
|
|
|
- *(uint32_t *)(signature + 8) = edx;
|
|
|
- signature[12] = 0;
|
|
|
-
|
|
|
- if (!strcmp("XenVMMXenVMM", signature) && ((eax - base) >= 2))
|
|
|
- return base;
|
|
|
- }
|
|
|
-
|
|
|
- return 0;
|
|
|
+ return hypervisor_cpuid_base("XenVMMXenVMM", 2);
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_XEN
|