accel/ivpu: Use struct_size()

Message ID 0ae53be873c27c9a8740c4fe6d8e7cd1b1224994.1685366864.git.christophe.jaillet@wanadoo.fr
State New
Headers
Series accel/ivpu: Use struct_size() |

Commit Message

Christophe JAILLET May 29, 2023, 1:28 p.m. UTC
  Use struct_size() instead of hand-writing it. It is less verbose, more
robust and more informative.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/accel/ivpu/ivpu_job.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
  

Comments

Marco Pagani June 1, 2023, 3:58 p.m. UTC | #1
On 2023-05-29 15:28, Christophe JAILLET wrote:
> Use struct_size() instead of hand-writing it. It is less verbose, more
> robust and more informative.
> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Reviewed-by: Marco Pagani <marpagan@redhat.com>

> ---
>  drivers/accel/ivpu/ivpu_job.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/accel/ivpu/ivpu_job.c b/drivers/accel/ivpu/ivpu_job.c
> index 3c6f1e16cf2f..0a09bba8da24 100644
> --- a/drivers/accel/ivpu/ivpu_job.c
> +++ b/drivers/accel/ivpu/ivpu_job.c
> @@ -289,15 +289,13 @@ ivpu_create_job(struct ivpu_file_priv *file_priv, u32 engine_idx, u32 bo_count)
>  {
>  	struct ivpu_device *vdev = file_priv->vdev;
>  	struct ivpu_job *job;
> -	size_t buf_size;
>  	int ret;
>  
>  	ret = ivpu_rpm_get(vdev);
>  	if (ret < 0)
>  		return NULL;
>  
> -	buf_size = sizeof(*job) + bo_count * sizeof(struct ivpu_bo *);
> -	job = kzalloc(buf_size, GFP_KERNEL);
> +	job = kzalloc(struct_size(job, bos, bo_count), GFP_KERNEL);
>  	if (!job)
>  		goto err_rpm_put;
>
  
Stanislaw Gruszka June 8, 2023, 5:57 a.m. UTC | #2
On Thu, Jun 01, 2023 at 05:58:48PM +0200, Marco Pagani wrote:
> 
> On 2023-05-29 15:28, Christophe JAILLET wrote:
> > Use struct_size() instead of hand-writing it. It is less verbose, more
> > robust and more informative.
> > 
> > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> 
> Reviewed-by: Marco Pagani <marpagan@redhat.com>
Applied to drm-misc-next

Thanks
Stanislaw

> 
> > ---
> >  drivers/accel/ivpu/ivpu_job.c | 4 +---
> >  1 file changed, 1 insertion(+), 3 deletions(-)
> > 
> > diff --git a/drivers/accel/ivpu/ivpu_job.c b/drivers/accel/ivpu/ivpu_job.c
> > index 3c6f1e16cf2f..0a09bba8da24 100644
> > --- a/drivers/accel/ivpu/ivpu_job.c
> > +++ b/drivers/accel/ivpu/ivpu_job.c
> > @@ -289,15 +289,13 @@ ivpu_create_job(struct ivpu_file_priv *file_priv, u32 engine_idx, u32 bo_count)
> >  {
> >  	struct ivpu_device *vdev = file_priv->vdev;
> >  	struct ivpu_job *job;
> > -	size_t buf_size;
> >  	int ret;
> >  
> >  	ret = ivpu_rpm_get(vdev);
> >  	if (ret < 0)
> >  		return NULL;
> >  
> > -	buf_size = sizeof(*job) + bo_count * sizeof(struct ivpu_bo *);
> > -	job = kzalloc(buf_size, GFP_KERNEL);
> > +	job = kzalloc(struct_size(job, bos, bo_count), GFP_KERNEL);
> >  	if (!job)
> >  		goto err_rpm_put;
> >  
>
  

Patch

diff --git a/drivers/accel/ivpu/ivpu_job.c b/drivers/accel/ivpu/ivpu_job.c
index 3c6f1e16cf2f..0a09bba8da24 100644
--- a/drivers/accel/ivpu/ivpu_job.c
+++ b/drivers/accel/ivpu/ivpu_job.c
@@ -289,15 +289,13 @@  ivpu_create_job(struct ivpu_file_priv *file_priv, u32 engine_idx, u32 bo_count)
 {
 	struct ivpu_device *vdev = file_priv->vdev;
 	struct ivpu_job *job;
-	size_t buf_size;
 	int ret;
 
 	ret = ivpu_rpm_get(vdev);
 	if (ret < 0)
 		return NULL;
 
-	buf_size = sizeof(*job) + bo_count * sizeof(struct ivpu_bo *);
-	job = kzalloc(buf_size, GFP_KERNEL);
+	job = kzalloc(struct_size(job, bos, bo_count), GFP_KERNEL);
 	if (!job)
 		goto err_rpm_put;