Skip to content

Commit

Permalink
powerpc: Convert mmu context allocator from idr to ida
Browse files Browse the repository at this point in the history
We can use the much more lightweight ida allocator since we don't
need the pointer storage idr provides.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
  • Loading branch information
Anton Blanchard authored and Benjamin Herrenschmidt committed Feb 9, 2010
1 parent 66fcb10 commit 7317ac8
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions arch/powerpc/mm/mmu_context_hash64.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
#include <asm/mmu_context.h>

static DEFINE_SPINLOCK(mmu_context_lock);
static DEFINE_IDR(mmu_context_idr);
static DEFINE_IDA(mmu_context_ida);

/*
* The proto-VSID space has 2^35 - 1 segments available for user mappings.
Expand All @@ -39,11 +39,11 @@ int __init_new_context(void)
int err;

again:
if (!idr_pre_get(&mmu_context_idr, GFP_KERNEL))
if (!ida_pre_get(&mmu_context_ida, GFP_KERNEL))
return -ENOMEM;

spin_lock(&mmu_context_lock);
err = idr_get_new_above(&mmu_context_idr, NULL, 1, &index);
err = ida_get_new_above(&mmu_context_ida, 1, &index);
spin_unlock(&mmu_context_lock);

if (err == -EAGAIN)
Expand All @@ -53,7 +53,7 @@ int __init_new_context(void)

if (index > MAX_CONTEXT) {
spin_lock(&mmu_context_lock);
idr_remove(&mmu_context_idr, index);
ida_remove(&mmu_context_ida, index);
spin_unlock(&mmu_context_lock);
return -ENOMEM;
}
Expand Down Expand Up @@ -85,7 +85,7 @@ int init_new_context(struct task_struct *tsk, struct mm_struct *mm)
void __destroy_context(int context_id)
{
spin_lock(&mmu_context_lock);
idr_remove(&mmu_context_idr, context_id);
ida_remove(&mmu_context_ida, context_id);
spin_unlock(&mmu_context_lock);
}
EXPORT_SYMBOL_GPL(__destroy_context);
Expand Down

0 comments on commit 7317ac8

Please sign in to comment.