Commit b7bce570 authored by Benjamin Gray's avatar Benjamin Gray Committed by Michael Ellerman
Browse files

powerpc/kvm: Force cast endianness of KVM shared regs



Sparse reports endianness mismatches in the KVM shared regs getter and
setter helpers.

This code has dynamic endianness behind a safe interface, so a force is
warranted here to tell sparse this is OK.

Signed-off-by: default avatarBenjamin Gray <bgray@linux.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>

Link: https://msgid.link/20231011053711.93427-8-bgray@linux.ibm.com
parent 47665229
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -981,18 +981,18 @@ static inline u##size kvmppc_get_##reg(struct kvm_vcpu *vcpu) \
	if (iden)							\
		WARN_ON(kvmhv_nestedv2_cached_reload(vcpu, iden) < 0);	\
	if (kvmppc_shared_big_endian(vcpu))				\
	       return be##size##_to_cpu(vcpu->arch.shared->reg);	\
		return be##size##_to_cpu((__be##size __force)vcpu->arch.shared->reg);	\
	else								\
	       return le##size##_to_cpu(vcpu->arch.shared->reg);	\
		return le##size##_to_cpu((__le##size __force)vcpu->arch.shared->reg);	\
}									\

#define KVMPPC_VCPU_SHARED_REGS_ACCESSOR_SET(reg, size, iden)		\
static inline void kvmppc_set_##reg(struct kvm_vcpu *vcpu, u##size val)	\
{									\
	if (kvmppc_shared_big_endian(vcpu))				\
	       vcpu->arch.shared->reg = cpu_to_be##size(val);		\
		vcpu->arch.shared->reg = (u##size __force)cpu_to_be##size(val);	\
	else								\
	       vcpu->arch.shared->reg = cpu_to_le##size(val);		\
		vcpu->arch.shared->reg = (u##size __force)cpu_to_le##size(val);	\
									\
	if (iden)							\
		kvmhv_nestedv2_mark_dirty(vcpu, iden);			\