From patchwork Sat Dec 25 06:03:58 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Akinobu Mita X-Patchwork-Id: 76646 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id BBB2DB70D6 for ; Sat, 25 Dec 2010 17:04:43 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751361Ab0LYGDq (ORCPT ); Sat, 25 Dec 2010 01:03:46 -0500 Received: from mail-iy0-f174.google.com ([209.85.210.174]:49554 "EHLO mail-iy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751138Ab0LYGDh (ORCPT ); Sat, 25 Dec 2010 01:03:37 -0500 Received: by mail-iy0-f174.google.com with SMTP id 12so6217657iyi.19 for ; Fri, 24 Dec 2010 22:03:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer:in-reply-to:references; bh=ZNNXs69QTd8CpUrAnJdtz74nPoBGV5kmyXMb6UiAWiI=; b=pam43864Z+4vNVdJ1+SZyjd8pwHllRcmgL7LubcFSngv8n4gmnW7nuR4aSzBrVB7Jb 6vPkEaZnaHFzc3+5mLM1v+jwBv9YCwz1eLOCcD1JLaKLiCTFLUUEUSUi6phxauTTgLhj WilEW8lw1PaKfv5LugkKJgVt7TYt7mpNNuPYc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; b=HoKfogtNA85Dhz8VXP0EMy6PhwqsqM/hNt/xSMPrBF7RQ3K/Rhf6B3lxZnMzqM9T3Z 1eUQ/C+NGKtaYe+fGqJ6zmJhMDeaRwN/sLNfzLxCWkTc9OoRdju+XXJA59o9wViUSm5R MBWXjkwLDFZ7VgI9ogRM8CxInpHWcHeTQpJDA= Received: by 10.42.178.71 with SMTP id bl7mr10196331icb.443.1293257017139; Fri, 24 Dec 2010 22:03:37 -0800 (PST) Received: from localhost.localdomain (p8025-adsao01yokonib2-acca.kanagawa.ocn.ne.jp [219.161.30.25]) by mx.google.com with ESMTPS id y7sm4086877ici.23.2010.12.24.22.03.34 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 24 Dec 2010 22:03:36 -0800 (PST) From: Akinobu Mita To: linux-kernel@vger.kernel.org Cc: Akinobu Mita , "John W. Linville" , linux-wireless@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH] airo: use simple_write_to_buffer Date: Sat, 25 Dec 2010 15:03:58 +0900 Message-Id: <1293257039-2580-3-git-send-email-akinobu.mita@gmail.com> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Simplify write file operation for /proc files by using simple_write_to_buffer(). Signed-off-by: Akinobu Mita Cc: "John W. Linville" Cc: linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org --- drivers/net/wireless/airo.c | 20 +++++++------------- 1 files changed, 7 insertions(+), 13 deletions(-) diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c index a36e787..57a79b0 100644 --- a/drivers/net/wireless/airo.c +++ b/drivers/net/wireless/airo.c @@ -4652,24 +4652,18 @@ static ssize_t proc_write( struct file *file, size_t len, loff_t *offset ) { - loff_t pos = *offset; + ssize_t ret; struct proc_data *priv = file->private_data; if (!priv->wbuffer) return -EINVAL; - if (pos < 0) - return -EINVAL; - if (pos >= priv->maxwritelen) - return 0; - if (len > priv->maxwritelen - pos) - len = priv->maxwritelen - pos; - if (copy_from_user(priv->wbuffer + pos, buffer, len)) - return -EFAULT; - if ( pos + len > priv->writelen ) - priv->writelen = len + file->f_pos; - *offset = pos + len; - return len; + ret = simple_write_to_buffer(priv->wbuffer, priv->maxwritelen, offset, + buffer, len); + if (ret > 0) + priv->writelen = max_t(int, priv->writelen, *offset); + + return ret; } static int proc_status_open(struct inode *inode, struct file *file)