X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=kernel%2Frelay.c;h=09ac2008f77b419a5c169e41f3ddcbab6aa90746;hb=7f877ebb32ac9a4b0783e825cef84c6ace87fe90;hp=8d13a7855c0808858c20fd01d6decebc08c8eeaa;hpb=a12e61df4fa1cfae7a6b76976fa65a6fcb048e3f;p=mv-sheeva.git diff --git a/kernel/relay.c b/kernel/relay.c index 8d13a7855c0..09ac2008f77 100644 --- a/kernel/relay.c +++ b/kernel/relay.c @@ -400,7 +400,7 @@ void relay_reset(struct rchan *chan) } mutex_lock(&relay_channels_mutex); - for_each_online_cpu(i) + for_each_possible_cpu(i) if (chan->buf[i]) __relay_reset(chan->buf[i], 0); mutex_unlock(&relay_channels_mutex); @@ -611,10 +611,9 @@ struct rchan *relay_open(const char *base_filename, return chan; free_bufs: - for_each_online_cpu(i) { - if (!chan->buf[i]) - break; - relay_close_buf(chan->buf[i]); + for_each_possible_cpu(i) { + if (chan->buf[i]) + relay_close_buf(chan->buf[i]); } kref_put(&chan->kref, relay_destroy_channel); @@ -1318,12 +1317,9 @@ static ssize_t relay_file_splice_read(struct file *in, if (ret < 0) break; else if (!ret) { - if (spliced) - break; - if (flags & SPLICE_F_NONBLOCK) { + if (flags & SPLICE_F_NONBLOCK) ret = -EAGAIN; - break; - } + break; } *ppos += ret;