[CELL] spufs: use find_first_bit() instead of sched_find_first_bit()
authorMasato Noguchi <[email protected]>
Fri, 20 Jul 2007 19:39:43 +0000 (21:39 +0200)
committerArnd Bergmann <[email protected]>
Fri, 20 Jul 2007 19:42:07 +0000 (21:42 +0200)
spu_sched->bitmap has MAX_PRIO(=140) width in bits.However, since
ff80a77f20f811c0cc5b251d0f657cbc6f788385, sched_find_first_bit()
only supports 100-bit bitmaps.

Thus, spu_sched->bitmap should be treated by generic find_first_bit().

Signed-off-by: Masato Noguchi <[email protected]>
Signed-off-by: Jeremy Kerr <[email protected]>
Signed-off-by: Arnd Bergmann <[email protected]>
arch/powerpc/platforms/cell/spufs/sched.c

index ecd9e95116add79063772d860a417dac535a6db1..12c09665404d98614fab67176a0cc517aadc6f3b 100644 (file)
@@ -502,7 +502,7 @@ static struct spu_context *grab_runnable_context(int prio, int node)
        int best;
 
        spin_lock(&spu_prio->runq_lock);
-       best = sched_find_first_bit(spu_prio->bitmap);
+       best = find_first_bit(spu_prio->bitmap, prio);
        while (best < prio) {
                struct list_head *rq = &spu_prio->runq[best];
 
@@ -738,7 +738,6 @@ int __init spu_sched_init(void)
                INIT_LIST_HEAD(&spu_prio->runq[i]);
                __clear_bit(i, spu_prio->bitmap);
        }
-       __set_bit(MAX_PRIO, spu_prio->bitmap);
        for (i = 0; i < MAX_NUMNODES; i++) {
                mutex_init(&spu_prio->active_mutex[i]);
                INIT_LIST_HEAD(&spu_prio->active_list[i]);