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

Commit a336f2f5 authored by Michael Ellerman's avatar Michael Ellerman
Browse files

powerpc/mm/hash: Abstract context id allocation for KVM



KVM wants to be able to allocate an MMU context id, which it does
currently by calling __init_new_context().

We're about to rework that code, so provide a wrapper for KVM so it
can not worry about the details.

Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 302413ca
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ static inline void switch_mmu_context(struct mm_struct *prev,
	return switch_slb(tsk, next);
}

extern int __init_new_context(void);
extern int hash__alloc_context_id(void);
extern void __destroy_context(int context_id);
static inline void mmu_context_init(void) { }
#else
+1 −1
Original line number Diff line number Diff line
@@ -390,7 +390,7 @@ int kvmppc_mmu_init(struct kvm_vcpu *vcpu)
	struct kvmppc_vcpu_book3s *vcpu3s = to_book3s(vcpu);
	int err;

	err = __init_new_context();
	err = hash__alloc_context_id();
	if (err < 0)
		return -1;
	vcpu3s->context_id[0] = err;
+8 −2
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@
static DEFINE_SPINLOCK(mmu_context_lock);
static DEFINE_IDA(mmu_context_ida);

int __init_new_context(void)
static int __init_new_context(void)
{
	int index;
	int err;
@@ -57,7 +57,13 @@ int __init_new_context(void)

	return index;
}
EXPORT_SYMBOL_GPL(__init_new_context);

int hash__alloc_context_id(void)
{
	return __init_new_context();
}
EXPORT_SYMBOL_GPL(hash__alloc_context_id);

static int radix__init_new_context(struct mm_struct *mm, int index)
{
	unsigned long rts_field;