提交 ae3d812b 编写于 作者: M Michal Privoznik

virhostcpu: Make virHostCPUGetMSR() work only on x86

Model specific registers are a thing only on x86. Also, the
/dev/cpu/0/msr path exists only on Linux and the fallback
mechanism (asking KVM) exists on Linux and FreeBSD only.

Therefore, move the function within #ifdef that checks all
aforementioned constraints and provide a dummy stub for all
other cases.

This fixes the build on my arm box, mingw-* builds, etc.
Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
Reviewed-by: NJiri Denemark <jdenemar@redhat.com>
上级 b9991e83
......@@ -1257,7 +1257,9 @@ virHostCPUGetMicrocodeVersion(void)
#endif /* __linux__ */
#if HAVE_LINUX_KVM_H && defined(KVM_GET_MSRS)
#if HAVE_LINUX_KVM_H && defined(KVM_GET_MSRS) && \
(defined(__i386__) || defined(__x86_64__)) && \
(defined(__linux__) || defined(__FreeBSD__))
static int
virHostCPUGetMSRFromKVM(unsigned long index,
uint64_t *result)
......@@ -1285,19 +1287,6 @@ virHostCPUGetMSRFromKVM(unsigned long index,
return 0;
}
#else
static int
virHostCPUGetMSRFromKVM(unsigned long index ATTRIBUTE_UNUSED,
uint64_t *result ATTRIBUTE_UNUSED)
{
virReportSystemError(ENOSYS, "%s",
_("Reading MSRs via KVM is not supported on this platform"));
return -1;
}
#endif /* HAVE_LINUX_KVM_H && defined(KVM_GET_MSRS) */
/*
* Returns 0 on success,
* 1 when the MSR is not supported by the host CPU,
......@@ -1334,3 +1323,18 @@ virHostCPUGetMSR(unsigned long index,
return virHostCPUGetMSRFromKVM(index, msr);
}
#else
int
virHostCPUGetMSR(unsigned long index ATTRIBUTE_UNUSED,
uint64_t *msr ATTRIBUTE_UNUSED)
{
virReportSystemError(ENOSYS, "%s",
_("Reading MSRs is not supported on this platform"));
return -1;
}
#endif /* HAVE_LINUX_KVM_H && defined(KVM_GET_MSRS) && \
(defined(__i386__) || defined(__x86_64__)) && \
(defined(__linux__) || defined(__FreeBSD__)) */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册