}
ret = x86DecodeCPUData(cpu, cpuData, models);
- cpu->microcodeVersion = virHostCPUGetMicrocodeVersion();
+ cpu->microcodeVersion = virHostCPUGetMicrocodeVersion(cpuData->arch);
/* Probing for TSC frequency makes sense only if the CPU supports
* invariant TSC (Linux calls this constant_tsc in /proc/cpuinfo). */
priv->runUid,
priv->runGid,
priv->hostCPUSignature,
- virHostCPUGetMicrocodeVersion(),
+ virHostCPUGetMicrocodeVersion(priv->hostArch),
priv->kernelVersion);
}
virQEMUCapsCachePrivPtr priv = virFileCacheGetPriv(cache);
virQEMUCapsPtr ret = NULL;
- priv->microcodeVersion = virHostCPUGetMicrocodeVersion();
+ priv->microcodeVersion = virHostCPUGetMicrocodeVersion(priv->hostArch);
ret = virFileCacheLookup(cache, binary);
* some reason.
*/
unsigned int
-virHostCPUGetMicrocodeVersion(void)
+virHostCPUGetMicrocodeVersion(virArch hostArch)
{
g_autofree char *outbuf = NULL;
char *cur;
unsigned int version = 0;
+ if (!ARCH_IS_X86(hostArch))
+ return 0;
+
if (virFileReadHeaderQuiet(CPUINFO_PATH, 4096, &outbuf) < 0) {
VIR_DEBUG("Failed to read microcode version from %s: %s",
CPUINFO_PATH, g_strerror(errno));
#else
unsigned int
-virHostCPUGetMicrocodeVersion(void)
+virHostCPUGetMicrocodeVersion(virArch hostArch G_GNUC_UNUSED)
{
return 0;
}
int virHostCPUGetOnline(unsigned int cpu, bool *online);
-unsigned int virHostCPUGetMicrocodeVersion(void);
+unsigned int virHostCPUGetMicrocodeVersion(virArch hostArch);
int virHostCPUGetMSR(unsigned long index,
uint64_t *msr);