From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756632AbYFAX3h (ORCPT ); Sun, 1 Jun 2008 19:29:37 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1756166AbYFAX1d (ORCPT ); Sun, 1 Jun 2008 19:27:33 -0400 Received: from wa-out-1112.google.com ([209.85.146.183]:2864 "EHLO wa-out-1112.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756154AbYFAX1b (ORCPT ); Sun, 1 Jun 2008 19:27:31 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:references:user-agent:date:from:to:cc:subject:content-disposition; b=U7DmK1YtBj/LeNnBePPh9LFnfznABg7dwWSLCeiEh8H2U2k5LCmmJoDOFjVhWCSEx7YHaZUsKjUN+xza88LQzc8EHDhyTS9t4EG3bsyHV06C0rLOwZMguAaM7GmfMqpkQiBb6D6b1td8hs8JoOU53XQiMiA8av3/KeUbGAr9Mr8= Message-Id: <20080601231515.779423991@gmail.com> References: <20080601231329.223608711@gmail.com> User-Agent: quilt/0.46-1 Date: Mon, 02 Jun 2008 08:13:35 +0900 From: akinobu.mita@gmail.com To: linux-kernel@vger.kernel.org Cc: Martin Schwidefsky , Heiko Carstens , linux390@de.ibm.com, linux-s390@vger.kernel.org Subject: [patch -v2 06/23] s390/vmcp: use simple_read_from_buffer Content-Disposition: inline; filename=s390-vmcp-use-simple-read-from-buffer.patch Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Signed-off-by: Akinobu Mita Cc: Martin Schwidefsky Cc: Heiko Carstens Cc: linux390@de.ibm.com Cc: linux-s390@vger.kernel.org --- drivers/s390/char/vmcp.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) Index: 2.6-git/drivers/s390/char/vmcp.c =================================================================== --- 2.6-git.orig/drivers/s390/char/vmcp.c +++ 2.6-git/drivers/s390/char/vmcp.c @@ -61,30 +61,22 @@ static int vmcp_release(struct inode *in static ssize_t vmcp_read(struct file *file, char __user *buff, size_t count, loff_t *ppos) { - size_t tocopy; + ssize_t ret; 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)); + ret = simple_read_from_buffer(buff, count, ppos, + session->response, session->resp_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 --