Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bb75c627 authored by Alexander Graf's avatar Alexander Graf Committed by Avi Kivity
Browse files

Revert "KVM: PPC: Add support for explicit HIOR setting"



This reverts commit a15bd354.

It exceeded the padding on the SREGS struct, rendering the ABI
backwards-incompatible.

Conflicts:

	arch/powerpc/kvm/powerpc.c
	include/linux/kvm.h

Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent e7fc6f93
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -148,12 +148,6 @@ struct kvm_regs {
#define KVM_SREGS_E_UPDATE_DEC		(1 << 2)
#define KVM_SREGS_E_UPDATE_DBSR		(1 << 3)

/*
 * Book3S special bits to indicate contents in the struct by maintaining
 * backwards compatibility with older structs. If adding a new field,
 * please make sure to add a flag for that new field */
#define KVM_SREGS_S_HIOR		(1 << 0)

/*
 * In KVM_SET_SREGS, reserved/pad fields must be left untouched from a
 * previous KVM_GET_REGS.
@@ -179,8 +173,6 @@ struct kvm_sregs {
				__u64 ibat[8]; 
				__u64 dbat[8]; 
			} ppc32;
			__u64 flags; /* KVM_SREGS_S_ */
			__u64 hior;
		} s;
		struct {
			union {
+0 −2
Original line number Diff line number Diff line
@@ -90,8 +90,6 @@ struct kvmppc_vcpu_book3s {
#endif
	int context_id[SID_CONTEXTS];

	bool hior_sregs;		/* HIOR is set by SREGS, not PVR */

	struct hlist_head hpte_hash_pte[HPTEG_HASH_NUM_PTE];
	struct hlist_head hpte_hash_pte_long[HPTEG_HASH_NUM_PTE_LONG];
	struct hlist_head hpte_hash_vpte[HPTEG_HASH_NUM_VPTE];
+2 −12
Original line number Diff line number Diff line
@@ -151,7 +151,6 @@ void kvmppc_set_pvr(struct kvm_vcpu *vcpu, u32 pvr)
#ifdef CONFIG_PPC_BOOK3S_64
	if ((pvr >= 0x330000) && (pvr < 0x70330000)) {
		kvmppc_mmu_book3s_64_init(vcpu);
		if (!to_book3s(vcpu)->hior_sregs)
		to_book3s(vcpu)->hior = 0xfff00000;
		to_book3s(vcpu)->msr_mask = 0xffffffffffffffffULL;
		vcpu->arch.cpu_type = KVM_CPU_3S_64;
@@ -159,7 +158,6 @@ void kvmppc_set_pvr(struct kvm_vcpu *vcpu, u32 pvr)
#endif
	{
		kvmppc_mmu_book3s_32_init(vcpu);
		if (!to_book3s(vcpu)->hior_sregs)
		to_book3s(vcpu)->hior = 0;
		to_book3s(vcpu)->msr_mask = 0xffffffffULL;
		vcpu->arch.cpu_type = KVM_CPU_3S_32;
@@ -797,9 +795,6 @@ int kvm_arch_vcpu_ioctl_get_sregs(struct kvm_vcpu *vcpu,
		}
	}

	if (sregs->u.s.flags & KVM_SREGS_S_HIOR)
		sregs->u.s.hior = to_book3s(vcpu)->hior;

	return 0;
}

@@ -836,11 +831,6 @@ int kvm_arch_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu,
	/* Flush the MMU after messing with the segments */
	kvmppc_mmu_pte_flush(vcpu, 0, 0);

	if (sregs->u.s.flags & KVM_SREGS_S_HIOR) {
		to_book3s(vcpu)->hior_sregs = true;
		to_book3s(vcpu)->hior = sregs->u.s.hior;
	}

	return 0;
}

+0 −1
Original line number Diff line number Diff line
@@ -208,7 +208,6 @@ int kvm_dev_ioctl_check_extension(long ext)
	case KVM_CAP_PPC_BOOKE_SREGS:
#else
	case KVM_CAP_PPC_SEGSTATE:
	case KVM_CAP_PPC_HIOR:
	case KVM_CAP_PPC_PAPR:
#endif
	case KVM_CAP_PPC_UNSET_IRQ:
+0 −1
Original line number Diff line number Diff line
@@ -555,7 +555,6 @@ struct kvm_ppc_pvinfo {
#define KVM_CAP_PPC_SMT 64
#define KVM_CAP_PPC_RMA	65
#define KVM_CAP_MAX_VCPUS 66       /* returns max vcpus per vm */
#define KVM_CAP_PPC_HIOR 67
#define KVM_CAP_PPC_PAPR 68
#define KVM_CAP_S390_GMAP 71