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: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
302413cad5
commit
a336f2f5b0
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 @@ again:
|
|||
|
||||
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;
|
||||
|
|
Loading…
Reference in New Issue