]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
powerpc: Convert mmu context allocator from idr to ida
authorAnton Blanchard <anton@samba.org>
Sun, 7 Feb 2010 12:30:12 +0000 (12:30 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 9 Feb 2010 02:56:07 +0000 (13:56 +1100)
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>
arch/powerpc/mm/mmu_context_hash64.c

index b910d37aea1aa921b567b0d3a9054b76d9a22ec7..51622daae09d27928591757509c1b23c156decd8 100644 (file)
@@ -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.
@@ -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)
@@ -53,7 +53,7 @@ again:
 
        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;
        }
@@ -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);