Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1952221AbdD2BrH (ORCPT ); Fri, 28 Apr 2017 21:47:07 -0400 Received: from mail-io0-f193.google.com ([209.85.223.193]:33753 "EHLO mail-io0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1951885AbdD2Bqr (ORCPT ); Fri, 28 Apr 2017 21:46:47 -0400 From: Geliang Tang To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman Cc: Geliang Tang , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH] powerpc/powernv: use memdup_user Date: Sat, 29 Apr 2017 09:45:14 +0800 Message-Id: <82dff48f45f609c00bcf78810742e2702446dddd.1493380967.git.geliangtang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <4db2a0ba17dc68d7bcfbd7d47b0eb22ad9a220c2.1493381463.git.geliangtang@gmail.com> References: <4db2a0ba17dc68d7bcfbd7d47b0eb22ad9a220c2.1493381463.git.geliangtang@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1037 Lines: 40 Use memdup_user() helper instead of open-coding to simplify the code. Signed-off-by: Geliang Tang --- arch/powerpc/platforms/powernv/opal-prd.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/arch/powerpc/platforms/powernv/opal-prd.c b/arch/powerpc/platforms/powernv/opal-prd.c index 2d6ee1c..de4dd09 100644 --- a/arch/powerpc/platforms/powernv/opal-prd.c +++ b/arch/powerpc/platforms/powernv/opal-prd.c @@ -241,15 +241,9 @@ static ssize_t opal_prd_write(struct file *file, const char __user *buf, size = be16_to_cpu(hdr.size); - msg = kmalloc(size, GFP_KERNEL); - if (!msg) - return -ENOMEM; - - rc = copy_from_user(msg, buf, size); - if (rc) { - size = -EFAULT; - goto out_free; - } + msg = memdup_user(buf, size); + if (IS_ERR(msg)) + return PTR_ERR(msg); rc = opal_prd_msg(msg); if (rc) { @@ -257,7 +251,6 @@ static ssize_t opal_prd_write(struct file *file, const char __user *buf, size = -EIO; } -out_free: kfree(msg); return size; -- 2.9.3