diff options
Diffstat (limited to 'kernel/relay.c')
| -rw-r--r-- | kernel/relay.c | 16 | 
1 files changed, 6 insertions, 10 deletions
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;  |