提交 7785857a 编写于 作者: A Akinobu Mita 提交者: Heiko Carstens

[S390] s390/vmcp: use simple_read_from_buffer()

Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
上级 3ca1c990
......@@ -61,30 +61,24 @@ static int vmcp_release(struct inode *inode, struct file *file)
static ssize_t
vmcp_read(struct file *file, char __user *buff, size_t count, loff_t *ppos)
{
size_t tocopy;
ssize_t ret;
size_t size;
struct vmcp_session *session;
session = (struct vmcp_session *)file->private_data;
session = file->private_data;
if (mutex_lock_interruptible(&session->mutex))
return -ERESTARTSYS;
if (!session->response) {
mutex_unlock(&session->mutex);
return 0;
}
if (*ppos > session->resp_size) {
mutex_unlock(&session->mutex);
return 0;
}
tocopy = min(session->resp_size - (size_t) (*ppos), count);
tocopy = min(tocopy, session->bufsize - (size_t) (*ppos));
size = min_t(size_t, session->resp_size, session->bufsize);
ret = simple_read_from_buffer(buff, count, ppos,
session->response, size);
if (copy_to_user(buff, session->response + (*ppos), tocopy)) {
mutex_unlock(&session->mutex);
return -EFAULT;
}
mutex_unlock(&session->mutex);
*ppos += tocopy;
return tocopy;
return ret;
}
static ssize_t
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册