From mboxrd@z Thu Jan 1 00:00:00 1970 From: Markus Elfring Subject: [PATCH v2] drm/nouveau/gem: Use vmemdup_user() rather than duplicating its implementation Date: Fri, 14 Aug 2020 09:09:34 +0200 Message-ID: References: <12ebdcbe-8a8a-958a-af05-a0593d9756b2@web.de> <202008132104.mkULNh4R%lkp@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <202008132104.mkULNh4R%lkp-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: kernel test robot , nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Ben Skeggs , Daniel Vetter , David Airlie Cc: kbuild-all-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org, kernel-janitors-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, LKML , Denis Efremov , Julia Lawall , Coccinelle List-Id: nouveau.vger.kernel.org From: Markus Elfring Date: Fri, 14 Aug 2020 08:56:54 +0200 * Reuse existing functionality from vmemdup_user() instead of keeping duplicate source code. Generated by: scripts/coccinelle/api/memdup_user.cocci * See also: [PATCH] drm/nouveau/gem: fix err_cast.cocci warnings * Simplify this function implementation further by omitting the local variable =93mem=94 and extra error handling here. Reported-by: kernel test robot Signed-off-by: Markus Elfring --- drivers/gpu/drm/nouveau/nouveau_gem.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouvea= u/nouveau_gem.c index 81f111ad3f4f..536ad5e2cbe6 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -583,21 +583,10 @@ u_free(void *addr) static inline void * u_memcpya(uint64_t user, unsigned nmemb, unsigned size) { - void *mem; void __user *userptr =3D (void __force __user *)(uintptr_t)user; size *=3D nmemb; - - mem =3D kvmalloc(size, GFP_KERNEL); - if (!mem) - return ERR_PTR(-ENOMEM); - - if (copy_from_user(mem, userptr, size)) { - u_free(mem); - return ERR_PTR(-EFAULT); - } - - return mem; + return vmemdup_user(userptr, size); } static int -- 2.28.0