The function virHostCPUGetPhysAddrSize was introduced with commit
be1b7d5b18e
fails on architectures other than x86 and SuperH. The commit
8417c1394cd4d
fixed the issue only for s390 but the problem is still seen on other
architectures like ppc which does not report Physical address size in their
cpuinfo output.
command:
systemctl restart libvirtd.service
Output :
<snip>
dnsmasq[2377]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0
addresses
dnsmasq-dhcp[2377]: read /var/lib/libvirt/dnsmasq/default.hostsfile
libvirtd[3163]: libvirt version: 9.8.0
libvirtd[3163]: hostname: xxxxxxxxxx
libvirtd[3163]: internal error: Missing or invalid CPU address size in
/proc/cpuinfo
libvirtd.service: Deactivated successfully.
</snip>
This patch fixes this issue by returning the size=0 for architectures
other than x86 and SuperH.
Signed-off-by: Narayana Murty N <nnmlinux@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
#define ARCH_IS_MIPS64(arch) ((arch) == VIR_ARCH_MIPS64 ||\
(arch) == VIR_ARCH_MIPS64EL)
+#define ARCH_IS_SH4(arch) ((arch) == VIR_ARCH_SH4 ||\
+ (arch) == VIR_ARCH_SH4EB)
+
typedef enum {
VIR_ARCH_LITTLE_ENDIAN,
VIR_ARCH_BIG_ENDIAN,
{
g_autoptr(FILE) cpuinfo = NULL;
- if (ARCH_IS_S390(hostArch)) {
+ if (!(ARCH_IS_X86(hostArch) || ARCH_IS_SH4(hostArch))) {
/* Ensure size is set to 0 as physical address size is unknown */
*size = 0;
return 0;