]> err.no Git - linux-2.6/blobdiff - arch/powerpc/platforms/cell/spufs/spufs.h
Merge branch 'drm-patches' of master.kernel.org:/pub/scm/linux/kernel/git/airlied...
[linux-2.6] / arch / powerpc / platforms / cell / spufs / spufs.h
index 9993c9b3cffcf7f60bc68d4f8304b78a98ccc1b4..0a947fd7de57c3da11e2444b64d5d020637a9323 100644 (file)
@@ -60,7 +60,7 @@ struct spu_context {
 
        enum { SPU_STATE_RUNNABLE, SPU_STATE_SAVED } state;
        struct mutex state_mutex;
-       struct semaphore run_sema;
+       struct mutex run_mutex;
 
        struct mm_struct *owner;
 
@@ -223,14 +223,13 @@ extern char *isolated_loader;
                prepare_to_wait(&(wq), &__wait, TASK_INTERRUPTIBLE);    \
                if (condition)                                          \
                        break;                                          \
-               if (!signal_pending(current)) {                         \
-                       spu_release(ctx);                               \
-                       schedule();                                     \
-                       spu_acquire(ctx);                               \
-                       continue;                                       \
+               if (signal_pending(current)) {                          \
+                       __ret = -ERESTARTSYS;                           \
+                       break;                                          \
                }                                                       \
-               __ret = -ERESTARTSYS;                                   \
-               break;                                                  \
+               spu_release(ctx);                                       \
+               schedule();                                             \
+               spu_acquire(ctx);                                       \
        }                                                               \
        finish_wait(&(wq), &__wait);                                    \
        __ret;                                                          \