From patchwork Sat May 6 15:42:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 759326 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 3wKtM82zp0z9s7g for ; Sun, 7 May 2017 01:43:00 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="JaEZb9jr"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753749AbdEFPml (ORCPT ); Sat, 6 May 2017 11:42:41 -0400 Received: from mail-pg0-f67.google.com ([74.125.83.67]:34158 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751836AbdEFPmf (ORCPT ); Sat, 6 May 2017 11:42:35 -0400 Received: by mail-pg0-f67.google.com with SMTP id u187so4583238pgb.1; Sat, 06 May 2017 08:42:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=RbYU8HoWodxIm7r+ukP7C8DtL9jEc9PVA2UnXflcV8U=; b=JaEZb9jr8px+ovWI+8MiERaFizy+gVrkQWX1TukWKAlDmn1HwPlwUGl/d50F57XS7m gMuc241Qdr/75V/Agasj/XfQxgmRHTsn8EwJVreHOk2Ey3jmAOYiMYkR+07RJlNGEXM3 oRlL0pzIyISbbqX43CKpcCJ/cwiwVdRQdkizq6dC1yRj8ASqM8z5SSeyjX2owMx7GpqA Fk1REHfrvrQnNslJgAgyjXX6rjkAztOQphNW2PJRaaheVGQxEIFPP22cDId8HDH8nG7q L0LMN+z6bWgWIWCbZLlFqSCZQCs0fVNVPgj7mJtdQEP6mkz4PAxUmyKt+Uf/n8CYKzW9 jeLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=RbYU8HoWodxIm7r+ukP7C8DtL9jEc9PVA2UnXflcV8U=; b=rDrUi6E0XxoS2uHy4RscjFR2E+s2M4asZk31HvqHVoiKTLl4MGnZ3I8dJ3ptJONP4w JpAQcCiv0K5SsR70pid5Ih63cUvyUdZy7dfHI2daM2m0Bo/CYHR7fZ355480jr5L9xPW NfnhaESXr2XT896kS8X9jm1vPK3ZCWedK5FGviBKs6LggEvg3CU0mtqHUTa3gCJwIuc7 vv+9AVCEdoRMQhX3pePSgAAEq4YCt+/D0QELhZjbuSFJZNPoahf5FdV8HE2McTDwg7mR I/PahaoRN4vMOgfN0JxJlhwvRa0Pt7pbtVpJOBUiXdM95g6mFLqPCx3uD5yK6ZKqWu5V LMmQ== X-Gm-Message-State: AODbwcDMfUomzJm6TqTlpgDo0P2Y1502dGhRUmbCpY1cShnkWbwxn6WU u2ES8Px26bo15Uew X-Received: by 10.99.181.78 with SMTP id u14mr3869576pgo.102.1494085355112; Sat, 06 May 2017 08:42:35 -0700 (PDT) Received: from localhost (li409-196.members.linode.com. [106.187.89.196]) by smtp.gmail.com with ESMTPSA id q16sm13770794pfk.12.2017.05.06.08.42.33 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 06 May 2017 08:42:34 -0700 (PDT) From: Geliang Tang To: Jes Sorensen Cc: Geliang Tang , linux-hippi@sunsite.dk, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] net/hippi/rrunner: use memdup_user Date: Sat, 6 May 2017 23:42:16 +0800 Message-Id: <58733b05cfe6248e30471a59ad1faee7f2f71280.1493780932.git.geliangtang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Use memdup_user() helper instead of open-coding to simplify the code. Signed-off-by: Geliang Tang --- drivers/net/hippi/rrunner.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/drivers/net/hippi/rrunner.c b/drivers/net/hippi/rrunner.c index 9b0d614..1ce6239 100644 --- a/drivers/net/hippi/rrunner.c +++ b/drivers/net/hippi/rrunner.c @@ -1616,17 +1616,14 @@ static int rr_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) return -EPERM; } - image = kmalloc(EEPROM_WORDS * sizeof(u32), GFP_KERNEL); - oldimage = kmalloc(EEPROM_WORDS * sizeof(u32), GFP_KERNEL); - if (!image || !oldimage) { - error = -ENOMEM; - goto wf_out; - } + image = memdup_user(rq->ifr_data, EEPROM_BYTES); + if (IS_ERR(image)) + return PTR_ERR(image); - error = copy_from_user(image, rq->ifr_data, EEPROM_BYTES); - if (error) { - error = -EFAULT; - goto wf_out; + oldimage = kmalloc(EEPROM_BYTES, GFP_KERNEL); + if (!oldimage) { + kfree(image); + return -ENOMEM; } if (rrpriv->fw_running){