diff options
| -rw-r--r-- | arch/powerpc/platforms/cell/spufs/sched.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c index c784edd40ea7..5bebe7fbe056 100644 --- a/arch/powerpc/platforms/cell/spufs/sched.c +++ b/arch/powerpc/platforms/cell/spufs/sched.c | |||
| @@ -579,7 +579,7 @@ static struct spu *find_victim(struct spu_context *ctx) | |||
| 579 | list_for_each_entry(spu, &cbe_spu_info[node].spus, cbe_list) { | 579 | list_for_each_entry(spu, &cbe_spu_info[node].spus, cbe_list) { |
| 580 | struct spu_context *tmp = spu->ctx; | 580 | struct spu_context *tmp = spu->ctx; |
| 581 | 581 | ||
| 582 | if (tmp->prio > ctx->prio && | 582 | if (tmp && tmp->prio > ctx->prio && |
| 583 | (!victim || tmp->prio > victim->prio)) | 583 | (!victim || tmp->prio > victim->prio)) |
| 584 | victim = spu->ctx; | 584 | victim = spu->ctx; |
| 585 | } | 585 | } |
| @@ -611,9 +611,9 @@ static struct spu *find_victim(struct spu_context *ctx) | |||
| 611 | 611 | ||
| 612 | mutex_lock(&cbe_spu_info[node].list_mutex); | 612 | mutex_lock(&cbe_spu_info[node].list_mutex); |
| 613 | cbe_spu_info[node].nr_active--; | 613 | cbe_spu_info[node].nr_active--; |
| 614 | spu_unbind_context(spu, victim); | ||
| 614 | mutex_unlock(&cbe_spu_info[node].list_mutex); | 615 | mutex_unlock(&cbe_spu_info[node].list_mutex); |
| 615 | 616 | ||
| 616 | spu_unbind_context(spu, victim); | ||
| 617 | victim->stats.invol_ctx_switch++; | 617 | victim->stats.invol_ctx_switch++; |
| 618 | spu->stats.invol_ctx_switch++; | 618 | spu->stats.invol_ctx_switch++; |
| 619 | mutex_unlock(&victim->state_mutex); | 619 | mutex_unlock(&victim->state_mutex); |
