From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 70F5AC369DC for ; Fri, 2 May 2025 02:34:32 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D68AD10E145; Fri, 2 May 2025 02:34:31 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="EomIOIw8"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.16]) by gabe.freedesktop.org (Postfix) with ESMTPS id E40A110E145 for ; Fri, 2 May 2025 02:34:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746153270; x=1777689270; h=date:message-id:from:to:cc:subject:in-reply-to: references:mime-version; bh=g3Ir22KB+Tne72eYwt9lzeou35tu2QC6qvgzglnq39k=; b=EomIOIw8TnkDxh+POj61x04mT/XMWVtMR7B/GZKbwYTa06TQ9VaVaVdA zy5xLECyxJxAHjKG+r/BTF/z1M3RcM0UG7xlsj3LqFef9NlbrMwqCCM2h zHk60Ui8u62zv1HX+pZDATLtJ0M5OKqx3r50m6hOh1x4cZj6beR38MZ/a mivJkxoqXI0aH4chlCSANw6UbKs8Bu6ghcMBXo25ubM4qD0SlEV1vb4c8 qpvGdr5KP3y6HhQUk/DP62W1wMifAdqZkbeq2eoa/DBlYjr+ifxhAnO2D x1ruBBqlnOa+aD1vqVNH24dmAHaAWC5A8sB2VSBcFKGNDEkx731gJ/2ny A==; X-CSE-ConnectionGUID: HgF+OYsqSRmVpOG7Wt4wsA== X-CSE-MsgGUID: 7earj80bS5meFdms5mmwyA== X-IronPort-AV: E=McAfee;i="6700,10204,11420"; a="47924804" X-IronPort-AV: E=Sophos;i="6.15,255,1739865600"; d="scan'208";a="47924804" Received: from fmviesa002.fm.intel.com ([10.60.135.142]) by orvoesa108.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 May 2025 19:34:29 -0700 X-CSE-ConnectionGUID: RrEy4gdVQ8eODuuXfmq5IQ== X-CSE-MsgGUID: Dft4PgmfS0CvdwP7WW4hkw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,255,1739865600"; d="scan'208";a="157766191" Received: from makealii-mobl1.amr.corp.intel.com (HELO adixit-MOBL3.intel.com) ([10.125.57.82]) by fmviesa002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 May 2025 19:34:28 -0700 Date: Thu, 01 May 2025 19:34:27 -0700 Message-ID: <87y0vfspu4.wl-ashutosh.dixit@intel.com> From: "Dixit, Ashutosh" To: Harish Chegondi Cc: , kees@kernel.org Subject: Re: [PATCH 1/1] drm/xe: Use copy_from_user() instead of __copy_from_user() In-Reply-To: References: User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/29.4 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" On Thu, 01 May 2025 12:14:45 -0700, Harish Chegondi wrote: > > copy_from_user() has more checks and is more safer than > __copy_from_user() > Will add a: Suggested-by: Kees Cook before merging this, but otherwise: Reviewed-by: Ashutosh Dixit > Signed-off-by: Harish Chegondi > --- > drivers/gpu/drm/xe/xe_bo.c | 4 ++-- > drivers/gpu/drm/xe/xe_eu_stall.c | 4 ++-- > drivers/gpu/drm/xe/xe_exec.c | 4 ++-- > drivers/gpu/drm/xe/xe_exec_queue.c | 9 ++++----- > drivers/gpu/drm/xe/xe_oa.c | 6 +++--- > drivers/gpu/drm/xe/xe_vm.c | 6 +++--- > 6 files changed, 16 insertions(+), 17 deletions(-) > > diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c > index 3a84a9d92c48..d99d91fe8aa9 100644 > --- a/drivers/gpu/drm/xe/xe_bo.c > +++ b/drivers/gpu/drm/xe/xe_bo.c > @@ -2569,7 +2569,7 @@ static int gem_create_user_ext_set_property(struct xe_device *xe, > int err; > u32 idx; > > - err = __copy_from_user(&ext, address, sizeof(ext)); > + err = copy_from_user(&ext, address, sizeof(ext)); > if (XE_IOCTL_DBG(xe, err)) > return -EFAULT; > > @@ -2606,7 +2606,7 @@ static int gem_create_user_extensions(struct xe_device *xe, struct xe_bo *bo, > if (XE_IOCTL_DBG(xe, ext_number >= MAX_USER_EXTENSIONS)) > return -E2BIG; > > - err = __copy_from_user(&ext, address, sizeof(ext)); > + err = copy_from_user(&ext, address, sizeof(ext)); > if (XE_IOCTL_DBG(xe, err)) > return -EFAULT; > > diff --git a/drivers/gpu/drm/xe/xe_eu_stall.c b/drivers/gpu/drm/xe/xe_eu_stall.c > index e2bb156c71fb..96732613b4b7 100644 > --- a/drivers/gpu/drm/xe/xe_eu_stall.c > +++ b/drivers/gpu/drm/xe/xe_eu_stall.c > @@ -283,7 +283,7 @@ static int xe_eu_stall_user_ext_set_property(struct xe_device *xe, u64 extension > int err; > u32 idx; > > - err = __copy_from_user(&ext, address, sizeof(ext)); > + err = copy_from_user(&ext, address, sizeof(ext)); > if (XE_IOCTL_DBG(xe, err)) > return -EFAULT; > > @@ -313,7 +313,7 @@ static int xe_eu_stall_user_extensions(struct xe_device *xe, u64 extension, > if (XE_IOCTL_DBG(xe, ext_number >= MAX_USER_EXTENSIONS)) > return -E2BIG; > > - err = __copy_from_user(&ext, address, sizeof(ext)); > + err = copy_from_user(&ext, address, sizeof(ext)); > if (XE_IOCTL_DBG(xe, err)) > return -EFAULT; > > diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c > index b75adfc99fb7..44364c042ad7 100644 > --- a/drivers/gpu/drm/xe/xe_exec.c > +++ b/drivers/gpu/drm/xe/xe_exec.c > @@ -176,8 +176,8 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file) > } > > if (xe_exec_queue_is_parallel(q)) { > - err = __copy_from_user(addresses, addresses_user, sizeof(u64) * > - q->width); > + err = copy_from_user(addresses, addresses_user, sizeof(u64) * > + q->width); > if (err) { > err = -EFAULT; > goto err_syncs; > diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c > index 606922d9dd73..21d4ced31dd9 100644 > --- a/drivers/gpu/drm/xe/xe_exec_queue.c > +++ b/drivers/gpu/drm/xe/xe_exec_queue.c > @@ -479,7 +479,7 @@ static int exec_queue_user_ext_set_property(struct xe_device *xe, > int err; > u32 idx; > > - err = __copy_from_user(&ext, address, sizeof(ext)); > + err = copy_from_user(&ext, address, sizeof(ext)); > if (XE_IOCTL_DBG(xe, err)) > return -EFAULT; > > @@ -518,7 +518,7 @@ static int exec_queue_user_extensions(struct xe_device *xe, struct xe_exec_queue > if (XE_IOCTL_DBG(xe, ext_number >= MAX_USER_EXTENSIONS)) > return -E2BIG; > > - err = __copy_from_user(&ext, address, sizeof(ext)); > + err = copy_from_user(&ext, address, sizeof(ext)); > if (XE_IOCTL_DBG(xe, err)) > return -EFAULT; > > @@ -618,9 +618,8 @@ int xe_exec_queue_create_ioctl(struct drm_device *dev, void *data, > if (XE_IOCTL_DBG(xe, !len || len > XE_HW_ENGINE_MAX_INSTANCE)) > return -EINVAL; > > - err = __copy_from_user(eci, user_eci, > - sizeof(struct drm_xe_engine_class_instance) * > - len); > + err = copy_from_user(eci, user_eci, > + sizeof(struct drm_xe_engine_class_instance) * len); > if (XE_IOCTL_DBG(xe, err)) > return -EFAULT; > > diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c > index 346f357b3d1f..fb842fa0552e 100644 > --- a/drivers/gpu/drm/xe/xe_oa.c > +++ b/drivers/gpu/drm/xe/xe_oa.c > @@ -1301,7 +1301,7 @@ static int xe_oa_user_ext_set_property(struct xe_oa *oa, enum xe_oa_user_extn_fr > int err; > u32 idx; > > - err = __copy_from_user(&ext, address, sizeof(ext)); > + err = copy_from_user(&ext, address, sizeof(ext)); > if (XE_IOCTL_DBG(oa->xe, err)) > return -EFAULT; > > @@ -1338,7 +1338,7 @@ static int xe_oa_user_extensions(struct xe_oa *oa, enum xe_oa_user_extn_from fro > if (XE_IOCTL_DBG(oa->xe, ext_number >= MAX_USER_EXTENSIONS)) > return -E2BIG; > > - err = __copy_from_user(&ext, address, sizeof(ext)); > + err = copy_from_user(&ext, address, sizeof(ext)); > if (XE_IOCTL_DBG(oa->xe, err)) > return -EFAULT; > > @@ -2281,7 +2281,7 @@ int xe_oa_add_config_ioctl(struct drm_device *dev, u64 data, struct drm_file *fi > return -EACCES; > } > > - err = __copy_from_user(¶m, u64_to_user_ptr(data), sizeof(param)); > + err = copy_from_user(¶m, u64_to_user_ptr(data), sizeof(param)); > if (XE_IOCTL_DBG(oa->xe, err)) > return -EFAULT; > > diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c > index 80e56e232685..62fbc746c883 100644 > --- a/drivers/gpu/drm/xe/xe_vm.c > +++ b/drivers/gpu/drm/xe/xe_vm.c > @@ -3101,9 +3101,9 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe, struct xe_vm *vm, > if (!*bind_ops) > return args->num_binds > 1 ? -ENOBUFS : -ENOMEM; > > - err = __copy_from_user(*bind_ops, bind_user, > - sizeof(struct drm_xe_vm_bind_op) * > - args->num_binds); > + err = copy_from_user(*bind_ops, bind_user, > + sizeof(struct drm_xe_vm_bind_op) * > + args->num_binds); > if (XE_IOCTL_DBG(xe, err)) { > err = -EFAULT; > goto free_bind_ops; > -- > 2.48.1 >