diff options
Diffstat (limited to 'arch/powerpc/platforms/cell/spufs/file.c')
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/file.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c index f139cd8b594d..b6f7b917b56c 100644 --- a/arch/powerpc/platforms/cell/spufs/file.c +++ b/arch/powerpc/platforms/cell/spufs/file.c | |||
@@ -548,6 +548,11 @@ spufs_regs_read(struct file *file, char __user *buffer, | |||
548 | int ret; | 548 | int ret; |
549 | struct spu_context *ctx = file->private_data; | 549 | struct spu_context *ctx = file->private_data; |
550 | 550 | ||
551 | /* pre-check for file position: if we'd return EOF, there's no point | ||
552 | * causing a deschedule */ | ||
553 | if (*pos >= sizeof(ctx->csa.lscsa->gprs)) | ||
554 | return 0; | ||
555 | |||
551 | ret = spu_acquire_saved(ctx); | 556 | ret = spu_acquire_saved(ctx); |
552 | if (ret) | 557 | if (ret) |
553 | return ret; | 558 | return ret; |