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.