On Mon, Apr 27, 2020 at 10:06:21PM +0200, Christoph Hellwig wrote:

> @@ -1988,7 +1984,12 @@ static ssize_t spufs_mbox_info_read(struct file *file, 
> char __user *buf,
>       if (ret)
>               return ret;
>       spin_lock(&ctx->csa.register_lock);
> -     ret = __spufs_mbox_info_read(ctx, buf, len, pos);
> +     /* EOF if there's no entry in the mbox */
> +     if (ctx->csa.prob.mb_stat_R & 0x0000ff) {
> +             ret = simple_read_from_buffer(buf, len, pos,
> +                             &ctx->csa.prob.pu_mb_R,
> +                             sizeof(ctx->csa.prob.pu_mb_R));
> +     }
>       spin_unlock(&ctx->csa.register_lock);
>       spu_release_saved(ctx);

Again, this really needs fixing.  Preferably - as a separate commit preceding
this series, so that it could be backported.  simple_read_from_buffer() is
a blocking operation.  Yes, I understand that mainline has the same bug;
it really does need to be fixed and having to backport this series is not
a good idea, for obvious reasons.

Reply via email to